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