2019,雲原生技術的商業化元年

2019,雲原生技術的商業化元年
在整個2018年,有很多關於數字化轉型的討論。以雲、大數據、人工智能、物聯網和區塊鏈等數字技術所驅動的企業數字化轉型,最終的目標是什麼?這就是雲原生的數字企業,或者稱爲數字原生企業。簡單的理解,數字原生企業,其核心競爭力在於大規模的雲軟件的開發、運維及運營能力。互聯網公司和共享經濟平臺企業是數字原生企業的代表之一,而像微軟這樣從傳統軟件銷售轉向雲服務運營的高科技企業也是數字原生企業的代表之一,更多的傳統企業都在試圖走上數字服務的商業模式。

2011年8月,著名的硅谷Andreessen Horowitz風險投資基金聯合創始人Marc Andreessen在《華爾街日報》上發表了“軟件正在吞噬世界”的觀點文章;2017年7月,Linux基金會副總裁、CNCF原生雲計算基金會首席運營官Chris Aniszczyk在2017軟博會的中國開源產業峯會上表示“開源軟件和人工智能正在吞噬世界”。而微軟CEO Satya Nadella在談論到本輪數字化轉型的時候曾表達觀點:未來所有的企業都將是軟件企業。Nadella的話有兩層理解:軟件成爲企業對內的核心能力;軟件和數字服務成爲企業對外的核心業務。

數字化轉型的目標是讓軟件成爲企業的核心能力,同時把軟件作爲數字服務對外輸出成爲企業的核心業務,最終成爲數字原生企業。在這個過程中,就必須要提到CNCF雲原生基金會。CNCF(Cloud Native Computing Foundation)成立於2015年12月,該基金會由Google主導組建,隸屬於Linux Foundation,是一家非營利性組織。CNCF爲Github上高速發展的開源項目提供完全中立的平臺,並促進業界頂級開發者、最終用戶以及供應商之間的緊密合作。

在 2018 開源領袖峯會(OSLS)上,CNCF 基金會、Google Cloud 工程總監 Chen Goldberg 宣佈,Kubernetes 成爲第一個從 CNCF 畢業的項目。這也意味着該開源項目已經成熟並且足夠靈活,可在任何行業、各種規模的公司中大規模地管理容器。Kubernetes是整個雲原生計算的核心、靈魂和平臺級技術,正因爲Kubernetes技術、商業和生態的成熟,才導致了2019年開始全面進入雲原生技術的商業化之年。

CNCF:多雲環境中落地雲應用

在CNCF的官網上,定義了CNCF的使命:創建一個可持續的生態體系,圍繞高質量的開源項目羣體而培育開源社區,確保容器成爲微服務架構的基礎之一。作爲一個開源軟件基金會組織,CNCF致力於推廣“雲原生計算”並確保其可持續性,而“雲原生計算”是一個用於部署微服務應用的開源軟件堆棧,其方式是把各個組件都打包到容器中並動態調度容器以優化計算資源利用率。

CNCF對雲原生(Cloud Native)的初始定義包含以下三個方面:應用容器化、面向微服務架構、應用支持容器的編排調度。到了2018年,隨着雲原生生態的不斷壯大,所有主流雲計算供應商都加入了該基金會,而且雲原生有意兼容非雲原生應用的部分。隨着CNCF基金會中的會員以及容納的項目越來越多,CNCF爲“雲原生”進行了重新定位:雲原生技術有利於各組織在公有云、私有云和混合雲等新型動態環境中,構建和運行可彈性擴展的應用。

雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。結合可靠的自動化手段,雲原生技術使工程師能夠輕鬆地對系統作出頻繁和可預測的重大變更。CNCF致力於培育和維護一個廠商中立的開源生態系統,以推廣雲原生技術。

進一步理解,CNCF 所關注的“雲原生計算”更側重於雲軟件開發後的交付與部署,主要針對以容器爲基礎的雲軟件部署,即把一個雲應用軟件所需要和依賴的底層軟件組件打包到一個一個的標準化容器中,而容器可以把一次編寫的雲應用程序部署到從本地數據中心到公有云的多種底層計算環境中,進而由無數的“小”容器橫向連接起來就形成了雲軟件的規模化擴展能力。

在容器化部署的過程中,容器的調度技術和能力就顯得尤爲重要,相當於是應用層的“操作系統”,其中一種已經取得市場主導地位的容器調度與編排技術就是Kubernetes。

Kubernetes:雲原生應用的“底座”

Kubernetes脫胎於谷歌自己的容器調度與編排技術Borg,是谷歌對外輸出的技術並捐獻給開源社區,谷歌在2016年的時候透露可以在一週的時間內啓動超過20億個容器,可想而知Kubernetes的技術實力。

