6月26日,云原生領域頂級大會KubeCon + CloudNativeCon落下帷幕,作為云原生技術與應用的領先企業,阿里云全面展示了云原生產品家族、開源全景圖,讓企業、開發者輕松享受云的技術紅利。
如今,阿里云已經成為國內云原生領域開源貢獻最全面的科技公司,涵蓋編排調度、作業管理、無服務器框架等:
●主導維護etcd、containerd、dragonfly等多個CNCF明星項目的發展,已有超過10個項目進入CNCFlandscape;
●項目建設層面:積極建設Kubernetes項目,貢獻量位居全球前10;
●開源生態支持:加入CNCF、OCI、CDF等基金會,成為多個基金會的頂級會員,共建開源生態。
大會期間,阿里云資深技術專家、中國首個CNCF TOC李響分享了阿里巴巴探索云原生技術的經驗,以及應對云原生應用落地挑戰的方法。
大規模實踐是云原生落地的必經之路
云原生是一種全新的理念,也是一套涉及整個IT技術棧協同的方法論,單純的產品研發遠遠不夠,只有經歷了大規模的場景實踐才實現到全方位的效率提升,并實現落地。
十年前,阿里巴巴先于其它公司遇到了大規模流量的挑戰,于是決定升級IT架構,并開始通過容器實踐云原生技術體系解決流量壓力。在整個業界都還沒有任何范例可供參考的大背境下,逐漸摸索出了一套比肩全球一線技術公司并且服務于整個集團的容器化基礎設施架構,開啟了中國公司將云原生技術體系在電商、金融、制造等領域中大規模應用的先河。
這個探索歷程雖然孤獨,但卻被始終如一的堅持至今。正是在這個孤注一擲的技術探索與奮進的過程中,完整的經歷了云原生技術浪潮里的所有關鍵節點,不僅成為了這次技術革命的重要見證者,也逐漸成為中國云原生技術體系當之無愧的推動者與引領者之一。
毫無疑問,阿里巴巴的互聯網規模以及復雜業務場景是推動云原生的天然優勢,在雙11成本壓力的推動下,資源成本與效率優化成了云原生的起點。也就是從容器入手,研究低成本虛擬化與調度技術:
●提供靈活、標準的部署單元;
●將靜態資源分配更換為動態按需調度,進一步提升部署效率,解決資源碎片化問題,提高部署密度;
●通過存儲網絡虛擬化和存儲計算分離等技術,增強任務的可遷移性,進一步提高了資源的可靠性,降低了資源成本。
在資源成本的推動下,阿里完成了全面容器化,資源分配也被高效調度平臺接管。而阿里的云原生并未止步于此,提高研發效率與加快迭代周期是推動阿里業務增強的秘密武器。
為了降低應用部署難度,提高部署自動化程度,阿里開始采用 Kubernetes 作為容器編排平臺,并且持續推動 Kubernetes 的性能與可擴展性,引入了諸如 Helm 的應用標準化管理,與此同時,也開始探索服務網格,致力于進一步提高服務治理的普適性與標準性,降低開發者使用門檻。
今年3月,阿里云智能總裁張建鋒宣布阿里巴巴集團未來兩年內實現全站上云。經過云原生的探索與改造,如今阿里基礎架構體系是現代化和標準化的。
●利用容器技術,應用與宿主機運行時完成了解耦;
●利用 Kubernetes 對 Pod 與 Volume 等的抽象,完成了對多種資源實現的統一化;
●通過智能調度與 PaaS 平臺,讓自動遷移應用,修復不穩定因素成為了可能,阿里通過云原生技術大大降低了上云的難度。
在提高資源和人員效率的過程中,整個基礎設施也變得更加開放,連通開源生態,在交流互動中不斷吸收和貢獻好的理念、技術、思想。如今,阿里云不僅支撐著中國最大的云原生應用雙11,而且擁有國內最大的公共云集群和鏡像倉庫。作為唯一入選 Gartner 的公有云容器服務競爭格局的廠商,阿里云也積累了最為豐富和寶貴的客戶實踐。
持續優化,提升企業和開發者效率
彈性和規模性是支撐阿里巴巴各種類型的復雜場景以及流量高峰的關鍵因素。阿里巴巴持續優化性能,可以分為四個維度:工作負載追蹤、性能分析、定制化調度、大規模鏡像分發。首先對工作負載調度有完整的追蹤、重放機制,其次將所有性能問題的進行細致分析,逐一攻克技術瓶頸。
經過不斷打磨,阿里巴巴在 Kubernetes 規模與性能上取得了顯著的成果:將存儲object 的數量提升25倍,支持的節點數從5000提升到上萬,在端到端調度延遲從5s變為100ms等。
其中有不少工作和社區共同開展,而這些研發成果都已經貢獻給社區,其他企業及開發者也可以享受阿里巴巴規模帶來的技術紅利。
Kubernetes 本身的可定制性很強,阿里巴巴針對自身業務場景沉淀了定制化的調度能力和鏡像分發系統,例如開源Dragonfly 項目脫胎于雙11,具備極強的鏡像分發能力。
整體來說,阿里巴巴落地 Kubernetes 可以分為三個階段:
●首先通過 Kubernetes 提供資源供給,但是不過多干擾運維流程,這個系統容器是富容器,將鏡像標準化與輕量級虛擬化能力帶給了上面的 PaaS 平臺。
●第二步,通過 Kubernetes controller 的形式改造PaaS 平臺的運維流程,給 PaaS 帶來更強的面向終態的自動化能力。
●最后把運行環境等傳統重模式改成原生容器與 pod 的輕量模式,同時將 PaaS 能力完全移交給Kubernetes controller,從而形成一個完全云原生的架構體系。
企業如何應對云原生落地的挑戰?
阿里巴巴云原生的探索,起步于自研容器和調度系統,到如今擁抱開源的標準化技術。目前,Kubernetes已經成為云原生生態的中流砥柱,它不僅向下屏蔽了底層細節,而且向上支撐各種周邊業務生態;另一方面,社區中有著越來越多圍繞 Kubernetes 構建的開源項目,比如Service Mesh、Kubeflow。
但云原生技術架構演進中也存在不少挑戰,最為艱難的挑戰其實來自于 Kubernetes 本身的管理。因為 Kubernetes 相對年輕,其自身的運維管理系統生態尚不完善。對于阿里而言,數以萬計的集群管理至關重要,我們探索并總結了四個方法:
●Kubernetes on Kubernetes,利用 K8s 來管理 K8s 自身;
●節點發布回滾策略,按規則要求灰度發布;
●將環境進行鏡像切分,分為模擬環境和生產環境;
●并且在監控側下足功夫,將Kubernetes 變得更白盒化和透明化,及早發現問題、預防問題、解決問題。
此次 KubeCon 大會上,阿里云重磅公布了兩個項目:Cloud Native App Hub —— 面向所有開發者的 Kubernetes 應用管理中心,OpenKruise —— 源自全球頂級互聯網場景的 Kubernetes 自動化開源項目集。
云原生應用中心(Cloud Native App Hub)方便用戶獲得應用資源,并大大簡化了 Kubernetes 部署安裝一個應用的步驟;OpenKruise/Kruise 項目致力于成為“云原生應用自動化引擎”,解決大規模應用場景下的諸多運維痛點。