如何為穩定的云堆棧構建基礎?
譯文在我們完成云堆棧的構建工作——即實現平臺即服務(簡稱PaaS)、規模化容器乃至開發工具集中的各類工具選項——之前,我們首先需要建立良好的操作系統基礎以支持這些容器系統。
對于云堆棧而言,良好的基礎應當具備出色的靈活性并經得起反復考驗。
當我們著手進行應用程序開發時,大家必須首先投入數小時、數天甚至數年以完善自己的規劃。大家不僅需要學習相關編程語言及概念,同時也需要學習如何做出正確的架構決策,從而為正在開發中的全部應用程序提供堅實的運行基礎。
問題在于,我們往往需要盡可能忽略自己當前正在構建的環境。如今應用程序開發者幫助我們拓寬了視野,通過引入云計算、平臺即服務以及容器技術等方案深化我們對于環境工具選項的理解。
萬事萬物皆需要基礎。堅實的基礎將成為后續發展的重要故障。我們具體選擇物理結構抑或是應用程序及云堆棧等實現方式其實并不重要,真正重要的是無論怎樣的上層建筑都需要由最基本的“磚塊”構成。
而為了檢查這“***塊磚”,我們需要著眼于云堆棧并了解全部應用程序的開發基礎。在立足于云堆棧的情況下,我們往往會迷失在浩如煙海的工作流、容器以及應用開發復雜性等要素當中。
在完成云堆棧的構建之前——其中包括平臺即服務(簡稱PaaS)、規模化容器以及各類開發工具——我們首先需要建立操作系統基礎以支持各容器系統。
基本基礎
我們的云堆棧基礎將采用Linux的企業版本,即紅帽企業Linux(簡稱RHEL)。
云基礎始于RHEL與RHEL Atomic。
我們當前使用的是RHEL 7版本,其中包含用于創建并托管容器系統的全部集成化支持要素。
在選擇RHEL作為我們的操作系統之后,我們還需要利用RHEL Atoic在基礎層中實現容器支持能力。這是一套基于Linux的輕量化發行版,專門面向容器進行設計。其中囊括了運行容器所必需的各項組件,因此大家可以將其視為一套“設備”——因為我們已經無法再向其中添加任何軟件。
作為應用程序開發者,大家肯定比較傾向于使用個人開發操作系統,例如Windows或者某些Unix版本。不過考慮到容器系統的部署與托管需求,我們必須利用Docker工具集實現鏡像的容器化處理。我們只需要保證自己的云堆棧能夠托管這些應用即可,而不必過多擔心其開發環境以及如何將其添加到RHEL或者RHEL Atomic基礎層之上。
在管理這套業務體系時,大家真正需要關注的正是這套負責承載容器并在其開發、測試與生產部署過程中始終提供管理能力的基礎層。
除了管理各類企業級基礎設施所必需的操作任務之外,我們還需要利用DevOps機制管理現代容器化開發工作流。這些結構化環境能夠支持現代企業所必需的敏捷開發方法,從而始終與客戶不斷變化的實際需求保持一致。
這部分容器化開發環境必須支持持續集成(簡稱CI)、容器化微服務即時測試以及持續部署(簡稱CD),從而以自動化方式支持現代敏捷企業開發者日常工作中大量涉及的持續變更任務。
規模不斷升級
利用以上基礎努力維護、更新并管理一套靈活的DevOps基礎設施將很快成為業界共識。大家甚至會發現這種以容器為載體的開發及部署途徑即將成為我們甘之如飴的***實踐方案。
云堆棧示意圖
無需恐懼,容器的規模化調整并不是什么可怕的狀況。除了可擴展能力之外,我們還需要跨越各主機進行容器系統管理,從而確保應用程序開發團隊在業務發展過程中始終具備必要的基礎設施與工具供應。
原文標題:Foundations for a Stable Cloud Stack
【51CTO.com獨家譯稿,合作站點轉載請注明來源】