回顧2017,容器圈熱鬧的一年

2017 年是容器生態發展上具備里程碑意義的一年。

2017 年是容器生態發展上具備里程碑意義的一年,AWS、Azure 和 Alibaba Cloud 都相繼在其原有容器服務上新增了 Kubernetes 支持,而 Docker 也在今年 10 月宣佈同時支持 Swarm 和 Kubernetes。有人說,容器編排大戰就此宣告結束。那麼,Google 的 Kubernetes 爲什麼發展如此迅猛,而 Docker 公司爲什麼改變了最初的決策,如此紅火的容器生態發生了怎樣的變化?編程

Kubernetes 的「開掛」之路

2017 年 Kubernetes 共發佈了四個版本,在多用戶、多負載、安全性、使用易用性等作出了改進:安全

Kubernetes 1.6 伸縮性 SLO 支持包含 5000 個節點(15 萬個 Pod)的集羣,能夠將多個 Kubernetes 集羣結合並經過單獨的 API 端點使用,發佈一系列高級調度和全面的存儲自動化功能。網絡

Kubernetes 1.7 推出 Network Policy API,並增強了網絡安全性,以 beta 版提供了存儲和由狀態工做負載的管理、API 聚合層。架構

Kubernetes 1.8 版本在安全方面作出了努力,曾經在 1.6 版本處於 beta 狀態的基於角色訪問功能已經穩定,新增 beta 狀態的 Pod 橫向自動伸縮自定義功能,容許源碼樹外(out-of-tree)的卷驅動,架設 Kubernetes 集羣的命令 kubeadm 加入了集羣升級的支持。框架

Kubernetes 1.9 版本全面提供了 App Workload 應用編程接口、新增對 Windows 系統的支持、並在存儲方面新增了 Container Storage Interface 功能。運維

Constellation Research 公司首席分析師、副總裁 Holger Mueller 表示,CSI 的演化多是目前 Kubernetes 最重要的新功能。他指出,Kubernetes 在過去幾年中實現了跨越式的發展,設定了一個很是高的標準,成爲一個快速贏得關注、「不到兩年時間內從零到發展成爲明確領導者」的標準。機器學習

Kubernetes 於 2014 年 6 月開源,在 Docker 公司推出著名開源項目 14 個月以後。早期 Kubernetes 受到了 Google 內部 Borg 系統的影響,Google 稱其已經使用了十餘年容器化技術,而坊間流傳 Borg 纔是 Google 的內部容器管理系統。早在 2015 年,Kubernetes 還尚不如如今般成熟,其發佈版本等相關消息也不多被業界說起。而 2015 年 7 月,Google 作了一個很是明智的決定,與 Linux 基金會合做創立 CNCF 基金會(Cloud Native Computing Foundation)並捐獻 Kubernetes 做爲種子項目。再日後,Kubernetes 在開源社區中呼聲不斷升高,各大 IT 巨頭相繼加入 CNCF 基金會,今後 Kubernetes 進入了勢不可擋的發展期。分佈式

Docker 的變革

Docker 在 2017 年也是動做不小,先是 4 月份將項目從新梳理並拆分爲 Moby 和 LinuxKit,再是 10 月份宣稱同時支持 Swarm 和 Kubernetes。微服務

雖然改名爲 Moby 讓廣大開發者一片譁然,可是 Rancher 的 Darren Stepherd 在其 tweet 中總結到:「被 Moby 困擾了嗎?簡單說,這對 Docker 的使用者而言沒有什麼變化。這樣的項目在內部作了改變,能夠幫助如 Rancher Labs 的系統構建者。」Docker 公司通過此番改革以後,使用者能夠經過需求定製一款本身的容器系統;而 Docker 二進制文件並無改變,用戶並不會受到影響。工具

image

2017年10月DockerCon上傳來另外一重磅消息,通過與Google一年的合做,Docker宣佈支持Kubernetes,能夠在同一個集羣中運行Kubernetes和Swarm。大會邀請到了Kubernetes 核心做者 Tim Hockin,他在大會上說道「若是沒有Docker,就沒有Kubernetes’這種說法並不誇張。在你們看來,容器技術發展四年,已經好久了。可是,實際上今天創建分佈式系統依然很難,開發者們依舊很難一塊兒快速地搭建可靠的、可擴展的應用程序。將來還有不少須要作的事情,我相信:這僅僅是一個開始,接下來(雙方的)合做必定會給你們帶來更多。」 而Docker創始人Solomon Hykes則表示「漸漸地咱們意識到,咱們是一樣的一羣人,關注的是一樣的事情,咱們爭論並但願解決的都是一樣的問題。咱們就像一個你們庭,此次其實更像是家庭的團聚。」

12月,Docker拆分Docker Engine後捐獻的containerd也正式發行1.0版本,添加了包括建立壓力測試系統、垃圾收集和填充內存使用等性能改進。這意味着Docker兌現了他一年前的承諾,containerd是能夠用於工業級的容器運行時標準。

