容器技術虛擬化技術已經成為一種被大家廣泛認可的容器技術伺服器資源共享方式,容器技術可以在按需構建容器技術作業系統實例的過程當中為系統管理員提供極大的靈活性。由於hypervisor虛擬化技術仍然存在一些性能和資源使用效率方面的問題,因此出現了一種稱為容器技術的新型虛擬化技術來幫助解決這些問題。——摘自《百度百科》
事實上,容器技術已經引起了業內的廣泛關注,而且有充分的證據表明,容器技術能夠大大提升計算機任務系統的工作效率。現在,虛擬化技術已經成為一種被大家廣泛認可的伺服器資源共享方式,它可以在按需構建作業系統實例的過程當中為系統管理員提供極大的靈活性。起初,大家普遍認為基於hypervisor的方式可以在最大程度上提供靈活性。所有虛擬機實例都能夠運行任何其所支持的作業系統,而不受其他實例的影響。然而,現在越來越多的用戶發現hypervisor提供這樣一種廣泛支持的特性其實是在給自己製造麻煩。部署虛擬伺服器的目的之一在於快速創建新的虛擬機實例。然而從網絡存儲當中複製鏡像需要花費大量時間,這些操作會延長啟動過程,無疑會限制系統靈活性。因此我們可以選擇使用容器技術,只需要通過簡單的觀察我們便能夠發現容器技術的出現是為了解決多作業系統/應用程式堆棧的問題。
在容器理論的落地層面,主流的支撐技術一個是Docker,另一個就是Kubernetes,前者是開源的應用容器引擎,而後者是開源的容器管理平臺。
關於Docker,它源自PaaS提供商dotCloud開源的一個基於LXC的高級容器引擎, 基於go語言並遵從Apache2.0協議。Docker自2013年以來非常火熱,無論是從 github 上的代碼活躍度,還是Redhat在RHEL6.5中集成對Docker的支持, 就連 Google 的 Compute Engine 也支持 docker 在其之上運行。在架構層面,Docker 使用客戶端-伺服器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。Docker 容器通過 Docker 鏡像來創建。而且由於Docker其基於LXC的輕量級虛擬化,docker相比KVM之類最明顯的特點就是啟動快,資源佔用小。
關於K8S,它是Google在2014年啟動的開源項目,用於容器編排、調度和管理,支持資源調度、自動部署、服務發現、擴容縮容和應用容器化管理。Kubernetes的目標是讓部署容器化的應用簡單並且高效,Kubernetes提供了應用部署、規劃、更新維護的一種機制。K8S可移植,它幾乎支持了目前公有雲、私有雲、混合雲、多重雲等部署模式;K8S可擴展,它採用模塊化、插件化、可掛載和任意組合式運行;K8S自動化,它支持自動部署、自動重啟、自動複製、自動伸縮/擴展。在Kubernetes中,我們可以創建多個容器,每個容器裡面運行一個應用實例,然後通過內置的負載均衡策略,實現對這一組應用實例的管理、發現、訪問,而這些細節都不需要運維人員去進行複雜的手工配置和處理。
另一方面,兩個輕量級的關鍵產品均為開源,網際網路的普及將原來分散開發人員聚合在一起,似乎只要有一個合適的基礎和好的框架,就自然而然的能夠形成產品級的工具套件。網際網路的加速普及驅動全球經濟社會發生深刻變革,網際網路環境下的全新生產生活模式逐漸成為新常態。與網際網路蓬勃發展相對應,整個信息技術產業的技術和產品創新正步入飛速發展階段,移動網際網路、雲計算、大數據、物聯網、區塊鏈等新興概念層出不窮,新技術已成為產業發展的重要支撐和主要導向。因此開源成為了一種趨勢,開源軟體大量出現奠定了軟體行業的大跨步發展。
而右圖所示,似乎才是文章的重點,這裡提到了基於Docker+K8S的產品化能力包裝出的PaaS平臺,是今天主流PaaS的落地支撐。
以前我們提到過,無論PaaS是哪一天提出的,至少伴隨著時間的演進,PaaS的早期發展並不健全甚至很low,而今天的PaaS才真正走上階梯更上一層樓。PaaS可以簡單的根據支撐範疇分為iPaaS(integration as a Service)和aPaaS(application platform as a service),前者體現在平臺基礎環境,而後者體現在應用施展效果。
在PaaS發展的早期,往往iPaaS的不成熟導致大量開發實施和業務支撐方面需要更多依賴於aPaaS,反射到iPaaS的工具類組件和管理類組件遠不比aPaaS的業務類組件、技術類組件和運營類組件多,呈現出一種「頭重腳輕」的局面;而今天的PaaS逐漸走向成熟,大量廠商在研究PaaS環境快速構建的過程中積攢了一套方法,使得iPaaS的能力日益強健,而aPaaS的能力變得很輕,這種特點就會更好的支持應用部署和遷移,快速支持更加廣泛的業務需求,從而呈現出一種「腰強體健」的局面。
所以,iPaaS的「腰強體健」早期是無所適從的,因為上層應用非常多,而底層又沒有高效的管控平臺和輕量級工具,致使PaaS難以快速發展。而今天則大不然,有了Docker可以快速的創建成百上千個容器以運行作業,有了K8S可以高效的編排任務並調度管理。iPaaS的能力就是從這裡開始,似乎是一個新的「起點」 。
在雲的世界裡,技術成熟度核心在PaaS,目標是服務上層業務。基於雲環境應用中的PaaS基礎設施服務化理念是中間服務,在雲架構中的SaaS與IaaS之間雖然包括iPaaS和aPaaS,但其成熟度則取決於技術發展,這就是今天的Docker+K8S。
Docker+Kubernetes是容器創建與編排調度的利器。
分析世界講方案,為您帶來精彩的一頁;
——垂直領域、專注原創;
——感謝閱讀、感謝共鳴。