由於有谷歌在背後的大力支持,Kubernetes在最開始的容器調度與編排技術之爭中脫穎而出。2018年,所有領先的公有云和私有云提供商都對Kubernetes開源技術進行了大量投資。AWS、微軟、谷歌、IBM、Oracle、阿里雲、華爲雲等都有各自的Kubernetes引擎,Red Hat、思科、VMware等公司也是如此。2018年底,微軟甚至宣佈自2020年1月31日起,將不再支持其Azure容器服務(ACS)。ACS正在被微軟的Azure Kubernetes Services(AKS)取代,後者是微軟在2017年推出的一項服務。

隨着Kubernetes的“畢業”,其代碼也處於穩定狀態。根據source{d}的源代碼分析,Kubernetes的核心代碼已經穩定在175萬行代碼,公開的應用程序接口也穩定在16000個,開源社區對於Kubernetes的貢獻都在2018年降低了,也就意味着Kubernetes代碼的成熟與穩定,可供進一步商業化應用。OpenShift社區在2019年初發表預測認爲,Kubernetes於2014年開源並被企業團隊用於生產環境中到現在已被普遍接受和認可,Kubernetes正在進入第三個發展階段,即用戶正在尋求各種方法來實現Kubernetes在生產環境中的自動化運維操作。

除了獲得業界幾乎所有技術廠商的支持外,Kubernetes成熟的另一個明顯標誌是圍繞其成長起來的豐富的開源技術生態體系,包括監控管理Prometheus、服務代理Envoy、遠程過程調用gRPC、容器網絡接口CNI、基於DNS的服務探索CoreDNS、打包環境Helm等等。這些豐富的周邊工具,豐富了對Kubernetes的管理、監控、優化和兼容等,完善了Kubernetes的可應用場景。

當然,更重要的是來自用戶的認可。CNCF在2018年8月發佈的一份截止到2018年6月的半年度企業用戶調查報告中(受訪者主要爲歐美企業),稱自2017年12月的調查以來,已經有73%的受訪用戶在生產環境中使用了容器,這比2016年3月的調查結果相比提高了50%;容器可以運行在AWS、谷歌雲、微軟雲、OpenStack和VMware等多種公有云、私有云和混合雲環境中;而容器的管理工具中,有83%的受訪者選擇了Kubernetes,遠遠高於第二位的Amazon ECS(24%)和第三位的Docker Swarm(21%)。再加上2018年VMware對於容器和Kubernetes的大力投入,Kubernetes也在私有云環境中得到了強力支持。現在,企業可以在私有、公有、混合或多雲部署等廣泛的計算環境使用Kubernetes。

除了Kubernetes自身的技術與商業生態外,還有大量的廠商在圍繞Kubernetes外圍進行擴展。例如AWS在2018年11月發佈的Firecracker,這是一個使用基於Linux內核的虛擬機或KVM的輕量級開源虛擬機監控器。Firecracker可以在無服務器雲中創建和管理安全的多租戶容器和Lambda功能。它允許像containerd這樣流行的容器運行時能夠將容器作爲microVM進行管理。通過這種方式,允許開發人員可以利用虛擬機的工作負載隔離,同時獲得在Kubernetes上運行容器的效率。而這並不是CNCF所關注的範圍,但AWS把Kubernetes容器與無服務器和虛擬化技術進行了連接,可以滿足企業的多種需求。此外,OpenShift社區認爲,隨着Kubernetes在裸機上運行的發展進步,企業將能夠充分利用直接在裸機服務器上部署Kubernetes所帶來的更高速度和效率。換句話說,Kubernetes將有機會跨傳統的裸機、虛擬機以及新興雲原生環境運行,統一異構的計算環境。

值得一提的是,CNCF還對外提供Kubernetes的培訓和認證,包括2017年推出的免費Kubernetes MOOC課程。2017年9月,CNCF推出了官方的Kubernetes系統管理員認證(CKA),而Kubernetes認證服務商(KCSP)則認證了那些可以提供Kubernetes支持、諮詢、專業服務以及培訓的服務商。現在,CNCF還提供官方認證的Kubernetes應用開發商(CKAD),認證那些可以爲Kubernetes設計、構建、配置和暴露雲原生應用的開發商能力。CNCF還設法與整個軟件產業的主要供應商達成一致,在Kubernetes項目上不出現分支(forks),以確保所有Kubernetes軟件的一致性,CNCF也爲供應商的產品和服務提供一致性認證。

截止2018年底,經CNCF認證的Kubernetes商業發行版供應商達到近50家、29家認證的託管服務商、9家認證的安裝程序提供商、15家認證的PaaS/Container服務提供商、71家認證的Kubernetes服務提供商、18家認證的Kubernetes培訓提供商。這樣龐大的供應商體系,足以支撐一個完善的Kubernetes技術商業生態。

