【論文解讀】Occupy the Cloud: Distributed Computing for the 99%

Occupy the Cloud: Distributed Computing for the 99%

概述

這是一篇非常值得閱讀的關於serverless與數據科學處理相結合的文章。我先後供職的軟件開發部門,產品的使用方都是進行大數據處理與研發的團隊,對於他們使用雲服務器或者本地大型機的需求有一些體會,也瞭解常規的任務投遞與結果獲取的方法。不得不說,本篇還是給了一些新的思考。

Why is there no cloud button

來自一個數據科學家的發問:“Why is there no cloud button?”。

對於雲服務工程師而言,封裝及使用cloud的各種API是日常的工作內容之一。只有服務商的接口寫的不好,沒有不能用已實現自己目的的接口。

而對於數據科學家而言,使用API和閱讀相關文檔是一件非常辛苦的事情,那意味着他們要轉換自己的思維方式去習慣系統與網絡的設計邏輯,那將是非常麻煩的一件事情。尤其是儘管每一家雲服務提供商的服務內容大同小異,可是他們的文檔複雜度以及API的使用方式卻總是因爲這些細微的差別造成時間和精力的額外付出。

一支背後擁有IT支持團隊的數據科研團隊,他們工作是相對輕鬆和專一的,因爲他們使用的工具都是經過IT團隊進行封裝和處理,並且時刻爲了解決他們的需求而不斷更新優化工具。對於絕大多數實驗室和初創數據型企業而言,則會非常辛苦。雲計算的發展提供的算力支持,使得數據科學團隊可以以更低的成本和更充分的資源去運行數據與算法,而社會分工要求數據科學家能專注數據科學而把系統維護交給更專業的人去做。

所以,serverless的價值對於數據科研而言,是具有非常大價值的一個雲架構。數據科學團隊只需要把自己想做的計算寫在一個函數中,並定義好輸入,最後以一個map()函數完成批量並行計算。不需要維護計算機系統,不需要進行並行設計。只需要預估一個內存和核數,就可以協調機器(嚴格來說是一個計算環境or容器)進行運算。

示例:PyWren

示例的github 地址
這個項目工程是基於AWS的lambda模塊進行封裝和開發。做了一系列的對於輸入函數及批量計算的輸入的序列化操作,將用戶定義的函數及輸入封裝爲lambda執行的輸入,而實際在lambda是一個簡單的下載和啓動函數。以此來滿足並行計算的需求。

項目的並行設計邏輯是MapReduce的實現。

討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章