Coursera如何用Docker完成批處理作業?

jopen 8年前發布 | 12K 次閱讀 Docker

ECS(Amazon EC2 Container Service)服務是AWS專門為用戶提供的容器服務,ECS服務又細分為了containers,tasks,container instances和clusters四種模式,其中Tasks主要面向在短時間內,或固定周期內需要大量計算資源的批處理作業。??

ETL,圖片格式轉換, 圖片調整,OCR,PDF生成,天氣預報,日志分析,特征抽取,自動化測試,以及搜索引擎爬蟲等都是常見的批處理作業。本文將通過Coursera的案例帶你了解這種特殊的容器服務。

Coursera 是由美國斯坦福大學兩名計算機科學教授創辦的在線教育平臺,它與全世界最頂尖的大學和機構合作,通過在線公開課的形式為所有人,提供在以往只有精英人群才能享受到的教育資源。

Coursera目前有超過1300萬的注冊用戶,來自190個國家,課程內容從編程到寫詩無所不包。為了應對如此大的用戶量和課程量,Coursera的后臺中有很多批處理作業,比如批量郵件發送,課堂測驗批改,成績單導出,數據核對等。

最初,Coursera使用一個PHP框架Cascade來實現,遇到了很多問題:

  • 很難運行,部署和擴展;
  • 每當一個新作業到來時,一個新的線程會被創建,每個作業所占用的內存和CPU資源也不盡相同,很難實現持續地創建;
  • 由于缺乏資源隔離,內存限制的錯誤,會讓整個應用都宕掉

后來,基礎設施工程師團隊想要通過Docker容器實現微服務架構,但是在使用Mesos管理集群和容器的過程中遇到了很多問題,Mesos的啟動很復雜,Coursera沒有專業的人和時間去管理一個Mesos集群。

最后,Coursera開始使用ECS的服務:

  • ECS幫助Coursera非常簡單地實現了微服務架構;
  • 每個作業都被創建為一個容器,交由Amazon ECS來管理這些容器;
  • Amazon ECS提供所有的集群管理和容器調度服務,容器提供必要的資源隔離。

ECS顯著降低了Coursera運行批處理作業的成本,提高了IT效率:

  • 使用簡單:Amazon ECS啟動簡單,為用戶屏蔽了集群底層的細節;
  • 速度和靈活性:軟件更新的部署過程,從幾個小時縮短到了幾分鐘,目前每個團隊都可以獨立開發和更新自己的模塊,因為應用的資源是隔離的,沒有相互依賴;
  • 彈性擴容:計算資源可以快速地動態申請;
  • 運維效率:運維人員不再需要去做安裝軟件和維護集群的工作,Amazon ECS做了從集群管理到容器編排的所有事情。

是不是覺得以上場景很適合你?

但是ECS還沒進中國腫么辦?

試試靈雀云最新的批量計算服務——任務(Job)吧!

這是靈雀云為中國用戶獨家推出的云端功能,幫您執行一次性或重復性的短時作業,如ETL,圖片格式轉換, 圖片調整,OCR,PDF生成,天氣預報,日志分析,特征抽取,自動化測試,以及搜索引擎爬蟲等。您可以設置每個任務的關鍵參數,例如環境變量、執行時間、執行周期和次數。 在線教程: http://docs.alauda.cn/feature/job/intro.html

在此,我們對最新的批量計算功能開放試用邀請,您只需填寫 問卷 (不超過兩分鐘),就可以試用該新功能。我們會在反饋者中抽取10位給予新年賀禮!(活動截至2016年1月12日)

來自: http://dockone.io/article/939

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!