商業化運作雲原生項目

截止2018年底,CNCF擁有300多名成員,包括世界上最大的公有云和企業軟件公司以及數十家創新型初創公司。

其中,CNCF白金會員有AWS、谷歌、微軟、IBM、Pivotal、Oracle、SAP、阿里雲、華爲、京東等共21家企業;黃金會員有百度、中興、騰訊、NEC、SUSE、Salesforce、NetApp等共13家企業;銀牌會員共有255家企業。CNCF終端用戶社區已經有30位成員,包括滴滴、京東等企業;而終端用戶支持成員已有37家企業;學術和非營利組織成員共有11家。

那麼,CNCF是如何保證“畢業”的開源雲原生項目擁有足夠的能力應用於廣泛的商業場景?在Github上公佈的CNCF的“憲章”裏,有詳細的描述(2018年12月更新版本):

CNCF 在開源社區的基礎上發揮着作用:(A)項目管理:確保技術可用於社區並且不受利益紛爭的影響;確保技術的品牌(商標和標識)得到社區成員的關注和使用,特別強調統一的用戶體驗和高水平的應用程序兼容性。(B)促進生態系統的發展和演進:評估哪些技術可以納入雲原生計算應用的願景,鼓勵社區交付這樣可以推進總體願景的技術並進行集成;提供一種方法來培育各個部分的通用技術標準。(C)推廣底層技術和應用定義及管理方法,包括活動和會議、營銷、培訓課程和開發人員認證。(D)通過使技術可訪問和可靠性,爲社區服務:旨在通過對參考架構進行明確定義,爲每個組成部分提供完全集成和合格的構建。

同時,CNCF遵循以下原則:(A)快速,基金會的初衷之一就是讓項目快速的發展,從而支持用戶的積極使用;(B)開放,CNCF 是以開放和高度透明爲最高準則,而且獨立於任何其它團體運作,CNCF根據貢獻的內容和優點接受所有的貢獻者且遵循開源的價值觀,CNCF輸出的技術可以讓所有人使用和受益,技術社區及其決策保持高度透明;(C)公平,CNCF極力避免不必要的影響、不良行爲、以及“付費參與遊戲”的決策;(D)強大的技術身份,CNCF實現並保持高度的自身技術認同,並將之同步到所有的共享項目中;(E)清晰的邊界,CNCF制定明確的目標,並在某些情況下確定什麼不是基金會的目標,幫助整個生態系統有效共存,讓人們理解創新的重點所在;(F)可擴展,能夠支持從小型開發環境到企業和服務商規模的所有部署規模,這意味着在某些部署中可能不會部署某些可選組件,但總體設計和體系結構仍應適用;(G)平臺中立,CNCF所開發的項目並不針對某個特定平臺,而是旨在支持各種體系結構和操作系統。

CNCF“憲章”還設計了市場營銷委員會、IP策略、反壟斷條約等內容,較爲全面的保護了雲原生技術參與企業的利益和共享利益。通過這些努力,CNCF旨在讓雲原生技術無處不在。

快速成熟的頂級開源雲原生技術

CNCF最爲重要的職責,就是負責託管和培養雲原生軟件堆棧的項目,包括Kubernetes、Prometheus等。

每個受託管和培養的CNCF項目都有成熟度等級,申請成爲CNCF項目的時候需要確定項目的成熟度級別(Maturity Level)。成熟度級別包括以下三種:sandbox(初級)、incubating(孵化中)、graduated(畢業)。所有項目的等級劃分完全由TOC投票決定。投票採取fallback策略即回退策略,先從最高級別(graduated)開始,如果2/3多數投票通過的話則確認爲“畢業”,如果沒通過則進行下一低級別的投票,如果一直到sandbox級別都沒得到2/3多數投票通過的話,則拒絕其進入CNCF項目。

除了Kubernetes已經畢業之外,Prometheus於2018年3月畢業、Envoy於2018年11月畢業。

Prometheus是一套開源的監控&報警&時間序列數據庫的組合,最開始由SoundCloud公司開發並於2012年開始編寫代碼,之後許多公司和組織接受和採用Prometheus,便將它獨立成開源項目。2016年,Prometheus加入CNCF,成爲繼Kubernetes之後的第二個託管項目,Google SRE的書內也曾提到過與BorgMon監控系統相似的實現是Prometheus。現在最常見的Kubernetes容器管理系統中,通常會搭配Prometheus進行監控。因爲越來越多的企業開始使用容器,因此容器監控變得日益重要。CNCF首席運營官Chris Aniszczyk 表示,監控和跟蹤能力是雲原生的重要部分,一個成熟的監控系統可以讓用戶瞭解系統內部情況,並在故障出現時及時發佈警報。現在,Prometheus已經具備了一定的成熟度和穩定性,供應商可以放心地將它集成到商業平臺中。

