Scott Carey
自從谷歌在數(shù)年前推出Kubernetes以來(lái),Kubernetes已迅速成為了一種熱門技術(shù)。微服務(wù)指可在容器中運(yùn)行并協(xié)同工作以充當(dāng)較大型應(yīng)用程序的小型可獨(dú)立部署的服務(wù),其可以跨各種類型的基礎(chǔ)設(shè)施進(jìn)行移植。而作為組合和運(yùn)行由微服務(wù)組成的應(yīng)用程序平臺(tái),Kubernetes可以說(shuō)是不二選擇。
Kubernetes是一種編排工具,它意味著開(kāi)發(fā)人員可以查看、協(xié)調(diào)和管理容器化工作負(fù)載和服務(wù),以運(yùn)行彈性分布式系統(tǒng)。據(jù)云原生計(jì)算基金會(huì)(CNCF)在2018年8月發(fā)布的數(shù)據(jù),40%的受訪者(來(lái)自5000多家企業(yè))已經(jīng)在生產(chǎn)中運(yùn)行Kubernetes。
對(duì)于開(kāi)源項(xiàng)目而言,這是一個(gè)不錯(cuò)的進(jìn)步,不過(guò)值得注意的是,在這些企業(yè)中,絕大多數(shù)在使用Kubernetes時(shí)都只運(yùn)行少數(shù)應(yīng)用程序。盡管如此,其發(fā)展方向已經(jīng)變得非常清晰,即基于容器的微服務(wù)應(yīng)用程序是未來(lái),Kubernetes則是其平臺(tái)。這就是為什么這三大云服務(wù)提供商都推出了托管版Kubernetes的原因,而思科、惠普、IBM/Red Hat、微軟、VMware/Pivotal等則將Kubernetes納入到了其核心軟件產(chǎn)品當(dāng)中。
Kubernetes使得各種規(guī)模的企業(yè)都能夠加快其開(kāi)發(fā)人員的速度,提升部署和擴(kuò)展應(yīng)用程序的敏捷性,現(xiàn)代化其技術(shù)堆棧。例如,在線零售商Ocado自2000年以來(lái)一直為英國(guó)家庭提供新鮮食品,其已經(jīng)建立了自己的技術(shù)平臺(tái)來(lái)管理物流和倉(cāng)庫(kù)。2017年,該公司決定開(kāi)始將其Docker容器遷移到Kubernetes上,并于當(dāng)年夏季在其私有云上將其第一個(gè)應(yīng)用程序投入到生產(chǎn)當(dāng)中。
對(duì)于Ocado和其他企業(yè)來(lái)說(shuō),這一轉(zhuǎn)變的最大好處是可以更快地將產(chǎn)品推向市場(chǎng),并可以更為高效地利用計(jì)算資源。同時(shí),Kubernetes的采用者也都指出了一個(gè)缺點(diǎn),即學(xué)習(xí)曲線陡峭。盡管從長(zhǎng)遠(yuǎn)來(lái)看,該技術(shù)將使開(kāi)發(fā)人員的工作變得更加輕松,但是這并不意味著他們的工作將變得簡(jiǎn)單化。
以下是一些大型的全球公司在生產(chǎn)中運(yùn)行Kubernetes的案例,以及這些公司在此過(guò)程中得到的經(jīng)驗(yàn)和教訓(xùn)。
專業(yè)的金融數(shù)據(jù)公司彭博社在2015年就開(kāi)始使用Kubernetes,當(dāng)時(shí)該工具仍處于測(cè)試階段。在該工具在持續(xù)集成、監(jiān)控和測(cè)試等方面通過(guò)了驗(yàn)證后,彭博社于2017年將其投入到生產(chǎn)當(dāng)中。
彭博社每天要處理數(shù)千億個(gè)金融數(shù)據(jù)點(diǎn),僅其Terminal終端機(jī)就在為14000種不同的應(yīng)用程序提供著驅(qū)動(dòng)力。IT部門希望加快為用戶帶來(lái)新應(yīng)用程序和服務(wù)的速度,并使開(kāi)發(fā)人員從操作任務(wù)中脫身。
在評(píng)估了各種編排平臺(tái)(例如Cloud Foundry、Mesosphere Marathon和各種Docker產(chǎn)品)之后,彭博社選擇了Kubernetes。彭博首席技術(shù)官辦公室計(jì)算基礎(chǔ)設(shè)施主管Andrey Rybka解釋說(shuō):“因?yàn)樗鼈兙哂辛己玫幕A(chǔ),很明顯這是我們正要解決的問(wèn)題。它們的愿景和發(fā)展路線圖正是我們想要的?!?/p>
經(jīng)過(guò)了一段時(shí)間之后,彭博社在Kubernetes上開(kāi)發(fā)了一個(gè)本地化的平臺(tái)即服務(wù)層,以為開(kāi)發(fā)人員提供合適的抽象級(jí),進(jìn)而讓他們能夠高效地使用該技術(shù)。這個(gè)自助服務(wù)Web門戶實(shí)質(zhì)上是一個(gè)命令行界面和REST API,其與基于Git的版本控制系統(tǒng)、CI構(gòu)建系統(tǒng)和中央工件存儲(chǔ)庫(kù)集成在了一起。
彭博社的一個(gè)主要目標(biāo)是利用Kubernetes的自動(dòng)擴(kuò)展功能更好地利用現(xiàn)有硬件,以及在無(wú)問(wèn)題反饋單的情況下即可實(shí)現(xiàn)虛擬計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)的可自我配置和靈活收縮。Rybka在CNCF案例研究中表示:“借助Kubernetes,我們可以非常高效地使用硬件,以使利用率達(dá)到90%~95%?!?這種效率很大程度上來(lái)自于能夠控制為指定工作負(fù)載提供的資源,因此不會(huì)導(dǎo)致其他工作負(fù)載資源不足。
與大多數(shù)企業(yè)在生產(chǎn)中采用Kubernetes的情況一樣,主要挑戰(zhàn)來(lái)自使用YAML編寫清單,這些清單會(huì)指定Kubernetes如何分配資源。Rybka說(shuō):“這些都是Kubernetes中非常棒的概念,但是它們需要陡峭的學(xué)習(xí)曲線?!?/p>
正如彭博社的數(shù)據(jù)和分析基礎(chǔ)設(shè)施主管Steven Bower所說(shuō)的那樣,“Kubernetes讓很多事情變得更加容易,但是不一定會(huì)更簡(jiǎn)單?!?/p>
為此,彭博社從最基本的清單著手逐步推進(jìn),同時(shí)開(kāi)始展開(kāi)大量的內(nèi)部培訓(xùn)計(jì)劃,一開(kāi)始只將標(biāo)準(zhǔn)限在一個(gè)很小的范圍,隨著開(kāi)發(fā)人員對(duì)技術(shù)的逐步熟悉,開(kāi)發(fā)人員可以擴(kuò)大標(biāo)準(zhǔn)的使用范圍。
他說(shuō):“我們現(xiàn)有的基礎(chǔ)設(shè)施很多,但是從大型主機(jī)遷移到Kubernetes的可能性為零?!本幣牌脚_(tái)主要針對(duì)的是基于Web的應(yīng)用程序和全新的系統(tǒng)。在Bower工作的數(shù)據(jù)與分析基礎(chǔ)設(shè)施團(tuán)隊(duì)中,最初的方法是建立一個(gè)新的數(shù)據(jù)科學(xué)計(jì)算平臺(tái),供機(jī)器學(xué)習(xí)工程師使用Spark和TensorFlow等工具運(yùn)行復(fù)雜的工作負(fù)載。
在談到建立專業(yè)知識(shí)的重要性時(shí),Rybka給出了他的的忠告。他說(shuō):“實(shí)際上,用戶必須要擁有一個(gè)與上游Kubernetes、CNCF和整個(gè)生態(tài)系統(tǒng)保持密切聯(lián)系的專家團(tuán)隊(duì),以獲得大量的內(nèi)部知識(shí)。用戶不能光依靠供應(yīng)商,他們自己還需要了解所有與此相關(guān)的復(fù)雜性?!?h3>News UK通過(guò)Kubernetes實(shí)現(xiàn)了按需擴(kuò)展
作為媒體巨頭新聞集團(tuán)(News Corp)的英國(guó)分支機(jī)構(gòu),News UK自2017年以來(lái)就開(kāi)始嘗試Kubernetes,2018年他們從自己自定義Kubernetes集群遷移到了亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)托管的Elastic Kubernetes Service(EKS)上。后者構(gòu)成了堆棧的一部分,其中包括了部分AWS服務(wù),如Elastic Container Service、Fargate計(jì)算引擎、AWS Batch和Elastic Beanstalk。
首個(gè)遷移到托管Kubernetes環(huán)境中的生產(chǎn)應(yīng)用程序是用于訪問(wèn)控制和用戶登錄的舊版Java系統(tǒng)。在證明了該環(huán)境完全滿足需求后,News UK便開(kāi)始對(duì)其他應(yīng)用程序進(jìn)行有序的識(shí)別和遷移。
今年早些時(shí)候,News UK的云開(kāi)發(fā)工程師Marcin Cuber在專業(yè)監(jiān)測(cè)公司New Relic位倫敦召開(kāi)的Futurestack活動(dòng)上發(fā)表講話時(shí)指出:“從操作上講,這簡(jiǎn)化了我們必須維護(hù)和監(jiān)測(cè)的內(nèi)容。最重要的是,我們?cè)讵?dú)立的VPC中擁有了EKS,從而使我們能夠指定自己的安全群組和網(wǎng)絡(luò)訪問(wèn)控制列表?!?/p>
News UK的主要目標(biāo)是更好地圍繞突發(fā)新聞事件和不可預(yù)測(cè)的讀者數(shù)量擴(kuò)展自己的環(huán)境。Cuber舉例稱:“如果有突發(fā)新聞,我們希望每個(gè)讀者都能在全球范圍內(nèi)獲得實(shí)時(shí)更新,當(dāng)然也要讓讀者擁有完美的體驗(yàn)?!?/p>
Kubernetes與虛擬機(jī)自動(dòng)縮放的不同之處在于速度方面。 Cuber說(shuō):“虛擬機(jī)需要很長(zhǎng)時(shí)間才能啟動(dòng),并且在流量高峰時(shí),它們的速度還不夠快,無(wú)法為AutoScalingGroup帶來(lái)新的容量。在Kubernetes中運(yùn)行的Docker容器則更小、更輕便,因此使我們能夠在幾秒鐘的時(shí)間內(nèi)進(jìn)行擴(kuò)展,而不是幾分鐘?!?/p>
對(duì)于希望部署Docker和Kubernetes的任何企業(yè),Cuber也提供了一些建議。首先是使Docker鏡像盡可能地小,并注重使用Kubernetes運(yùn)行無(wú)狀態(tài)應(yīng)用程序。 他說(shuō):“這樣將顯著改善用戶的可擴(kuò)展性和可移植性。”
其次是對(duì)應(yīng)用程序進(jìn)行健康檢查,并使用YAML部署所有的內(nèi)容。他補(bǔ)充說(shuō):“在這種方式中,用戶可以使用在部署后立即失效的臨時(shí)證書(shū),不必?fù)?dān)心靜態(tài)的本地證書(shū)會(huì)受到威脅。”
News UK還希望通過(guò)將EKS群集與AWS現(xiàn)貨實(shí)例搭配起來(lái)的方式降低成本。因?yàn)樵贏WS實(shí)例上,AWS會(huì)以折扣價(jià)出售空閑的計(jì)算容量,但是AWS會(huì)隨時(shí)回收該容量。
Cuber說(shuō):“現(xiàn)貨實(shí)例在價(jià)格方面有著巨大的優(yōu)勢(shì),與按需付費(fèi)相比,我們可以節(jié)省約70%費(fèi)用?!睘榱吮苊夤?jié)點(diǎn)被搶走的問(wèn)題,工程師們?cè)O(shè)置了一個(gè)AWS Lambda函數(shù),該函數(shù)可以檢測(cè)來(lái)自AWS的終止信號(hào),并自動(dòng)清除受到影響的節(jié)點(diǎn)。
最后,News UK運(yùn)行Kubernetes的一個(gè)潛在優(yōu)勢(shì)是招聘。他說(shuō):“Kubernetes是開(kāi)源的,這很具有吸引力。我們希望能夠吸引到真正關(guān)心云原生技術(shù)的工程技術(shù)人員?!?h3>Kubernetes助力Amadeus
西班牙旅游科技巨頭Amadeus早在五年前就開(kāi)始使用Kubernetes,最早使用的版本可以追溯至0.7版本。在隨后的兩年中,該公司希望監(jiān)控、警報(bào)和生態(tài)系統(tǒng)能夠成熟起來(lái),然后再將關(guān)鍵業(yè)務(wù)應(yīng)用程序轉(zhuǎn)到Kubernetes。如今Amadeus認(rèn)為當(dāng)初他們的選擇是正確的。
Amadeus云平臺(tái)軟件工程總監(jiān)Julien Etienne說(shuō):“我們想更快地使用Kubernetes,因此我們努力學(xué)習(xí)了如何操作Kubernetes以及如何對(duì)其進(jìn)行監(jiān)控,如何發(fā)出警報(bào)?!?/p>
Amadeus是全球三大分銷系統(tǒng)之一,該系統(tǒng)使旅行社和元搜索引擎(如Expedia和Kayak)能夠銷售航班機(jī)票、預(yù)訂酒店客房和租車。該公司于2016年下半年開(kāi)始與Red Hat的OpenShift平臺(tái)攜手,將其第一個(gè)應(yīng)用程序(針對(duì)航班)移到生產(chǎn)環(huán)境中的Kubernetes上。該計(jì)劃原本想要率先遷移酒店預(yù)訂應(yīng)用程序,但是隨著該項(xiàng)目不斷變大,公司認(rèn)為基于Linux構(gòu)建的航班應(yīng)用程序更迫切地需要遷移到公有云上,以更好地滿足其航空公司客戶不斷增長(zhǎng)的對(duì)更低延遲的需求。
Etienne說(shuō):“我們從一開(kāi)始擁有的優(yōu)勢(shì)是我們的所有應(yīng)用程序都在Linux上,因此它們從一開(kāi)始就對(duì)容器非常友好。具體的問(wèn)題是如何將現(xiàn)有應(yīng)用程序移到容器上,然后再移至Kubernetes上。我們的目標(biāo)非常簡(jiǎn)單而直接?!?/p>
遷移到Kubernetes的舉措非常適合Amadeus的業(yè)務(wù)目標(biāo),即主要通過(guò)其合作伙伴Google Cloud從本地?cái)?shù)據(jù)中心轉(zhuǎn)型到公有云上,以便其可以更好地?cái)U(kuò)展,以滿足季節(jié)性需求,減少因過(guò)度配置而產(chǎn)生的基礎(chǔ)設(shè)施成本。
就面臨的挑戰(zhàn)而言,Amadeus是一個(gè)強(qiáng)大的工程技術(shù)公司,與使用Kubernetes 等工具需要進(jìn)行企業(yè)文化轉(zhuǎn)型相比,因此一旦完成培訓(xùn),技術(shù)性挑戰(zhàn)將變得微不足道。
Etienne說(shuō):“主要挑戰(zhàn)之一是轉(zhuǎn)變開(kāi)發(fā)人員的思維方式。他們?cè)?jīng)考慮從運(yùn)行應(yīng)用程序的機(jī)器著手?,F(xiàn)在我們可以不用再考慮機(jī)器了,因?yàn)樗袞|西只是一個(gè)由YAML文件驅(qū)動(dòng)的配置?!?/p>
他補(bǔ)充說(shuō):“每個(gè)人都已經(jīng)為容器做好了準(zhǔn)備,最大的轉(zhuǎn)變是以不可知的方式操作應(yīng)用程序。”
Amadeus的總體目標(biāo)是將所有生產(chǎn)工作負(fù)載轉(zhuǎn)移到一個(gè)單一帶有Kubernetes的運(yùn)營(yíng)模型上。到目前為止,該公司已遷移的工作量約為10%~15%。Amadeus平臺(tái)解決方案管理總監(jiān)Sebastien Pellise說(shuō):“現(xiàn)在就斷定我們已經(jīng)實(shí)現(xiàn)了預(yù)定目標(biāo)還為時(shí)過(guò)早?!?/p>
Amadeus負(fù)責(zé)技術(shù)平臺(tái)和工程部的前高級(jí)副總裁Dietmar Fauser認(rèn)為,“采用Kubernetes工具的另一個(gè)潛在好處是容易招募和保留人才,因?yàn)閷?duì)高級(jí)工程師而言,從事這類工作要比在大型機(jī)上工作要更具吸引力?!?h3>為Kubernetes的未來(lái)做好準(zhǔn)備
這些各種案例研究最有趣的方面之一是它們所呈現(xiàn)出來(lái)的一致性。無(wú)論是金融服務(wù)、媒體、零售還是技術(shù)行業(yè),各種規(guī)模的企業(yè)都在努力應(yīng)對(duì)這種以小型的、離散的、松散耦合的功能塊構(gòu)建和部署軟件的方式所帶來(lái)的巨大變化。
挑戰(zhàn)與利益之間也存在一致性。所有這些企業(yè)都不得不采取有時(shí)令人感到痛苦的文化變革。同時(shí),他們還要在招聘人才時(shí)與谷歌和Facebook等巨頭展開(kāi)激烈的的人才競(jìng)爭(zhēng),這對(duì)于他們還說(shuō)是一項(xiàng)巨大的挑戰(zhàn)。所有這些企業(yè)也都開(kāi)始加快其開(kāi)發(fā)周期,降低成本,縮短宕機(jī)時(shí)間,并更加頻繁地為其客戶提供更多價(jià)值。
在這一點(diǎn)上,毫不夸張地說(shuō),任何不適應(yīng)容器和Kubernetes的企業(yè)都將難以跟上我們這個(gè)新的加速發(fā)展的軟件驅(qū)動(dòng)世界。
本文作者Scott Carey為IDG UK的B2B總編輯。
原文網(wǎng)址
https://www.infoworld.com/article/3455244/kubernetes-meets-the-real-world-3-success-stories.html