
除了技術(shù)分享,本次大會(huì)也非常重視客戶案例,包括Spotify、維基百科、Booking.com、Youtube、阿迪達(dá)斯、金融時(shí)報(bào)、eBay、挪威稅務(wù)管理中心等企業(yè)客戶將前來(lái)分享他們?cè)谏a(chǎn)環(huán)境中如何使用容器及其周邊技術(shù)。

Kubernetes 商用成熟
多云成為必然趨勢(shì)
Kubernetes作為CNCF的核心項(xiàng)目,也是第一個(gè)順利進(jìn)入商用Ready的項(xiàng)目,圍繞它的生產(chǎn)實(shí)踐分享成為本次大會(huì)的一大焦點(diǎn)。
CERN
在第一天的Keynote上,來(lái)自歐洲核子研究中心(CERN)的生產(chǎn)實(shí)踐案例分享驚艷了全場(chǎng)。
作為世界上最大的粒子物理研究中心,CERN有著非常龐大的計(jì)算需求。在一個(gè)自建的數(shù)據(jù)中心,CERN已經(jīng)搭建了210余個(gè)K8S集群來(lái)調(diào)度、管理?yè)碛?2萬(wàn)核、1萬(wàn)多hypervisor的基礎(chǔ)設(shè)施。這些集群部署規(guī)模大小不一,最小的只有幾十個(gè)節(jié)點(diǎn),而最大的已經(jīng)到了上千節(jié)點(diǎn)。
為了便于統(tǒng)一管理這些集群中的工作負(fù)載,CERN使用了K8S Federation(集群聯(lián)邦)作為統(tǒng)一的平臺(tái)入口。同時(shí)CERN還在華為伙伴公有云Open Telekom Cloud、Google Cloud、Azure、AWS等云平臺(tái)上創(chuàng)建K8S集群并接入了他們的平臺(tái),以便于快速響應(yīng)技術(shù)峰會(huì)等大型活動(dòng)期間暴漲的計(jì)算量。
歐洲粒子研究中心的專家分享
使用集群聯(lián)邦管理k8s多集群的案例
在兩個(gè)或更多的云平臺(tái)上創(chuàng)建K8S集群,并部署工作負(fù)載,已經(jīng)成為許多K8S采用者的常規(guī)做法。較之以往,用戶可以相對(duì)容易地在云平臺(tái)上同時(shí)部署業(yè)務(wù),并享受到不同云平臺(tái)的優(yōu)勢(shì)。
不難發(fā)現(xiàn),當(dāng)下基于Kubernetes的容器服務(wù),已經(jīng)幾乎成為各家云平臺(tái)標(biāo)配的服務(wù)。得益于K8S軟件一致性認(rèn)證項(xiàng)目的推動(dòng),越來(lái)越多的廠商將提供認(rèn)證的K8S發(fā)行版作為基本要求。多云的支持,已成為必然趨勢(shì)。而隨著CloudNative的發(fā)展,相信在不久的將來(lái),以K8S為核心的云原生平臺(tái)將真正實(shí)現(xiàn)“Cloud Agnostic”。用戶可以真正輕松地實(shí)現(xiàn),跨云、跨集群的Workload自由遷移。

核心與基礎(chǔ)問(wèn)題已經(jīng)解決
如何消除Cloud Native背景下的安全焦慮
過(guò)去的兩年是CNCF的創(chuàng)業(yè)期,社區(qū)以Kubernetes和容器技術(shù)為平臺(tái)核心,圍繞可觀測(cè)性,可運(yùn)維性,微服務(wù)發(fā)現(xiàn)等領(lǐng)域進(jìn)行能力補(bǔ)齊,構(gòu)建了靈活易擴(kuò)展的基礎(chǔ)平臺(tái)。
隨著容器、微服務(wù)等技術(shù)被越來(lái)越多地采用實(shí)施和運(yùn)行于生產(chǎn)環(huán)境,越來(lái)越多的人關(guān)注到新興技術(shù)背景下的安全問(wèn)題。如何消除這些顧慮,也正是CNCF在接下來(lái)發(fā)力的重點(diǎn)。

gVisor
Runtime方面,Google帶來(lái)了他們自己的安全容器方案 —— gVisor。gVisor提供新型沙箱容器運(yùn)行時(shí)環(huán)境,能夠在保證輕量化優(yōu)勢(shì)的同時(shí),提供與虛擬機(jī)類似的隔離效果。
gVisor通過(guò)在用戶空間內(nèi)攔截應(yīng)用程序系統(tǒng)調(diào)用并充當(dāng)訪客內(nèi)核(guest kernel)來(lái)提供隔離邊界。此外,gVisor不需要固定資源,它能夠隨時(shí)適應(yīng)不斷變化的資源條件。
gVisor項(xiàng)目為容器安全性提供了新思路,豐富了安全容器技術(shù)的生態(tài),雖然距離商用還有一段路要走,但就將安全容器推向主流市場(chǎng)而言,它未來(lái)帶來(lái)的幫助無(wú)疑會(huì)是巨大的。

