開發與維運

容器技術在企業落地的最佳實踐

1.png

作者 | 易立  阿里雲資深技術專家

導讀:近年來,容器技術及相關應用得到了國內外越來越多的關注度。在國外,容器技術已經形成了較成熟的生態圈;而在國內,金融企業、互聯網企業、IT 企業積極投入容器技術的應用。本文將重點介紹容器技術在企業落地最佳實踐,包括容器技術的背景,阿里雲容器服務概述,容器技術在企業落地的正確姿勢,以及容器服務的演進方向。

前言

容器的英語是 Container,它的意思是集裝箱,經濟全球化的基礎就是現代化的運輸體系,其核心就是集裝箱。

集裝箱的出現,實現了物流運輸的標準化、自動化,大大降低了運輸成本,使得整合全球的供應鏈變成可能,這就是著名的《經濟學人》雜誌提到的 “沒有集裝箱,就沒有全球化”。容器可以理解為雲時代的 “應用集裝箱” ,重塑了整個軟件供應鏈。

什麼是容器?

容器是一種輕量化的虛擬機,輕量化的應用信息化技術。打個比方,傳統的物理機就是一個獨棟大別墅,一家人獨佔,住的很舒適,不會被別人打擾。缺點就是貴,並且交付時間長,利用率也不高。虛擬機可以理解為聯排住宅,每棟房屋是共享水、電、地基等基礎設施,整體的容積率提升了,公攤下降,這樣成本也下降,交易速度也加快了。但是每戶都有獨立的一個空間,具有很好的隔離性。

虛擬化正是通過這樣的技術實現了安全隔離,有效提升了資源利用率,但是交付之後還需要對它進行一個應用的配置和安裝。容器就好比是集裝箱板房,集裝箱房採用模塊化設計,自帶裝修,可以快速搭建,隨時移動。

2022 年卡塔爾世界盃的一個體育場的設計,將利用集裝箱方式搭建一個容納 4 萬人的體育場,每個集裝箱模塊都是在中國生產,內置看臺、衛生間、酒吧這些不同的模塊,然後在卡塔爾進行吊裝。這種方式不但工期可以縮短三年,而且賽事之後就可以拆卸搬遷到其他地方,成為可以重複利用的綠色球場。

容器正是這種輕量化的應用虛擬機技術,容器之間共享操作系統內核,支持秒級啟動。同時容器的鏡像是一個標準化自包含的應用打包格式,讓應用可以一致地運行在不同的環境。

1. 容器的三大價值

容器技術提升了企業 IT 架構的敏捷性,加速應用創新,幫助企業更加靈活地應對商業發展中的不確定性。比如在疫情期間,在線教育、音視頻、公共健康等行業出現了爆發性的增長。一些基於雲計算和容器技術的公司,就很好地把握住了業務快速增長的機遇。

容器技術最受關注的三個核心價值,第一個就是敏捷性,正所謂“天下武功唯快不破”。在數字化轉型的浪潮下,每個企業都在面臨新興業務模式的衝擊。一個成功的企業不是看它現在的規模有多大,過去的戰略有多成功,而是看它是否有能力持續創新、持續擁抱變化。據業界統計,使用容器技術可以實現 3~10 倍的交付效率提升,大大加速新產品迭代的效率,並降低試錯成本。

容器技術的第二個核心價值就是彈性。在互聯網時代,企業的 IT 系統需要面對電商大促或者各類突發流量的場景。以在線教育為例,面對疫情之下流量的指數級增長,一些在線教育企業,如希沃、洋蔥教育等,利用阿里雲的容器服務,極大地緩解了擴容壓力,支持了數十萬教師的在線課堂。通過容器技術可以充分發揮雲的彈性,優化計算成本。一般情況下,通過容器技術可以降低 50% 的計算成本。

容器技術的第三個核心價值就是可移植性。容器技術的出現,推動了雲計算的標準化進程。容器已經成為了應用分發和交付的標準,可以應用於底層運行環境的結構。

2. Kubernetes 逐漸成為雲原生時代的基礎設施