image

CoreOS從新啓程

在Docker推出其火爆的開源項目以後,CoreOS於2013年10月開源了其Container Linux,一款基於Linux Kernel的輕量級操做系統,該系統旨在爲集羣部署提供基礎架構,同時側重於自動化、易於部署應用程序、安全性、可靠性和可擴展性。做爲輕量操做系統,Container Linux僅提供在軟件容器內部署應用程序所需的最小功能,以及用於服務發現和配置共享的內置機制。Container Linux還提供了一個守護進程etcd,它運行在集羣中的全部計算機上,並提供一個動態配置註冊表,容許在集羣成員之間輕鬆可靠地共享各類配置數據。最初CoreOS與Docker緊密合做,可是後來認爲Docker不知足於「一個簡單的基礎單元」,在2014年末推出開源容器引擎Rocket(簡稱rkt)。

而2017年,rkt派系的CoreOS捨棄掉本身調度工具Fleet,將重心轉移至Kubernetes,並在剛剛發佈了商用Kubernetes平臺Tectonic1.8版本,新增開放雲服務,能夠進行維護、自動化、修補和升級等,並且能夠跨裸機、本地數據中心、公有云等多樣環境運做。

image

依然在堅持的Mesos

比Docker的Kubernetes支持舉措早一個月,Mesos今年九月也宣佈了對Kubernetes的支持,其平臺用戶能夠安裝、擴展和升級多個生產級的Kubernete集羣。對此Mesosphere CTO Tobi Knaup稱此舉是爲了讓客戶們能夠有更多的編排系統選擇。「咱們的客戶是運維團隊,有時他們須要支持上萬個開發者,他們須要多樣化的軟件,不該該將他們侷限在一個選擇之中。選擇很是重要。」

要知道Mesos的Marathon但是第一個Docker容器的編排系統,比Swarm和Kubernetes都要早。在容器發展的早期,不少人會選擇Mesos來解決容器的編排問題。Apache Mesos的商業版本是DCOS,這家在第四輪融資1.12億美圓的公司擁有來自HPE、微軟等強力支持,Mesosphere絕不隱晦其DCOS的目標是在全球擁有2000個客戶。目前,Mesosphere也確實擁有不錯的成績:美國十大金融服務公司中五家公司、北美十大銀行中五家銀行、全球十大通訊運營商中五家、六個最大connected cars的汽車製造廠商都選擇了Mesos。而IT公司如Autodesk、yelp、噹噹網、豆瓣網也其忠實用戶。

在2017年的KubeCon主題演講中,Kelsey Hightower講到,運維不要期望僅靠一個共享集羣就能知足全部人,Google的Borg系統並非這麼設計的。對此,Mesosphere的產品市場經理Chris Gaun評價道:「Kubernetes並非孤島,最少它須要與CI/CD方案結合在一塊兒,在此基礎上,若是可以配以現代化的高效數據服務和基於機器學習框架的解決方案,則會讓用戶更加滿意。」

image

Rancher的重大轉變

Rancher Labs致力打造操做系統級別的虛擬化工具,其中最爲著名的是Linux容器。Rancher Labs公司成立與2014年,它有兩款產品即Cattle 是 Rancher自有的Docker容器管理平臺,RancherOS輕量的開源容器Linux操做系統。

曾經,Cattle是Rancher內置的編排系統,並也支持Swarm、Mesos、Kubernetes編排系統;可是今年,和CoreOS相似,Racher推出了其2.0版本的容器管理平臺並宣佈all-in Kubernetes,2.0版本基於Kubernetes設計了UI,有對CLI、AP、Docker Compose的支持,還能夠導入並配置自有或第三方雲廠商的集羣。

Rancher Labs CEO梁勝在一次媒體採訪中說到:「許多客戶都擁有Kubernetes集羣,可是他們並無Google般理想的均一化架構。他們須要控制訪問的工具,以區分不一樣團隊、不一樣項目和不一樣應用。他們須要一個集中控制檯,以處理不一樣類型的基礎設備;Kubernetes在這上面依然不盡人意,Kubernetes提供的都是自有的監控配置和網絡驅動,這需一個普適的解決方案。」

IaaS廠商也紛紛支持Kubernetes

Google雖然內部使用的是Borg系統,可是其公有云容器服務採用Kubernetes做編辦系統。與Kuberentes升溫曲線,比較有趣的巧合是在Gartner的IaaS廠商魔力四象限中,創立於2011年的Google雲從2014年時與IBM等其餘數家廠商在Visionaries象限優點微弱,到2016年Google雲則獨佔Visionaries象限,而在2017年Google雲則在Visionaries象限中保持必定優點。

image

image