Kubeflow發(fā)布0.1版本
大幅降低機(jī)器學(xué)習(xí)框架部署門檻
近年來(lái),機(jī)器學(xué)習(xí)的發(fā)展可謂突飛猛進(jìn)。如何發(fā)揮Kubernetes的優(yōu)勢(shì),將其作為部署平臺(tái)來(lái)提供便捷、可擴(kuò)展的機(jī)器學(xué)習(xí)框架,是其中一個(gè)重點(diǎn)話題之一。Kubeflow項(xiàng)目的發(fā)起,正是試圖找到一種最簡(jiǎn)便的開(kāi)源解決方案。

Kubeflow
自去年北美的KubeCon + CloudNativeCon宣布項(xiàng)目成立之后,Kubeflow已經(jīng)吸引了來(lái)自包括Google、微軟、Redhat、華為、阿里云等在內(nèi)的20多個(gè)組織的70多名貢獻(xiàn)者貢獻(xiàn)了700多條代碼提交,并獲得了3.1k的star,增長(zhǎng)速度之快躍居Github前2%。
本次發(fā)布的0.1版本提供了一套最精簡(jiǎn)的軟件包,方便用戶開(kāi)發(fā)、訓(xùn)練和部署機(jī)器學(xué)習(xí)框架。
在之后的幾個(gè)月里,Kubeflow項(xiàng)目將致力于0.2的發(fā)布。到今年年底Kubeflow發(fā)布1.0版本之后,kubeflow項(xiàng)目將尋求一個(gè)正式的治理社區(qū),托管在CNCF或其他社區(qū)下。

Service Mesh持續(xù)走俏
Istio 引領(lǐng)大潮
企業(yè)上云,容器和微服務(wù)是兩大利器。容器屏蔽了應(yīng)用對(duì)環(huán)境的感知,簡(jiǎn)化了軟件包分發(fā)的一致性問(wèn)題,避免重復(fù)勞動(dòng)。而轉(zhuǎn)向微服務(wù)的架構(gòu),屏蔽了應(yīng)用對(duì)服務(wù)的感知,可以使業(yè)務(wù)團(tuán)隊(duì)更專注于自身專業(yè)領(lǐng)域。而關(guān)于如何做負(fù)載均衡、熔斷和遙測(cè)等等問(wèn)題,都可以通過(guò)Service Mesh卸掉。高度的聚焦可以大幅度提高生產(chǎn)力。
Istio
Istio作為最有希望成為Service Mesh事實(shí)標(biāo)準(zhǔn)的項(xiàng)目,自去年5月份發(fā)布以來(lái),憑借與K8S的深度集成、零侵入性、易擴(kuò)展等優(yōu)勢(shì),加以Google、IBM等大廠商支持,迅速走紅。在不到一年的時(shí)間里獲得了8000+的star,吸引到近200個(gè)貢獻(xiàn)者參與代碼開(kāi)發(fā),成為去年以來(lái)K8S生態(tài)中最火熱的項(xiàng)目。
本次大會(huì)中Istio的一大話題是多云和多集群。K8S在多云之間提供了一致的平臺(tái)環(huán)境,但是如何實(shí)現(xiàn)跨云、跨集群的服務(wù)發(fā)現(xiàn)和流量控制卻一直懸而未決。
在K8S Federation項(xiàng)目中,有一個(gè)簡(jiǎn)單版的實(shí)現(xiàn)——本集群優(yōu)先路由。而Istio在最新發(fā)布的0.8版本中提供了多集群支持的特性,補(bǔ)齊K8S在多集群場(chǎng)景下的服務(wù)管理能力。

Serverless領(lǐng)域發(fā)布事件
標(biāo)準(zhǔn)CloudEvents 0.1
隨著云技術(shù)的發(fā)展和廣泛采用,應(yīng)用程序變得越來(lái)越分散,集成的數(shù)量不斷增長(zhǎng),基于事件驅(qū)動(dòng)的架構(gòu)和Serverless的概念隨之興起。
為了解決Serverless的互操作性問(wèn)題,CNCF Serverless工作組自去年年底完成白皮書(shū)之后,便致力于Serverless事件標(biāo)準(zhǔn)規(guī)范——CloudEvents的制定。開(kāi)源玩家華為,谷歌,微軟,IBM,紅帽等,都積極投入其中,為該項(xiàng)目做出了巨大的貢獻(xiàn)。