Kubernetes 成為資源調度和編排的標準,屏蔽了底層架構的差異性,幫助應用平滑地運用在不同的基礎設施上。現在大家已經把 Kubernetes 稱為雲應用的一個操作系統,越來越多的應用運行在其上。從一些無狀態的外部應用,慢慢的發展到企業核心的交易類應用、數據智能應用等,也運行在 Kubernetes 平臺之上。

2.png

Kubernetes 是雲應用的一個操作系統

阿里雲容器服務概述

1. 全球領先的阿里雲容器服務

國際知名調研機構 Gartner 發佈 2020 年容器公有云競爭格局報告,阿里雲再度成為國內唯一入選廠商。Gartner 報告顯示,阿里雲容器服務在中國市場表現強勁,產品形態豐富,在 Serverless、容器、服務網格、安全沙箱容器、混合雲和邊緣計算等領域,具備良好的技術發展策略。阿里雲覆蓋九項產品能力,成為豐富度最高的廠商之一。

阿里雲連續兩年入選 Gartner 容器報告,一方面是因為阿里雲擁有全球第三的市場份額,另一方面是因為其已經擁有近十年的容器技術儲備。

3.png

連續兩年,國內唯一入選 Gartner 公共雲容器服務競爭格局 & 2019 年 Q3,Forrester 企業容器平臺評測:國內第一

2. 阿里雲容器服務產品大圖

阿里雲容器服務產品家族可以在公共雲、邊緣計算和專有云上提供企業級的容器平臺。阿里雲容器產品的核心是 Kubernetes Service(ACK) 和 Serverless Kubernetes(ASK)。他們構建在阿里雲的一系列基礎設施能力之上,如計算、存儲、網絡、安全等。阿里雲的容器服務通過了 CNCF Kubernetes 的一致性兼容認證,並且提供了一系列企業關注的核心能力,比如安全治理、可觀測性、多雲/混合雲等。

鏡像服務 ACR 是企業級雲原生應用製品管理的核心,託管服務網格 ASM 是今年 2 月份新發布的一個產品,它給全託管的微服務應用提供一個流量管理平臺,可以支持多個關聯體系集群的統一流量管理,為容器和虛擬應用提供一致的安全和可觀測性的能力。

4.png
阿里雲容器服務產品大圖 

3. 容器釋放神龍架構強大算力

在 6 月 9 日 2020 阿里雲線上峰會上,阿里雲智能基礎產品事業部高級研究員蔣江偉重磅發佈了雲原生裸金屬方案。新一代容器服務 ACK,可以將最新神龍彈性裸金屬實例的強大性能發揮得淋漓盡致,具備極致性能、高效調度、全面安全的特點。

  • 新一代神龍架構具備業界第一的 I/O 轉發能力,提供最高 100Gbit/s 網絡帶寬;阿里雲高速 Terway 容器網絡通過網卡直通和數據平面加速,延遲下降 30%;
  • 第 7 代實例最大支持 192 個 vCPU。ACK 智能 CPU 調度可以輕鬆釋放強大算力,無需應用調整可以實現 QPS 提升 20%~30%;結合 ENI 網卡密度提升,可以縮減 50% 的計算成本。

彈性裸金屬實例支持阿里雲安全容器,提升端到端安全隔離能力,與開源方案相比,性能提升 30%。彈性裸金屬也支持阿里雲首發機密計算容器,基於軟硬一體技術,有效保護數據隱私。

在阿里巴巴內部,神龍架構已大規模應用於淘寶、天貓、菜鳥等業務,解決了高峰值下的業務性能和穩定性問題。在外部,尤其是在這次疫情影響下,很多企業面臨快速擴容的壓力,如在線教育行業,通過阿里雲容器 + 神龍方案,企業可以從容應對流量突增的難題。

5.png

容器技術的最佳企業實踐

1. 靈活豐富的彈性能力