今年,Azure於二月份、IBM於三月份、Oracle於九月份、阿里雲於十一月、AWS於十二月宣佈正式支持Kubernetes。其實上述廠商也都已是 Docker的合做夥伴,並提供了相關的企業級產品服務,如提供Docker Enterprise Edition(Docker EE)支持。除了常見的微服務、應用遷移場景以外,AWS、Azure、阿里雲的容器服務也支持機器學習場景。而Google、IBM和Oracle則直接提供了AI平臺化服務。另外一方面,AWS、Azure、阿里雲、Google雲等廠商在公有云上所提供的容器服務近乎免費(Google),收費的只是用戶消耗的資源,關於容器編排管理的市場價值咱們會下段有所說起。

Kubernetes與Docker是敵是友?在容器生態發展的層面,這或許是個僞命題

創業公司Docker被估值10億美圓,它提供了容器運行時幾乎被默認爲事實標準。而另外一方面,Google的Kubernetes彷佛贏得了編排引擎之爭。一般人們認爲編排系統一層會帶來巨大的市場收益,因此人們都說Kubernetes對Docker形成了直接威脅。而在Cloud Technology Partnership 的首席架構師兼Forbes觀察員Mike Kavis看來,真正有市場價值的是整個的PaaS/CaaS平臺,而編排系統只是其中一層而已。真正應該與Docker相提並論的應該是VMWare、CloudFoundry等,Docker盈利模式應該是對應的支持服務。

image

相信很多人記得去年Kelsey Hightower和Solomon Hykes的Twitter爭執,其中的建設性批評應該在必定程度上幫助Docker從新審視其產品規劃。如今Kubernetes成爲了Docker的賦能者;曾經任職Google 的Docker現任首席佈道師Patrick Chanezon在一次採訪中表示,早些時候Kubernetes的安全性能仍然有待提升,如今狀況獲得了改善。

Juilia Evans在其tweet上貼出了一張Kubernetes components示意圖。

image

對於開發者而言,多家編排系統相互支持是皆大歡喜的事情。開源屆英雄輩出,動態和趨勢此起彼伏,連曾經公開「吵紅臉」的Kubernetes和Docker都已經不計前嫌,旁人何必再糾結於過往。

而Google和Docker等容器玩家更關注的是如何將成熟的容器化技術服務於企業,正如Tim Hockin說道「實際上今天創建分佈式系統依然很難,開發者們依舊很難一塊兒快速地搭建可靠的、可擴展的應用程序。」

結語

容器技術的價值在於開放的社區、開放的生態。若是說容器圈今年的主旋律是什麼?應該就是標準化。Kubernetes的成功在於其開放的社區政策,在於實現了開放的容器編排標準。而Docker也終於在12月份提交了容器運行時標準 containerd 1.0。

標準化,意味着人們對這件事已經達成共識,並願意在此基礎上進行協助創新。不須要再去爭吵,不須要再各自造輪子,業界總體得以更高速有效地積累經驗和拓展新領域,從而進入穩定的成長期。

Market Share 和 Mind Share是不一樣的概念。開源社區中呼聲甚高的 Kubernetes 能夠說在 Mind Share 上完勝,它贏得了愈來愈多開發者的芳心;「不戰而屈人之兵」,它的市場天然也會隨之升溫,這也是爲何幾乎各大雲廠商都陸續決定提供Kubernetes編排服務。

一個開發者的項目想得到商業的成功,必需要首先在開源社區中獲得認同。在開源社區,你們能夠獲得最真切和最‘刺耳’的建議,Show your code please,沒有哪裏比這裏更相信技術實力。GitHub曾經在一次媒體採訪中說道:「開源社區已經發展出了本身的社會結構,並且這種社會結構還在不停地進化中。若是你沒有全程參與進去,早晚你會被歷史的進程所拋棄。」 今天,恐怕沒有哪一個IT廠商會逆行倒施。

在12月初剛剛結束的KubeCon上,許多主題演講者多次提到‘boring’一詞,並表示讓Kubernetes走向成功須要再次讓這個項目變得枯燥無味。有些抱怨者說,除非對構建互聯網分佈式系統略知一二,不然Kubernetes是個難以理解和使用的項目,這是一個很複雜的系統。難道Kubernetes就不能不這麼‘boring’嗎?「這偏偏是一直以來的目標,在須要的地方創立Kubernetes,而後由此發展相關生態體系,而這個核心部分須要保持無聊。」Kubernetes佈道師Kelsey Hightower說道。同時,紅帽公司的Clayton Coleman也表示,開發應用纔是使人興奮的環節,可是運行應用這個環節須要無聊。

It is getting boring and getting good. 八卦和談資愈來愈少的時候,正是人們在安心作事的時候。業界都關心怎樣能經過容器技術帶來應用層創新,帶來更多的價值。將來,讓咱們拭目以待。

備註:本文轉載自InfoQ高效開發運維,原文連接。

原文連接

相關文章
相關標籤/搜索