作者 | 丁宇(叔同) 阿裡雲智能容器平台負責人 、劉丹
2019 年阿裡巴巴 雙11 核心系統 100% 以雲原生的方式上雲,完美支撐了 54.4w 峰值流量以及 2684 億的成交量。随着阿裡巴巴經濟體雲原生技術的全面更新,容器性能、穩定性及線上率也得到了全面提升。本文作者将從雲計算時代容器的發展路徑為出發點,剖析阿裡雲的容器技術演進曆程,借此探析整個行業的發展趨勢。
以容器為代表的雲原生技術,成為雲時代釋放雲價值的最短路徑
過去我們常以虛拟化作為雲平台和與客戶互動的界面,為企業帶來靈活性的同時也帶來一定的管理複雜度;容器的出現,在虛拟化的基礎上向上封裝了一層,逐漸成為雲平台和與客戶互動的新界面之一,應用的建構、分發和傳遞得以在這個層面上實作标準化,大幅降低了企業 IT 實施和運維成本,提升了業務創新的效率。
從技術發展的次元看,開源讓雲計算變得越來越标準化,容器已經成為應用分發和傳遞的标準,可以将應用與底層運作環境解耦;Kubernetes 成為資源排程和編排的标準,屏蔽了底層架構的差異性,幫助應用平滑運作在不同的基礎設施上;在此基礎上建立的上層應用抽象如微服務和服務網格,逐漸形成應用架構現代化演進的标準,開發者隻需要關注自身的業務邏輯,無需關注底層實作,雲原生正在通過方法論、工具集和理念重塑整個軟體技術棧和生命周期。
“以容器為代表的雲原生技術,用開放、标準的技術體系,幫助企業和開發者在雲上建構和運作可彈性擴充、容錯性好、易于管理、便于觀察的系統,已經成為釋放雲價值的最短路徑。”在提及容器演進曆程中叔同強調道。最早創造和應用容器技術的是網際網路公司,今天有了開放标準的雲原生生态,使得容器技術得到迅速普及,越來越多的企業和開發者使用容器建構應用,共同享受這一技術紅利。
目前企業級使用者對于容器技術有何新的需求呢?對此,叔同表示:雲原生應用落地過程中,安全性是企業使用者最為關注的需求之一。傳統的 RunC 容器與主控端 Linux 共享核心,通過 CGroup 和 namespace 提供有限的隔離性,随着越來越多的企業客戶開始關注容器安全,近兩年新型高隔離、安全的運作時開始出現,包括 MircoVM (Kata Container、FireCracker) 方向和 gVisor 安全沙箱方向。
阿裡雲和螞蟻金服團隊合作,引入安全沙箱容器技術,于 2019 年 9 月釋出了基于輕量虛拟化技術的 RunV 安全沙箱,相比于 RunC 容器,每個 RunV 容器具有獨立核心,即使容器所屬核心被攻破,也不會影響其他容器。阿裡雲容器服務提供了端到端的雲原生安全架構,包括基礎設施安全、軟體供應鍊安全和運作時安全,為企業提供全方位、立體化、多層次的安全防護。
第二個需求是混合雲架構,上雲已是大勢所趨,很多客戶由于業務原因會考慮混合雲的方式,不同雲環境的基礎設施和安全架構差異會造成企業 IT 和運維體系的割裂,加大管理複雜性。
在雲原生時代,以容器、Kubernetes 為代表的技術屏蔽了基礎設施差異,作為底座推動了以應用為中心的混合雲 2.0 架構到來,滿足了使用者訴求。同時企業在營運效率、研發效率、運作成本以及系統容錯性、可維護性等方面,也提出了更高的要求。阿裡雲在整個容器産品的研發過程中,緻力于解決企業痛點,盡管各個企業對于上雲的訴求有諸多不同,但容器和雲原生作為一種普适技術,可以滿足不同企業不同層次的需求。
談及阿裡雲對于容器技術與産品的創新,叔同強調,“阿裡雲希望在雲原生領域繼續走社群路線,和開源技術完全相容,利用阿裡巴巴經濟體的規模複雜度和阿裡雲客戶的場景豐富度,不斷創新,形成雲原生的技術領先并回饋社群共建标準。2019 年年初我們将雲原生大規模生産落地最佳實踐沉澱下來,以開源項目 OpenKruise 的方式向社群開放,一方面幫助企業客戶在雲原生的探索過程中,少走彎路減少技術碎片化;一方面推動上遊社群逐漸完善和豐富應用自動化管理能力。
在 2019 年 10 月,阿裡雲聯合微軟一起釋出開放應用模型 Open Application Model(OAM),OAM 是專注于描述應用生命周期的标準規範,可以幫助應用開發者、應用運維人員和基礎架構運維團隊更好地進行協同。在這個模型裡開發人員負責定義應用組成、依賴與架構;應用運維人員負責定義應用運作時配置與運維需求,比如釋出政策和監控名額,而基礎架構運維團隊可以針對應用部署環境的不同,配置定制化參數,通過這種關注點分離的設計,可以将應用定義、運維能力與基礎設施實作解耦,讓應用傳遞變得更加高效、可靠和自動化,解決行業痛點。
Serverless 通過更高層次的抽象,讓開發者免去資源管理、日常運維等工作,做到簡化研發、極緻彈性、按用付費。阿裡雲打造了函數計算産品 FunctionCompute:
- 提供了事件驅動的程式設計方式;
- 提供了面向應用的 Serverless 應用托管平台 SAE,使用者隻需提供應用實作,而平台負責彈性、自動化運維;
- 提供了面向容器的 Serverless 産品 ECI 和 Serverless Kubernetes,另一方面也在推動一些傳統技術的 Serverless 化,例如資料庫和消息中間件。
在技術創新的驅動下,阿裡雲希望成為雲原生最佳的産品實作,繼續發揮國内最大規模的雲原生應用實踐、國内最豐富的雲原生産品家族、國内最大的雲原生客戶群體、國内最全面的雲原生開源貢獻的優勢,服務更廣泛的企業客戶和開發者。”
十一年 雙11 的雲化架構演進與更新,造就容器技術最好的創新土壤
“阿裡雲與其他雲廠商最大的不同,就是阿裡巴巴的核心業務運作在雲上,形成最好的創新土壤,也就是說我們最先進的技術,首先會在阿裡巴巴自己的業務體系中進行嘗試,得到了大規模的運用,證明其技術的普适性與價值後再開放給客戶。”
在談及阿裡雲容器化進展時,叔同強調:任何技術都會在阿裡巴巴自己的業務體系中得到嘗試與應用, 2011 年阿裡雲開始邁進容器大門,2013 年 Docker 問世,阿裡雲容器迅速融合其先進理念,并在 2015 年推進集團業務全面的容器化演進,而這一系列的發展與演進其實都離不開 雙11 大促的需求,例如全面容器化幫助 雙11 大促實作快速彈性擴容。
在 雙11 活動的曆練中,數以百萬的容器支撐着 雙11 活動順利進行。由于業務的超大規模使得其複雜程度非常高,這也為容器技術帶來了更大的挑戰。例如在容器鏡像分發過程中,一次釋出分發幾萬個鏡像,這樣巨大的流量是一個不小的挑戰。為實作效率的極緻要求,阿裡雲利用 P2P 技術,實作大規模大批量的快速分發,實作 10 秒内完成跨機房鏡像下載下傳容器啟動。
容器技術對于 雙11 的顯著影響還包括在具體的混部技術實施中,叔同表示通過混部技術,阿裡巴巴集團範圍内能夠節省 30% 左右的 IT 成本支出,能夠在 雙11 這個特殊時間段裡,将每萬筆交易成本下降超過 75%。
容器、微服務、人工智能未來趨勢:協作、融合
容器技術已經獲得了業界的廣泛認可,在未來的發展前景,不僅取決于其在技術領域的卓越表現,同時也需要與更多的技術相融合,進而成為與時代共同進步的成功産品技術。
早期 Kubernetes 上主要運作無狀态的 Web 應用,比如基于 Apache Dubbo/Spring Cloud 的微服務應用,現在越來越多的企業核心業務、資料智能業務和創新業務也運作在 Kubernetes 之上。以阿裡雲自身的雲産品舉例,包括企業級分布式應用服務 EDAS 、實時計算平台 Flink 、彈性 AI 算法服務 EAS 、區塊鍊平台 BaaS 都部署在阿裡雲 Kubernetes 服務 ACK 之上。
從應用架構演進來看,容器的發展促進了微服務的發展。微服務在早期落地遇到的大問題是架構拆分導緻的運維複雜度和環境不一緻,正是通過容器對應用和其運作環境的打包和隔離,很好的解決微服務體系的痛點,讓微服務得以快速發展。微服務架構的引入解決了一些問題的同時,入侵了研發架構,架構疊代和研發疊代被耦合,并且在多語言環境的支援不夠友好,在管理上也更加複雜。是以社群開始嘗試 Service Mesh,逐漸把微服務能力從架構能力下沉為平台能力,可以看到容器與微服務在互相促進。
“雲原生與 AI 是絕佳搭檔,兩者是互相賦能的。”在提及 AI 與容器的融合時叔同強調。首先 AI 是新興領域,架構上沒有那麼多曆史包袱,另外 AI 計算本身對彈性、資源效率和部署效率有所要求,容器技術可以解決上述問題。GPU、FPGA、專有的 ASIC 晶片等新架構,帶來巨大算力提升的同時也帶來管理維護的難度,利用 Kubernetes 提供對異構資源的統一管理和高效排程,提升彈性支援細粒度共享,可以提升資源使用率 3 到 5 倍。
AI 對于容器雲原生技術同樣幫助巨大,AI 往往代表着業務場景,這對于雲原生技術如何更為普适通用提供了豐富的驗證空間,進而提升了雲原生技術的成熟度。
容器技術出現已經超過 6 年,Kubernetes 的快速發展已不是新聞,但這并不意味着容器技術的生态系統已經發展平緩。相反的是,容器及其周邊的技術體系還在保持高速發展。
談及未來關注的新技術、新方向,叔同坦承要讓容器走到所有的環境中,不僅是傳統 IDC,更要走到公共雲、專有雲、邊緣節點、物聯網、大資料、AI 等各種場景中,希望運用雲原生技術降低雲計算的使用門檻,真正實作雲上拐點。
點選下載下傳《不一樣的 雙11 技術:阿裡巴巴經濟體雲原生實踐》
本書亮點
- 雙11 超大規模 K8s 叢集實踐中,遇到的問題及解決方法詳述
- 雲原生化最佳組合:Kubernetes+容器+神龍,實作核心系統 100% 上雲的技術細節
- 雙 11 Service Mesh 超大規模落地解決方案
“阿裡巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。”