視網膜如何使用磚容器服務,以提高效率和降低成本
視網膜是賦予企業的客戶情報合作夥伴客戶級別上盈利能力最大化。我們幫助我們的客戶增加收入和最準確的生命周期價值指標。我們的前瞻性,專有模型預測在第一個事務或之前客戶生命周期價值。
這些模型構建和交付,視網膜數據科學家和工程師使用磚。我們最近開始使用磚容器服務降低成本和提高效率。集裝箱碼頭工人給我們快3倍集群向上和統一我們的依賴關係管理。在這篇文章中,我們將分享我們的流程和一些公共碼頭工人的圖片我們已經取得了,這樣你也可以這樣做。
背景:碼頭工人
我們使用碼頭工人來管理本地數據科學環境和控製依賴關係在二進製層麵,真正複製數據的科學。在視網膜上,我們同時使用R和Python,以及一個不斷發展的公共和私有包。當我們使用一些工具來鎖定我們的依賴關係,包括MRAN快照為R,conda用幹淨的依賴性Python包,pip-tools對於Python包更不幹淨的依賴性,我們發現一切工作最可靠在碼頭工人包裝容器。
說到集裝箱碼頭工人,大多數教程引導用戶誤入歧途。這些教程通常開始從政府官員的形象,然後添加在附件和安裝應用程序執行所有在一個單一的形象。相反,如果你想開發和部署代碼(用於解釋語言),像視網膜模型,你需要至少3個圖片:
- 基地圖片:我們使用基本圖像鎖定係統和包依賴關係和利用一切可以利用的工具,試圖重現。
- 發展形象:我們用發展的形象,增加了開發工具和使用,當編寫新的代碼通過運行這一形象與當地的源代碼。
- 優化部署映像:最後,當我們想要運行的代碼在其他環境中,我們創建一個部署優化圖像,結合代碼與基礎圖像創建一個完全可執行的容器。
視網膜的特定的用例,我們基地形象始於Ubuntu並添加在R和Python的依賴關係,包括一些我們自己的包。然後我們有兩個開發圖像。第一個利用代碼搖臂項目安裝RStudio做數據科學r .第二利用代碼Jupyter碼頭工人棧Python安裝Jupyter實驗室。當我們運行開發圖像,我們使用bash腳本注入任何需要的環境變量和掛載本地源代碼的方式可以從安裝IDE。
背景:磚
視網膜一直使用磚多年來管理客戶端數據的機器學習模型。它允許R和Python兩全其美,同時利用火花大數據的功能。然而,視網膜需要幾個自定義的包需要耗時的編譯安裝,意味著新集群變得緩慢的旋轉起來。
這緩慢的集群向上層疊對成本的影響。過度供給的交互式集群,視網膜實例集群auto-scales時避免拖延。非交互式的工作,我們不得不custom-tune依賴和支付EC2實例重複編譯相同的C代碼時我們經常運行工作。
在我們還能夠運行所需的各種工作負載運行,我們知道我們被低效率的計算成本和維修時間。
背景:磚容器服務
磚允許每一個數據的角色在一個統一的平台,培養他們的應用程序。Beplay体育安卓版本記住這個任務,數據工程師和開發人員可以構建複雜應用程序使用自己定製的金色的圖片。磚容器服務允許用戶指定定製庫或自定義的圖像可用於結合磚運行時利用Apache火花的分布式處理,同時利用磚的優化運行時。這個解決方案、數據工程師和開發人員可以構建高度定製的執行環境,嚴格的安全的應用程序,預先包裝的環境是可重複的,並且立即當創建一個集群。
這些用例的地址:
- 組織可以在虛擬機安裝所需的軟件代理,由他們引發應用程序使用。
- 確定性環境在一個容器,集群是由生產工作負載。
- 數據科學家可以使用定製機器學習庫由DCS配置啟用集群模型試驗或探索性分析。
圖。與磚碼頭工人容器服務是如何工作的
解決方案解決視網膜的痛點
磚容器服務特性允許您構建定製的碼頭工人容器創建新集群。視網膜建立自定義容器內部的層次結構來解決這些難點。
我們做pre-compilation包的容器。而不是重新編譯相同的代碼,我們隻加載一個容器和包已經預裝。結果是一個3 x加速啟動時間的新的集群。
我們還安裝的包需要在“標準”碼頭工人容器運行R和Python和大多數我們經常使用的依賴關係。這些是相同的包安裝在我們當地發展集裝箱,所以我們得到一個常見的可再生的環境運行代碼。在特殊情況下,我們有能力創造新的優化那些額外的容器的容器。
上麵的圖表顯示了我們的容器層次結構。
我們的最小的形象視網膜/ databricks-minimal建立在基本需求運行磚運行時的6。x,連同Scala, Python和R筆記本電腦的支持。它還包含一些碼頭工人優化減少層數和整體形象的大小。
從那裏,我們讓自己的“標準”形象各包,增加公共和私人,我們使用我們的自動數據磚工作和互動的集群。顯示部分是如何工作的,我們做了一個公開的視網膜/ databricks-standard圖片相同的包依賴性6。x磚運行時。
結束
通過利用容器,磚集成、視網膜均達到顯著節省成本和時間。視網膜,這意味著更快的向上時間更有效的使用雲資源,和更好的利用的伸縮。這也意味著一個無縫體驗我們的數據科學家,因為他們可以專注於建築模型,而不是故障診斷依賴關係。
你可以從頭開始構建自己的碼頭工人基地。你的碼頭工人形象必須滿足這些要求:
- JDK 8 u191 Java係統上的路徑
- bash
- iproute2 (ubuntu iproute)
- coreutils (ubuntu coreutils,高山coreutils)
- procps (ubuntu procps,高山procps)
- sudo (ubuntu sudo,高山sudo)
- Ubuntu Linux或高山
或者,您可以使用最少的圖像由磚https://github.com/databricks/containers
一個循序漸進的指南可開始使用磚容器服務。