只有考慮這些關鍵因素,才能跟上Docker為代表的容器時代! – 運維派
阿新 • • 發佈:2018-12-27
好像一夜之間好多人都突然投靠Docker了,畢竟現在這個技術就是那麼火爆。如果你也想上Docker?先恭喜你,懂得擁抱時代變化,其次確實你有很多細節要考慮。我們來看看Docker的部署經歷,探討下容器技術的實施落地,也順手把不可變部署和部署工具的計劃搞懂。
為什麼會想到用Docker?
這個有很多方面的思考。在LivePerson的評估過程中我就很清楚,倘若對外分享一些對Docker方案的見解,一定能給很多人以啟示。這樣一種基礎架構發生巨大變化的方式,對開發人員,CI,CD,配置,監控,打包,安全以及軟體開發和交付的幾乎任何方面都有很大的影響。所以在這改造發生之前,負責人就應該先去仔仔細細的趟一遍雷,總結好最佳實踐,形成框架專案和模板,這才有助於在轉換新專案時對解決方案的側重執行。將其與現有部署工具整合到現有服務中的挑戰不容小覷。所以,如果你還在躊躇不動,甚至剛開始趟雷,我則非常希望你看到接下來的系列文字,因為它很有可能啟示你接下來的步驟。
當下,docker和kubernetes是容器化部署的主流技術,正是我們評估和執行過的技術。但是場景等有一些差異,但對於任何容器類的解決方案來說,許多見解具備通用性。好了,我們開始深入流程細節。
回顧你青睞容器的原因
- 你是一個開發者,推崇不變性和功能編排的概念。這種情況下,容器允許你把這些思維糅合到部署檔案中,即容器化部署允許你以更容易和有意思的方式得到不可變部署。而且容器如果設定只讀,更接近純部署概念,該換換,修改都省了。
- 採用基於容器化的部署方式可以讓你更接近持續部署的實現。在容器火起來之前的好書《持續交付:通過構建,測試和部署自動化釋出可靠的軟體》裡,作者眼中成功的持續部署就有許多元件在基於容器的部署裡出現過,這包括:自動化構建的所有方面,部署管道,開發人員測試者之間的協同操作,管理基礎架構,依賴關係,審計等。這裡面就有許多都是Docker基礎設施或周邊專案的一部分。
是否在準備開展不可變部署?
- 你是從頭開始安裝應用程式的嗎?生產環境中呢?
- 如果沒有,你是否已應用部署到虛擬機器,或者更好的雲虛擬機器?
- 部署/生產團隊在不聯絡相關團隊的情況下能新增你的應用新例項嗎?
- 如果有人要重啟你的應用,它會照常執行嗎(這點通常沒有問題)?
你對現有工具有什麼想法或計劃?
- 這很好,意味著你現有的部署很接近完全自動化(或已經實現完全自動化)。
- 也意味著你可以做出選擇。轉儲它們並使用單個容器包構建器(Dockerfile),或者繼續使用rpm指令碼和Docker指令碼,以及puppet指令碼。