4月24日,中國資訊通信研究院主辦的首屆雲原生産業大會在北京舉行,在《雲原生數字引領未來》的主題演講中,阿裡雲容器服務總監易立表示:“雲原生不但可以很好的支援網際網路應用,也在深刻影響着新的計算架構、新的智能資料應用。以容器、服務網格、微服務、Serverless為代表的雲原生技術,帶來一種全新的方式來建構應用。”本文根據易立演講内容整理而成。
擁抱雲原生技術,解耦系統複雜度
如今,大多數企業開始全面擁抱雲計算,在All-in-Cloud全面到來的時代,三個重要轉變:基礎設施的雲化、核心技術的網際網路化、業務的資料化和智能化。在各行各業中,都有很多業務應用從誕生之初就生長在雲端,各個企業也是以越來越像網際網路公司,而技術能力被視為不可或缺的核心競争力。在2019阿裡雲峰會·北京站上,阿裡雲智能總裁張建鋒在談及‘核心技術的網際網路化’時,也提到了大力投資雲原生。
為什麼要擁抱雲原生?一方面,雲計算已經重塑了軟體的整個生命周期,從架構設計到開發,再到建構、傳遞和運維等所有環節;另一方面,企業IT架構也随之發生巨大變化,而業務又深度依賴IT能力。這帶來了一定程度的複雜性和挑戰性。
正如人類社會發展伴随着技術革命與社會大分工一樣,雲原生技術的出現解耦了很多複雜性,這是IT技術的進步。
首先,Docker實作了應用與運作環境的解耦,衆多業務應用負載都可以被容器化,而且應用容器化滿足了靈活、可遷移、标準化的訴求;其次,Kubernetes的出現讓資源編排排程與底層基礎設施解耦,應用和資源的管控也開始得心應手,容器編排實作資源編排、高效排程;随後,Istio為代表的服務網格技術解耦了服務實作與服務治理能力。此外,阿裡雲還提供了Open API、SDK等豐富的開發工具,實作第三方被內建,為雲的生态夥伴提供廣闊的可能性。這樣的技術分層推動了社會分工,極大促進了技術和業務創新。
在阿裡雲看來,雲原生首先可以支援網際網路規模應用,可以更加快速地創新、和低成本試錯;其次,屏蔽了底層基礎架構的差異和複雜性;同時,服務網格、無服務計算等新的計算範型的不斷湧現,給整體IT架構能力帶來了極緻彈性,進而更好地服務于業務。使用者可以基于阿裡雲容器服務建構面向領域的雲原生架構,如面向機器學習的Kubeflow,和面向無伺服器的Knative等等。
方興未艾,容器應用的新思考
容器已經無處不在了, 作為容器服務的提供者,我們認為容器技術會繼續發展,被應用于“新的計算形态”,“新的應用負載”和“新的實體邊界”,在此将相關觀察和新思考分享給大家。
1 新的計算形态:雲原生的Serverless Runtime已來
雲原生技術理念,是使企業使用者及開發者隻關注應用開發,無需關注基礎設施及基礎服務。與之相似的Serverless計算,将應用服務資源化并以API接口的方式提供出來,使用者隻需從用戶端發起調用請求即可,更重要的是,pay as you go 能夠真正為使用者節省成本。
Serverless Runtime 分為面向基礎架構容器的實作,面向應用服務封裝的實作,和事件驅動面向函數計算的實作。
雲原生Serverless Runtime形态包含多種方式。業界各個廠商也相應地設計出了不同服務解決方案:
- 面向函數的Function as a Service(FaaS) - 比如AWS Lambda,阿裡雲的函數計算,提供了事件驅動的程式設計方式,使用者隻需提供函數實作響應觸發實踐,開發效率很高。阿裡雲函數計算按照調用量計費,可以根據業務流量平滑調整計算資源,在典型場景下,會有10%~90%的成本下降。客戶碼隆科技做模型預測,利用函數計算降低了40%的計算成本。
- 面向應用 - 比如Google App Engine、新釋出的Cloud Run和阿裡雲EDAS Serverless,使用者隻需提供應用實作而平台負責應用彈性、自動化運維,這主要面向網際網路類型應用。相比于FaaS,面向應用的Serverless形态無需改造現有應用,阿裡雲EDAS Serverless為流行的開源微服務架構提供了無伺服器應用托管平台,支援Spring Cloud,Apache Dubbo,或者阿裡雲HSF架構。
- 面向容器 – 比如AWS fargate,或者是阿裡雲的Serverless Kubernetes 應用的載體是容器鏡像,靈活性很好,配合排程系統可以支援各種類型應用,而無需管理底層基礎架構。針對容器化應用,阿裡雲在去年5月推出了Serverless Kubernetes容器服務,無需節點管理和容量規劃,按應用所需資源付費,彈性擴容。針對阿裡雲基礎能力優化,安全,高效。極大降低了管理Kubernetes叢集的。Serverless Kubernetes的底層是建構在阿裡雲針對容器優化的輕量虛拟化彈性容器執行個體之上,提供了輕量、高效、安全的容器應用執行環境。Serverless Kubernetes無需修改即可部署容器類型應用。
2 新的應用負載:容器正被用于越來越多類型應用
最早容器被認為不适合傳統的已有應用,但是現在狀況已大為改觀。容器已經開啟了對Windows生态的支援,新釋出的1.14版本中Kubernetes 的Pod,Service,應用編排,CNI 網絡等絕大多數核心能力都已經在 Windows 節點上得到了支援。當今Windows系統依然占有60%的份額,比如企業的ERP軟體、基于ASP的應用、大量的Windows的資料庫等,這些傳統的基于虛拟化的應用,都可以在代碼不用重寫的情況下實作容器化。
基于容器技術建構的新架構,會催生新的應用業務價值。雲原生AI是非常重要的應用場景,快速搭建AI環境,高效利用底層資源,無縫配合深度學習的全生命周期。對于AI工程,雲原生系統可以在四個次元上為提效:
- 優化異構資源排程
- 彈性、高效、細粒度(支援GPU共享)
- 簡化異構資源管理複雜性,提升可觀測性和使用效率
- 可移植、可組裝、可重制的AI流程
以深度學習分布式訓練為例,通過阿裡雲容器服務可以獲得三重加強。資源優化:統一排程CPU/GPU等異構資源,使用VPC/RDMA網絡加速;性能提升:GPU 64卡P100,加速比提升90%,相比原生Tensorflow有45%提升;算法優化:MPI代替gRPC通信、ring-allreduce環形通信、計算和通信重疊、梯度融合等。
還有其他高性能計算的場景,以基因資料處理為例,阿裡雲某使用者在5小時内完成WGS 100GB資料處理,支援5000+步驟的複雜流程, 90秒實作500節點擴容充分發揮容器極緻彈性。
3 新的實體邊界:雲-邊-端,容器不止運作在IDC伺服器中
容器最被熟知的基礎環境是資料中心,在業務流量高峰與低谷之時,憑借容器極緻彈性可以實作應用與資源伸縮,有效地保證高使用率與高成本效益。
随着5G和物聯網時代的到來,傳統雲計算中心集中存儲、計算的模式已經無法滿足終端裝置對于時效、容量、算力的需求。将雲計算的能力下沉到邊緣側、裝置側,并通過中心進行統一傳遞、運維、管控,将是雲計算的重要發展趨勢。以Kubernetes為基礎的雲原生技術,在任何基礎設施上提供與雲一緻的功能和體驗,實作雲-邊-端一體化的應用分發, 支援不同系統架構和網絡狀況下,應用的分發和生命周期管理,并且針對邊緣及裝置進行如通路協定、同步機制、安全機制的種種優化。
如前所述,應用容器化實作了标準化的可移植性,促成了靈活彈性的雲原生應用架構。不僅大大簡化了多雲/混合雲的部署,而且優化成本,同時提供更多的選擇,比如滿足安全合規的要求、提升業務靈活性、提升地域覆寫性等等。
容器可以适用于多種基礎環境,比如資料中心、邊緣雲、和多雲/混合雲,使得開發者關注回歸到應用本身。
寫在最後
雲原生時代,是開發者最好的時代。
雲原生不但可以很好的支援網際網路應用,也在深刻影響着新的計算架構、新的智能資料應用。以容器、服務網格、微服務、Serverless為代表的雲原生技術,帶來一種全新的方式來建構應用。此外,雲原生也在拓展雲計算的邊界,一方面是多雲、混合雲推動無邊界雲計算,一方面雲邊端的協同。
雲原生時代,也是雲廠商更好發揮作用、為客戶提供更多價值的時代。
雲廠商需要幫助使用者最大化利用“雲”的能力,最大化發揮“雲”的價值,成就企業創造商業價值。