彈性是雲的核心能力之一。像 “雙11” 這樣典型的脈衝應用場景,或者像疫情爆發之後在線教育和協同辦公急速增長的場景,只能依靠雲提供的強大彈性算力才能支撐。Kubernetes 可以將雲的彈性能力發揮到極致。阿里雲 ACK 在資源層和應用層都提供了豐富的彈性策略,基於阿里雲整體架構可以實現千節點分鐘級彈性伸縮。

對很多行業來說,其應用負載的資源方向具有週期性。比如證券行業每天的業務高峰時段就是股市開盤的時間,然後峰、谷的資源差異可能高達 20 倍。為了解決這類需求,阿里雲提供了一個定時伸縮組件。用戶可以定義定時的擴充策略,提前準備好資源。在波谷到來時把資源自動回收,這樣可以很好地平衡系統的穩定性和資源成本。後續阿里雲也會繼續增強基於機器學習的一些彈性策略,根據歷史資源畫像更好地實現資源的預測,提升彈性能力。

6.png
靈活豐富的彈性能力

2. Serverless Kubernetes

眾所周知,K8s 提供了非常強大的功能和非常好的靈活性,但是運維一個生產集群是極具挑戰的事情。即使利用託管服務,用戶依然要保有 worker 節點資源層,還需要對 worker 節點進行維護,如操作系統的升級、打安全補丁等,並且還要根據實際情況對資源層進行容量規劃或者制定彈性策略。

針對 K8s 這樣複雜的挑戰,阿里雲推出了 Serverless Kubernetes(ASK)容器服務。ASK 在兼容 K8s 基礎之上,對 K8s 做了減法,將複雜性下沉到雲的基礎設施,極大地降低了運維的管理負擔,讓用戶更加關注於自身的業務,提升了用戶體驗。對用戶而言,ASK 沒有節點的概念,用戶也就無需預留任何資源,免維護,零管理。所有的資源都是按需創建,運行在彈性容器實例之上。按照應用實際消耗資源付費,無需做任何的容量規劃,也不會產生資源浪費。

7.png
經典 Kubernetes 集群 VS Serverless Kubernetes

3. 多維度可觀測性

在一個大規模分佈式系統中的基礎設施,可能會出現各種各樣的穩定性或者性能問題。可觀測性可以幫助我們瞭解分佈式系統的狀態,便於做出決策,併為彈性伸縮和自動化運維打好基礎。一般而言,可觀測性包括以下三個層面:

  • 第一層面是 Logging:阿里雲的日誌服務提供了對事件流的一個完整的日誌方案,該方案不僅可以對應用的日誌進行收集處理,並且提供了像操作審計這樣的處理和展現。
  • 第二層面是性能監控指標 Metrics:對於基礎設施服務,如 ECS 虛擬機、存儲網絡雲監控,它們提供了非常全面的監控能力,同時也提供了一個開放高可用擴展的監控基礎設施,與自建相比,可以極大地降低運維複雜性,並且減少成本。
  • 第三層面是 Tracing:阿里雲的全面追蹤服務可以為開發者提供完整的分佈式應用調用鏈路的統計、拓撲分析等工具,幫助開發者快速發現和診斷分佈式應用中的性能瓶頸,提升微服務應用中的性能和穩定性。

8.png
多維度可觀測性

4. 安全的雲原生軟件供應鏈

安全是企業在應用容器技術時最大的顧慮之一。為了系統化地提升容器平臺的安全性,就需要全方位進行安全防護。阿里雲的做法是:首先,把 DevOps 升級成為 DevSecOps,將安全概念融入到整個軟件生命週期之中,將安全防護能力轉移到開發和交付階段。ACR 鏡像服務企業版提供了完整的安全軟件交付鏈,當用戶上傳鏡像之後,可以自動化地進行漏洞的掃描,發現其中是否包含已知的漏洞。

然後,通過 KMS 密鑰服務自動化對鏡像進行驗籤。在 ACK 中可以配置安全策略,比如只允許經過安全掃描且符合上線要求的鏡像才能在生產環境發佈。整個軟件交易交付鏈路可觀測、可追蹤,通過區策略進行配置管理。在保證安全性的前提下,可以極大地提升交付效率。