本次大會(huì)上發(fā)布的CloudEvents 0.1的范圍很簡(jiǎn)單:
- 提供一組一致的元數(shù)據(jù),可以將其包含在事件數(shù)據(jù)中,使事件更容易適用于發(fā)布者、中間件、訂閱者和應(yīng)用程序。簡(jiǎn)而言之,就是一個(gè)標(biāo)準(zhǔn)的事件信封。
- CloudEvents的通用元數(shù)據(jù)使得事件更易于路由,扇出,追蹤,重放,并且基本保持“在線”。它們更便攜,更流暢,更易于跨平臺(tái)傳輸。目前,網(wǎng)絡(luò)帶寬,成本和延遲仍然是主要挑戰(zhàn),但CloudEvents簡(jiǎn)單的元數(shù)據(jù)定義已經(jīng)可以在諸多場(chǎng)景中為數(shù)據(jù)帶來(lái)不錯(cuò)的可移植性。

聚焦K8S加速創(chuàng)新
CloudNative編程框架應(yīng)運(yùn)而生
眾所周知,kubernetes早在設(shè)計(jì)之初就做到了架構(gòu)上的松耦合,在而后的演進(jìn)中又進(jìn)行了多處插件化框架和可擴(kuò)展性的改進(jìn)和增強(qiáng)。Operator概念的引入,更是標(biāo)準(zhǔn)化了一大部分對(duì)k8s有定制擴(kuò)展需求的場(chǎng)景。

然而,Operator本身的開(kāi)發(fā)、測(cè)試、運(yùn)維等,仍然有一定的門檻。Operator開(kāi)發(fā)框架旨在歸納已有實(shí)現(xiàn)中優(yōu)秀的實(shí)踐經(jīng)驗(yàn),形成一套標(biāo)準(zhǔn),來(lái)幫助降低K8S上應(yīng)用程序的開(kāi)發(fā)、測(cè)試和運(yùn)維的門檻。這對(duì)那些苦于業(yè)務(wù)改造上云后運(yùn)維難、對(duì)K8S有定制需求的企業(yè)用戶來(lái)說(shuō),是一大福音。
Ballerina
本次KubeCon還帶來(lái)了一個(gè)十分新穎的項(xiàng)目——Ballerina。這是一門用于集成的Cloud Native編程語(yǔ)言。

Ballerina的開(kāi)發(fā)者認(rèn)為,未來(lái)人們編寫(xiě)的應(yīng)用程序會(huì)越來(lái)越依賴于API,而集成則是打通各端點(diǎn)間彈性通信的重要規(guī)范。
因此,他們將分布式系統(tǒng)集成的基本概念融合到語(yǔ)言中,設(shè)計(jì)了這門編譯型、事務(wù)性、靜態(tài)強(qiáng)類型編程語(yǔ)言,并提供了類型安全的并發(fā)環(huán)境。
Ballerina支持文本和圖形語(yǔ)法,除常規(guī)的文本編寫(xiě)代碼外,開(kāi)發(fā)者還可以通過(guò)在設(shè)計(jì)器中編輯圖表來(lái)組織代碼。這更進(jìn)一步降低了云原生應(yīng)用的開(kāi)發(fā)門檻,開(kāi)發(fā)者可以輕松地實(shí)現(xiàn)具有分布式事務(wù)、可靠消息傳遞、流處理和工作流的微服務(wù)。
大幕拉開(kāi)
真正的好戲才剛剛開(kāi)始
過(guò)去
面向分布式應(yīng)用開(kāi)發(fā),我們看到的是Erlang、容錯(cuò)編程和開(kāi)發(fā)框架等,更多的是綁定于不同的編程社區(qū)和軟件棧。
現(xiàn)在
我們可以欣喜地看到,Kubernetes憑借著它許多驚艷的特性,和龐大的生態(tài)力量,已經(jīng)進(jìn)入與諸多分布式系統(tǒng)走向商業(yè)化相似的發(fā)展歷程,日漸變得適合日常的開(kāi)發(fā)者,適合日常的企業(yè),最終成為被業(yè)界普遍采用的橫向技術(shù)。
未來(lái)
K8S的使用門檻將從白盒轉(zhuǎn)向黑盒,開(kāi)發(fā)者不用掌握太多K8S的知識(shí),只需基于一套標(biāo)準(zhǔn)化原語(yǔ),便可實(shí)現(xiàn)分布式系統(tǒng)風(fēng)格的編程。
人們不必再糾結(jié)代碼如何編譯,鏡像如何構(gòu)建,測(cè)試與生產(chǎn)環(huán)境的配置有何不同,尋常的一個(gè)代碼提交動(dòng)作便可以觸發(fā)從編譯構(gòu)建測(cè)試到生產(chǎn)運(yùn)維全流程的交付流水線。而出現(xiàn)問(wèn)題時(shí)的回滾也會(huì)是如此的簡(jiǎn)單,因?yàn)榇a提交的操作都是原子的。
回顧當(dāng)下,或許很多人會(huì)覺(jué)得K8S已經(jīng)逐漸穩(wěn)定,也逐漸變得無(wú)聊,但縱觀整個(gè)CloudNative生態(tài),許多新鮮有趣的項(xiàng)目正在雨后春筍般地涌現(xiàn)——畢竟,我們只是搭好了云原生的大舞臺(tái),真正的好戲,才剛剛開(kāi)始。