Kubernetes生態(tài)圈繁榮背后的利與弊
如果你們公司已經(jīng)準(zhǔn)備全面使用Kubernetes編排管理器,而你為了方便部署正在找尋一個包管理工具,那么你可能會傾向于選擇Helm,一個正在云原生計(jì)算基金會(CNCF)孵化的開源項(xiàng)目。
你有可能還希望從推廣容器的公司了解Docker Compose,或者Draft——一個微軟項(xiàng)目,由開發(fā)Helm的同一幫人開發(fā),或者還可能是Open Service Broker API,Habitat,或其他17種不同的開源包管理器。CNCF在其Landscape[1]網(wǎng)頁上列舉了所有這些內(nèi)容,包括272個其他的云原生開源項(xiàng)目。同時,這份清單每周都會追加更新。
有人會把這種過多的選擇稱為chaos(混亂),也有人稱之為新一波創(chuàng)新。不管怎么說,圍繞Kubernetes發(fā)展而成的生態(tài)系統(tǒng)已經(jīng)展示了其優(yōu)勢但也帶來了混亂。對于那些已經(jīng)準(zhǔn)備將寶壓在Kubernetes上的公司,如何在眾多的可用擴(kuò)展和應(yīng)用程序接口之間做出一個明智的選擇,正成為它們面臨的***挑戰(zhàn)之一。
IBM云平臺全球副總裁兼***技術(shù)官Jason McGee說:“這個圈子的活動多到令人驚訝,但我并不羨慕普通企業(yè)試圖去收集所有這些東西。”Jason McGee在西雅圖舉行的KubeCon會議上發(fā)表主題演講,共有8,000名技術(shù)愛好者聚集在一起,學(xué)習(xí)虛擬化技術(shù)之后最熱門的和數(shù)據(jù)中心相關(guān)的技術(shù)。
Kubernetes是一個云原生平臺,它正在顛覆應(yīng)用程序的開發(fā)方式。該軟件由谷歌(Google LLC)創(chuàng)建并且于四年前發(fā)布為開源軟件。它迅速成為部署和管理大量容器類軟件的主流平臺,這些軟件是自包含的,即包含了應(yīng)用程序需要跨環(huán)境運(yùn)行時的所有代碼和依賴包。
幾乎所有的計(jì)算機(jī)和云基礎(chǔ)設(shè)施公司都以原生形式采用了Kubernetes,這是***的壯舉。這其中的一個重要的因素是,一個單獨(dú)的可參照的平臺催生了一個龐大的開發(fā)者社區(qū)。他們正在擴(kuò)展Kubernetes在監(jiān)控,日志,安全及存儲等領(lǐng)域的核心能力。
CNCF的Landscape對云開發(fā)者而言就像一個應(yīng)用商店。“擁有強(qiáng)大的第三方生態(tài)系統(tǒng)是彭博資訊選擇將其大部分開發(fā)業(yè)務(wù)轉(zhuǎn)移到Kubernetes的重要原因之一。”財(cái)經(jīng)新聞和分析公司的數(shù)據(jù)分析和基礎(chǔ)架構(gòu)負(fù)責(zé)人Steven Bower表示,“并非所有應(yīng)用都要在Kubernetes中,你可以使用容器網(wǎng)絡(luò)接口(CNI)混搭和集成不同項(xiàng)目的不同組件。”他指的是Kubernetes的原生規(guī)范中利用網(wǎng)絡(luò)插件為容器服務(wù)。
“Kubernetes的生態(tài)系統(tǒng)異常強(qiáng)大,因?yàn)槭袌鲆庾R到Kubernetes的威力。”Codefresh公司專門銷售針對Kubernetes的持續(xù)交付平臺,其***布道者Dan Garfield表示,“要來一個云上通用的API嗎?好極了。”
狂野西部風(fēng)
但有些專家警告說,現(xiàn)在的生態(tài)系統(tǒng)有點(diǎn)像一個狂野的西部片,許多項(xiàng)目都在爭取成為焦點(diǎn),但幾乎沒有明確的***,組織一旦做出錯誤的選擇可能會導(dǎo)致在未來幾年內(nèi)都將陷入耗時的遷移過程。
“現(xiàn)在采用Kubernetes的企業(yè)正行走在開源項(xiàng)目演進(jìn)的雷區(qū)。” SiliconANGLE姐妹市場研究公司W(wǎng)ikibon的***分析師James Kobielus說,“他們總體上仍然沒有達(dá)到一個成熟的,與供應(yīng)商無關(guān)的產(chǎn)品棧,可以解決各種生產(chǎn)級的企業(yè)應(yīng)用案例。”
生態(tài)系統(tǒng)迅猛發(fā)展的其中一個原因是,Kubernetes的所有權(quán)從Google轉(zhuǎn)移到了社區(qū)手中。谷歌***從經(jīng)驗(yàn)中得知,如果試圖控制該項(xiàng)目將會阻止競爭對手做出貢獻(xiàn)而阻礙該平臺的發(fā)展。他們希望避免出現(xiàn)分裂,因?yàn)榉至岩呀?jīng)給其他開源項(xiàng)目造成了破壞。舉個例子:OpenStack,一個IaaS(基礎(chǔ)設(shè)施即服務(wù))平臺,據(jù)說該陣營內(nèi)成員之間的內(nèi)斗和眾多的衍生版本導(dǎo)致其未能兌現(xiàn)承諾。
“為了贏得更廣闊的世界,我們必須學(xué)會放手并且相信我們留下的任何空白都干干凈凈,以便他人盡情發(fā)揮。”谷歌的高級軟件工程師兼Kubernetes的主要開發(fā)人員之一Tim Hockin說,“流于形式的表面工作必須有限度,生態(tài)系統(tǒng)一定要茁壯發(fā)展。”
“如果谷歌僅僅只開源了Kubernetes,”Gartner公司的研究主管Gregg Siegfried表示,“它無法擁有今天的影響力。”
尋道Linux之路
因此誕生了CNCF。2014年,當(dāng)谷歌準(zhǔn)備將Kubernetes開源時,它選擇繞過Apache基金會,該基金會已經(jīng)在培育一個名為Mesos的競爭性項(xiàng)目,而與Linux基金會合作創(chuàng)建CNCF作為一個新的管理機(jī)構(gòu)管理云原生軟件。Linux基金會在支持單個Linux內(nèi)核方面的記錄是Google希望在Kubernetes上看到的發(fā)展模式。
開源管理機(jī)構(gòu)一直在和經(jīng)常產(chǎn)生利益沖突的貢獻(xiàn)者們作斗爭,特別是那些銷售相關(guān)產(chǎn)品和服務(wù)的貢獻(xiàn)者們。“在創(chuàng)新與穩(wěn)定之間繃著一根弦,”福瑞斯特咨詢公司副總裁兼***分析師Dave Bartoletti表示,“這些公司必須實(shí)現(xiàn)貨幣化,而為了貨幣化一些事物,它必須是穩(wěn)定的。”
Kubernetes的開發(fā)人員希望穩(wěn)定核心部分并促進(jìn)生態(tài)系統(tǒng)的創(chuàng)新。CNCF的任務(wù)是圍繞一個Kubernetes代碼庫將整個行業(yè)的競爭對手聚集到一起。它借鑒Linux playbook,制定了一個Kubernetes認(rèn)證一致性計(jì)劃,以審核Kubernetes發(fā)行版之間的連續(xù)性。
到目前為止,90個包和托管版的Kubernetes發(fā)行版[2]已獲得認(rèn)證,確保不會出現(xiàn)所謂“分支”的差異。CNCF還要求成員將他們創(chuàng)建的任何補(bǔ)丁都提交給社區(qū)以便參考,從而降低無意中出現(xiàn)分支的風(fēng)險。
之后,CNCF打破了它自有的方式,接受和培育起開源項(xiàng)目的生態(tài)系統(tǒng)。開源基金會的職責(zé)之一就是挑選競爭的獲勝者,通過指派特定的項(xiàng)目接受服務(wù),包括項(xiàng)目管理、支持、文檔推廣及其他資源,用來幫助那些項(xiàng)目取得成果。這些項(xiàng)目被稱為“孵化”,成熟以后就會“畢業(yè)”。
CNCF的創(chuàng)始人認(rèn)為Apache的政策太過嚴(yán)苛并且過于關(guān)注開發(fā)人員。他們想要一種更具包容性的方法。Patrick O'Reilly表示 “我們希望拋開Apache項(xiàng)目的所有政策和流程,重新開始。”他是CNCF的創(chuàng)始人之一,現(xiàn)在是Get Cloud Native公司的***執(zhí)行官,Get Cloud Native公司專注于幫助企業(yè)遷移到云平臺。
該基金會降低了項(xiàng)目轉(zhuǎn)變成孵化類項(xiàng)目的門檻,并將大部分決策權(quán)下放給了項(xiàng)目所有者。O'Reilly說:“CNCF能讓那些通常不愛說話的人說話。我不是說這是***的方法,但它是我們現(xiàn)在擁有的***的方法。”
現(xiàn)在,CNCF的技術(shù)監(jiān)督委員會是決定孵化新項(xiàng)目的唯一仲裁者。它與理事會分開,理事會的成員包括供應(yīng)商和其他商業(yè)利益相關(guān)方。該基金會還要求每一個項(xiàng)目都有一個中立的治理流程,用來***程度的減少來自行業(yè)的壓力。
Gartner的Siegfried說:“Apache社區(qū)的流程稍顯笨拙,并且不允許快速演進(jìn)和多樣化的視角。而CNCF則培養(yǎng)和鼓勵管理社區(qū)流程。”
事實(shí)上,有些人認(rèn)為CNCF是未來如何處理開源項(xiàng)目的典范。“本質(zhì)上,它正在為微服務(wù)這一新世界,重新打造應(yīng)用程序開發(fā)平臺。”Wikibon的Kobielus說道,“這是計(jì)算機(jī)歷史上史無前例的一項(xiàng)雄心勃勃的計(jì)劃。”
但是,較少規(guī)則帶來的缺點(diǎn)是充滿不確定性。對于平衡創(chuàng)新和穩(wěn)定性方面,CNCF的方法是否一定優(yōu)于其他方法,這點(diǎn)仍然有待商榷。到目前為止,除Kubernetes之外,只有兩個項(xiàng)目已經(jīng)畢業(yè):一個是Envoy,一個簡化網(wǎng)絡(luò)服務(wù)的代理服務(wù)器。另一個是Prometheus,一個監(jiān)控平臺。
所以它仍處于早期階段,項(xiàng)目需要數(shù)年才能孵化。目前,“Kubernetes生態(tài)系統(tǒng)已成為眾多供應(yīng)商角逐發(fā)行版和托管云版的一個混亂領(lǐng)域。”Kobielus說,“而以谷歌開發(fā)的Kubernetes為中心,不斷增加的開源項(xiàng)目,更是亂上加亂。”
從無序到有序
出現(xiàn)各種選項(xiàng)百花齊放的局面,這里有一些刻意的因素。谷歌向社區(qū)發(fā)布Kubernetes的目標(biāo)之一是隨著時間的推移,將更多的功能轉(zhuǎn)移到擴(kuò)展中,削減核心代碼庫。Kubernetes本身已經(jīng)“與我們發(fā)布它時完全不同。”Hocking說,“我們希望把更多的功能從核心中剔除。”
CNCF的***技術(shù)官Chris Aniszczyk表示,該基金會正在努力堅(jiān)守這一原則。他在本周接受采訪時表示,“Kubernetes一直專注于將功能從核心中剔除,以盡可能地實(shí)現(xiàn)其擴(kuò)展性。”
但對于那些想要追隨Kubernetes的組織而言,選擇的多樣性可能會帶來一些問題。尤其是那些大型企業(yè),這點(diǎn)更加令人擔(dān)憂,“他們需要一個可以遵循的合法合規(guī)的要求或者內(nèi)部的標(biāo)準(zhǔn)。” DivvyCloud公司***執(zhí)行官Brian Johnson表示,“大多數(shù)生態(tài)系統(tǒng)中的項(xiàng)目,在這方面還沒有明確的技術(shù)控制或***實(shí)踐的流程。”DivvyCloud公司是一家提供政策驅(qū)動的云安全和合規(guī)公司。
挑選勝出的項(xiàng)目可以使組織更好地利用社區(qū)的研發(fā)能力,因?yàn)槌晒Φ捻?xiàng)目意味著下一輪創(chuàng)新。“開源世界中有一股吸收所有的能量的動力。”IBM的McGee說。“你會想要與之合作。”
隨著一些孵化類項(xiàng)目的畢業(yè)和其他一些項(xiàng)目的淘汰,Kubernetes生態(tài)系統(tǒng)不再是“你要自己用一籃子工具打造屬于你的東西。”齊格弗里德說,“它將提供一個完整的集成。”
有證據(jù)表明Kubernetes生態(tài)系統(tǒng)正在進(jìn)行整合。本周基于一項(xiàng)對GitHub倉庫的分析,Sourced Technologies S.L.表示“Kubernetes項(xiàng)目核心部分的提交速度似乎有所放緩。”
“我已經(jīng)看到正在發(fā)生的***輪整合。”IBM的McGee說,“但我們?nèi)蕴幱谌绾握细鞑糠值纳鷳B(tài)系統(tǒng)創(chuàng)建階段。”
經(jīng)歷這類周期也不是什么新鮮事。在業(yè)界選擇使用Linux之前,曾經(jīng)有超過20個版本的Unix。Hadoop大數(shù)據(jù)生態(tài)系統(tǒng)在早期也異常復(fù)雜,直到軟件供應(yīng)商和云計(jì)算公司介入后,簡化了部署和集成過程。Johnson說:“最有可能的結(jié)果是將會有5到10個主流Kubernetes框架,早期試用這些框架的企業(yè)將測試和驗(yàn)證這些框架。”
在很大程度上,采用Kubernetes的速度加快了其成熟的過程。O'Reilly說:“一旦你讓銀行進(jìn)入,人們不再希望發(fā)生重大變化。”
IT的選擇
那么信息技術(shù)經(jīng)理該如何在此期間做出決策呢?Forrester的Bartoletti認(rèn)為,對大多數(shù)公司而言,這都不是問題。
“企業(yè)首先要清楚他們是平臺的構(gòu)建者,平臺的運(yùn)營者還是平臺的消費(fèi)者。”他說,“這個選擇決定了你該如何分配資源。”
Bartoletti將平臺的構(gòu)建者定義為業(yè)務(wù)主要依賴于在Kubernetes平臺上創(chuàng)建應(yīng)用程序的公司。對他們而言,在生態(tài)系統(tǒng)方面做出正確的選擇至關(guān)重要。平臺的運(yùn)營者更愿意托管他們自己的Kubernetes實(shí)例,且不認(rèn)為該平臺具有戰(zhàn)略意義。平臺的消費(fèi)者只想要一個可用的平臺,不會特別關(guān)心它的出處。
“如果要建一個旅行預(yù)訂系統(tǒng),那么根據(jù)所建平臺的差異性進(jìn)行取舍,這點(diǎn)尤為重要。”Bartoletti說,“但一般的企業(yè)可能不需要加入所有社區(qū)。”
平臺的運(yùn)營者可通過與那些在生態(tài)系統(tǒng)活躍度很高的商業(yè)Kubernetes供應(yīng)商合作(例如IBM,Red Hat公司或Pivotal軟件公司),以防止在選型時陷入困境。“如果Pivotal為您提供了很好的服務(wù),那么就沒有理由改變。”他說,“因?yàn)镻ivotal的工作就是保證它們正常工作。”
對于平臺的消費(fèi)者來說,***選一家主流的公有云提供商,可提供全面可控的服務(wù)并負(fù)責(zé)保持客戶當(dāng)前的狀態(tài)。
專家認(rèn)為,雖然目前的生態(tài)系統(tǒng)讓人眼花繚亂,但平臺的消費(fèi)者也不能只充當(dāng)旁觀者。開源項(xiàng)目的優(yōu)點(diǎn)之一是它們基于標(biāo)準(zhǔn)工具集,可以適應(yīng)Landscape的變化。例如,Docker公司最初選擇自己的Swarm編排工具而不是Kubernetes,但這并沒有阻止它之后與Kubernetes集成,而Swarm仍然是一個可選項(xiàng)。
負(fù)責(zé)任的開源供應(yīng)商不會做出死板的決定。“有可能[亞馬遜網(wǎng)絡(luò)服務(wù)公司]將來會從Lambda轉(zhuǎn)移到另一個Serverless平臺,但人們會后悔使用Lambda嗎?”Bartoletti說,“我的客戶們都不會后悔。”
基于這一事實(shí),IT經(jīng)理們應(yīng)該可以減少些對他們所做決定的擔(dān)憂:在開源的世界里,即使選錯了也能得到令人滿意的結(jié)果。
相關(guān)鏈接:
https://landscape.cncf.io/cncf=hosted,graduated,incubating,sandbox,member,no&license=open-source
https://www.cncf.io/certification/software-conformance/#logos
原文鏈接:https://siliconangle.com/2018/12/13/kubernetes-sprawling-ecosystem-offers-plenty-choice-risk/