Envoy是第三個從CNCF畢業的項目。Envoy是一個針對Service Mesh服務網格的Proxy代理解決方案,是L7層的代理與通信總線技術,主要用於大型現代面向服務的架構。Envoy的理念是網絡應該向應用透明,如果網絡和應用都出現問題的時候,應該很容易定位問題源。源於Lyft貢獻的技術,Envoy是高性能的開源邊緣、中間和服務代理,該項目通過管理微服務之間的交互以確保應用程序性能,有助於簡化向雲原生架構的過渡和運維。Envoy項目不斷增長的用戶社區包括Airbnb、Booking.com、eBay、F5、Google、IBM、Lyft、Medium、Microsoft、Netflix、Pinterest、Salesforce、Square、Stripe、騰訊、Twilio、Verizon等。雅虎日本子公司Actapio與Heptio(後被VMware收購)合作,利用Envoy代理構建開源項目Heptio Gimbal,該項目可以處理私有云中數百個Kubernetes和OpenStack集羣的大規模服務暴露(Ingress)。在Envoy的幫助下,能夠大幅加快Actapio的軟件開發和發佈週期。對於谷歌來說,Envoy不僅是Istio的關鍵構建組件,也是幾個谷歌雲網絡服務的關鍵組件。而Istio則來自谷歌、IBM和Lyft,是集大成的Service Mesh服務網格實現技術,可以進行大規模的微服務通信管理。

目前,CNCF正在孵化的項目有17個,包括Linkerd、Fluentd、etcd等開源項目;初級項目共有12個,其中包括阿里雲的Dragonfly等。根據CNCF的2018年6月半年度用戶調查,即便是正在孵化中的雲原生技術也在企業生產環境中得到了應用:Containerd的使用率爲45%、上次調查爲18%;CoreDNS的使用率爲36%、上次調查爲7%;Envoy的使用率爲24%、上次調查爲4%;Fluentd的使用率爲57%、上次調查爲38%、gRPC的使用率爲45%、上次調查爲22%、Jaeger的使用率爲25%、上次調查爲5%;Linkerd的使用率爲16%、上次調查爲3%、OpenTracing的使用率爲21%、上次調查爲8%。

可以看出,在短短半年時間內,CNCF所扶持的雲原生開源技術在企業生產環境中得到了強力應用,平均使用率較上次調查增長了200%。

雲原生技術全景圖

當然,整個雲原生計算領域並不僅僅是CNCF所負責託管和孵化的這些項目。CNCF提供了建議的整個雲原生計算技術全景圖,實際上就是面向雲原生應用的“操作系統”上層架構,又稱爲aPaaS:以容器技術爲核心,分爲運行時(Runtime)和 Orchestration 兩層,Runtime 負責容器的計算、存儲、網絡,包括雲原生存儲、容器運行時、雲原生網絡等;Orchestration 負責容器集羣的調度、服務發現和資源管理,包括調度與編排、協調與服務發現、遠程程序調用、服務代理、API網關和服務網格等。

在運行時(Runtime)之下爲基礎設施和配置管理,作爲容器底層技術。容器可以運行在各種系統上,包括公有云、私有云、物理機等;這之上爲容器的“計算資源供應層”,提供容器運行所依賴的自動化部署工具、鏡像工具、安全工具等運維繫統。而在Orchestration之上爲應用層,即“App定義與開發層”,包括數據庫、流與消息、應用定義和Image構建、持續集成與交付等。

在雲原生計算技術全景圖的各個組成部分中,既有CNCF所託管和孵化的頂級開源項目作爲可選實現技術之一,也有其它開源項目和技術商提供的解決方案,例如數據庫部分既有CNCF在孵化的Vitess(可橫向擴展的MySQL數據庫集羣),也有Oracle、IBM、SQL Server、MariaDB、Redis等可選,這些可選技術之間既有競爭關係也有互補關係,組合起來就可以實現一個完整的支撐雲原生應用的aPaaS操作系統。

在2018年之前,整個雲計算領域圍繞着底層計算資源的管理形成了共識:OpenStack、AWS、微軟Azure、谷歌雲、IBM雲、阿里雲、VMware SDDC等IaaS軟件業已成熟,而面向DevOps的雲原生應用PaaS支撐技術則在2018年全面成熟起來,這就是CNCF所代表的雲原生開源項目羣體。

隨着Kubernetes的商業化成熟,IaaS、PaaS和SaaS三層雲計算技術體系將在未來幾年形成全面的技術體系和供應商陣營,向上支撐起可以大規模、工業標準化運作的企業APP或SaaS開發、運營和管理能力,企業級APP時代即將全面繁榮。而2019年,將無疑是雲原生計算的商業化元年,DevOps時代將真正到來。(文/寧川)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章