做者:Janakiram MSV編程
翻譯:Bach(才雲)安全
校對:bot(才雲)、星空下的文仔(才雲)服務器
目前,正在影響現代基礎設施的兩個趨勢分別是容器和 DevOps。DevOps 生態系統正不斷髮展,提供着持續集成、持續測試、持續部署和持續監控的功能,從而提升了軟件開發的速度。另外一方面,容器正與 DevOps 實踐相結合,以實現大規模的快速部署。網絡
容器有助於提升開發人員的生產效率,編排工具則是爲組織優化其 DevOps 和運營投資提供了幫助。容器編排的優點包括:架構
高效的資源管理。分佈式
無縫擴展的服務。ide
高可用性。微服務
低成本的大規模運營。工具
大多數編排工具使用聲明性模型(declarative model),能夠減小摩擦以實現更自主的管理。測試
操做模式(Operations-style)像 IaaS,但管理模式相似 PaaS。
操做人員會選擇 IaaS 進行控制和自動化,但開發人員一般更喜歡 PaaS,由於它更具備靈活性、規模和生產力,而**容器編排工具則是具備一箭雙鵰的優點:自動化和規模化。**
K8sMeetup
爲何須要大規模容器編排?
容器解決了開發人員的生產力問題,使 DevOps 工做流變得異常流暢。開發人員能夠建立容器鏡像,運行容器並在該容器中開發代碼,再將其部署在本地數據中心或公共雲環境中。這種開發人員的工做流很是流暢,但沒法自動應用於生產環境。
生產環境一般與開發人員電腦上的本地環境大不相同。不管是運行大規模的傳統三層架構(three-tier)應用程序,仍是基於微服務的應用程序,管理大量的容器和節點集羣都不是一件容易的事。業務流程是實現規模化的必需組件,想要造成規模咱們就必需要實現自動化。
雲計算的分佈式性質給咱們帶來了對虛擬機基礎設施感知方式的轉變。你們可能聽過「牛與寵物」的概念,它將容器比做一個牲畜單位而不是喜歡的寵物,以此重塑了人們對容器和基礎設施本質的見解。下面咱們分別看看「牛」和「寵物」的管理方法:
牛:容器及其基礎設施都是不可變的,咱們通常在部署容器或服務器後就不再會對其進行修改。若是須要任何的更新、修復或修改某些內容,咱們可使用有適當更改的通用鏡像去構建新的容器或服務器,而後替換舊的容器和服務器。這種方法就至關於在牛場管理牛。
不可變基礎設施是可編程的,咱們能夠實現自動化。基礎設施即代碼(IaC)是現代基礎設施的關鍵屬性之一,應用程序能夠在其中以編程方式配置,並利用基礎設施來運行自身。
容器編排、不可變基礎設施和基於 IaC 的自動化,這三者的結合提供了靈活性和可擴展性。
K8sMeetup
容器編排平臺特色
將上述概念付諸於實踐後,咱們能夠對大規模容器的伸縮性和資源可用性概念進行拓展和完善。典型的容器編排平臺特徵包括:
資源管理。
服務發現。
健康檢查。
容器編排鼓勵使用微服務架構模式。在該模式中,應用程序由較小的獨立服務組成,每一個服務都是爲某一項任務而設計的。每一個微服務都會打包成一個容器,它們在邏輯上屬於同一個應用程序的多個微服務,並由 Kubernetes 進行編排。
目前的容器編排市場由 Kubernetes 主導,它已得到了企業、平臺供應商、雲提供商和基礎設施公司的承認。Kubernetes 的興起促成了基於容器編排和管理平臺的新細分市場誕生。從存儲、網絡、監控,再到安全,如今涌現出了許多構建容器本機產品和服務的新型公司和初創公司,將來雲原平生臺和該生態系統將愈發繁榮。