你可能想象部到,容器技術在企業生產環境中的采用率竟然超過84%?
誕生于20多年前的容器技術,似乎在一夜之間,高歌猛進,迅速進入企業生產環境中,不管是大型企業,還是中小企業,使用率均超過50%。
適應云計算的發展,云原生技術已經成為加快企業數字化轉型的一個不折不扣的風向標。而以容器為代表的云原生技術正在成為釋放云價值的最短路徑。
01
從虛擬化到容器,扔掉鋤頭上岸
容器不是一項新技術,是人們為了解決計算等各種資源利用率不高和成本居高不下等問題,持續努力的結果。
因此,從應用和實踐的角度來看,容器技術顛覆了應用的開發、交付和運行模式,僅幾年便席卷全球。
大型機或者單機時代,硬件的購買成本很高,動輒幾百萬美元,但是機器的使用率最高也不到50%,正常情況下僅有20~40%的使用率,讓計算機這一本來就稀缺的資源使用成本異常高。
所以,基于硬件技術的主機虛擬化技術出現了。利用該技術,一臺物理主機可以被劃分為若干個小的機器,每個機器的硬件互不共享,并可以安裝各自的操作系統來使用。
不過這一虛擬化技術應用范圍非常小。隨著基于英特爾和AMD的CPU和微軟操作系統(隨后采用開源的Linux)的x86服務器的出現,這一被稱為工業標準服務器相對于大型機或者小型機成本大幅度降低。
但是沒有改變的則是一臺機器往往只能運行一個應用軟件,服務器的使用率依然沒有提高。用戶迫切需求提高機器的使用率。
因此,20世紀90年代后期,x86架構的硬件虛擬化技術逐漸興起,可在同一臺物理機上隔離多個操作系統實例,帶來了很多的優點,包括可以在不同的虛擬機VM上運行不同的應用,服務器使用率增加等。
這一技術突破受到用戶的歡迎。目前絕大多數的數據中心都采用了硬件虛擬化技術。
當然用戶的需求是沒有止境的。雖然硬件虛擬化提供了分隔資源的能力,但是采用虛擬機方式隔離應用時,要在每個虛擬機中安裝或復制一個操作系統實例,占有虛擬機的一部分資源,應用部署到其中效率往往較低。
一種更輕量的方案 ——操作系統虛擬化出現了。
所謂操作系統虛擬化,就是由操作系統創建虛擬的系統環境,使應用感知不到其他應用的存在,仿佛在獨自占有全部的系統資源,從而實現應用隔離的目的。
其好處顯而易見。一是由于應用共享同一個操作系統實例,因此相比虛擬機,占有更少的資源,硬件成本降低。
二是在這種方式中不需要虛擬機,也能夠實現應用彼此隔離,使面向應用的管理更便捷。
這時,操作系統虛擬化就被稱為容器(Container)。
隨后,容器進入“戰國時代”。FreeBSD 4.0推出了Jail,Sun公司發布了Solaris 10的Containers。Cgroups進入Linux內核,可以限定和隔離一組進程所使用的資源(包括CPU、內存、I/O和網絡等)······
當然,在這一系列技術的進步中,造就了不少產業巨頭。依靠虛擬化,VMWare和思杰從獨角獸成長為行業巨頭,紅帽和SuSe也茁壯成長。
02
從Docker到K8s,開源釋放創新活力
率先點燃容器技術火焰的是一家名為Docker的公司,一度Docker就成為容器的代名字。
2013年,Docker開源項目公布,提供了一系列簡便的工具鏈來使用容器,美國服務器租用,拉開了云原生應用變革的帷幕,讓容器生態圈一日千里。
容器技術的發展需要標準,僅僅依靠Docker的力量,顯然成不了標準。
于是,2015年,包括谷歌、紅帽、Docker、VMware等多家公司和組織作為創始會員成立了CNCF——云原生計算基金會,目的是促進容器技術在云原生領域的應用,降低用戶開發云原生應用的門檻。
CNCF首推的開源項目就是Kubernetes,簡稱K8s。Kubernetes是一個容器應用的編排工具,最早由谷歌的團隊研發,后來開源并捐贈給了CNCF成為種子項目。
由于Kubernetes是廠家中立的開源項目,開源后得到了社區用戶和開發者的廣泛參與和支持。
Kubernetes可以對集群中所有容器化的應用實現編排管理。Docker是一種輕量級容器管理引擎,它可以輕松創建容器和基于容器的應用程序。這二位大神的技術組合可以構建云上的容器技術服務,使得容器云平臺為整個主機集群提供分布式調度與協調,并將所有的資源當作一臺主機進行使用。
雖然市場上的容器編排平臺很多,現在已經出現了Kubernetes獨大的局面,Kubernetes已成為容器編排領域事實上的標準。