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為代表的雲原生技術,帶來一種全新的方式來構建應用。此外,雲原生也在擴充雲端計算的邊界,一方面是多雲、混合雲推動無邊界雲端計算,一方面雲邊端的協同。
雲原生時代,也是雲廠商更好發揮作用、為客戶提供更多價值的時代。
雲廠商需要幫助使用者最大化利用“雲”的能力,最大化發揮“雲”的價值,成就企業創造商業價值。
本文為雲棲社群原創內容,未經允許不得轉載。