此外,在運行時也會面對眾多的安全風險,比如一些新發現的漏洞,或者一些新的病毒進行攻擊,阿里雲的雲安全中心也提供了對運行時的安全監控防護能力。

9.png
從 DevOps 到 DevSecOps - 安全的雲原生軟件供應鏈

5. 雲安全中心實時防護

雲安全中心可以對容器應用的進程和網絡情況進行監控,對其中的異常行為或者發現的安全漏洞進行監測和通知,通過郵件、短信等方式通知客戶進行處理,也提供了自動化的隔離和修復能力。以一個著名的挖礦蠕蟲病毒為例,它會利用用戶的一些配置錯誤對整個集群發動攻擊。在雲安全中心的幫助下,可以輕鬆發現它的蹤跡,並且一鍵清除。

6. 混合雲成為企業上雲新常態

企業上雲已經是大勢所趨,但是對於企業來講,有些業務由於數據主權和安全隱私的考慮,無法直接上雲,只能採用混合雲架構。另外,不同的雲環境,其基礎設施能力以及安全架構都存在差異,會導致整個企業的IT架構和運維體系出現割裂,大大增加了混合雲實施的複雜性,提升運維成本。

在雲原生時代,以 K8s 為代表的技術屏蔽了基礎設施差異性,可以實現以應用為中心的混合雲架構 2.0。在混合雲環境中實現對計算資源的統一調度和統一應用生命週期管理。有三個典型的場景:

  • 一是在混合雲產品中,希望利用公共雲的彈性算力來應對突發的流量;
  • 二是利用公共雲去構建低成本的雲災備中心。當線下的數據中心發生故障時,可以快速地將業務流量切換到雲上;
  • 三是構建異地多活的應用架構,保證業務的連續性。基於阿里雲的混合雲網絡、混合雲存儲、數據庫複製這些能力,幫助企業構建全新的混合雲的 IT 架構。

10.png
雲原生混合雲解決方案

7. 雲原生混合雲管理

阿里雲在混合雲的解決方案中有三個重要特點:

  • 一是統一進行管理,在混合雲方案中,採用統一的安全治理和應用管理,以及可觀測性;
  • 二是全地域的網絡聯通,全球接入,高速低延時;
  • 三是智能流量,阿里雲實現了統一的服務流量管理,可以優化服務的訪問,提升業務連續性。

展望未來

阿里雲在容器服務的演進方向可以總結為以下三條:

第一個就是新基石。雲原生技術是釋放雲價值的最短路徑,利用容器服務,可以幫助企業更好地支撐全球化的應用交付。基於像ACR(Alibaba Cloud Container Registry)這類產品,可以實現鏡像的一次提交、全球發佈。整個發佈效率可以提升7倍。另外,阿里雲支持混合雲和多雲的方案,利用容器的可移植性,讓工作負載輕鬆地在不同的計算環境中動態遷移。

第二個是新算力。基於雲原生的軟硬一體化技術創新,加速企業的智能化升級。此外,阿里雲也在強調算力的安全和可信,因此推出了安全沙箱容器,在強隔離的同時實現了原生進程90%的性能。雲原生技術通過開放的生態和全球合作伙伴,幫助更多的企業分享雲時代的技術紅利。

第三個是新生態。也就是不斷豐富的容器雲應用市場,因為它是連接企業與雲原生技術創新的橋樑。目前阿里雲應用市場已經入駐了多家合作伙伴,覆蓋了從容器安全監控到業務應用的不同產品,便於用戶獲得完整的容器化解決方案。此外,阿里雲也跟眾多的技術公司、全球技術合作夥伴展開合作,幫助企業更好地運用雲原生技術。

首屆 KubeCon 2020 線上峰會

7 月 30 日 - 8 月 1 日,阿里巴巴雲原生專場,點擊鏈接預約有禮:https://developer.aliyun.com/topic/alibabacloudnative/kubecon2020

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公眾號。”

Leave a Reply

Your email address will not be published. Required fields are marked *