新聞中心
云原生之路:容器技術(shù)落地實(shí)踐
作者:阿里技術(shù) 2020-06-03 07:59:12
云計(jì)算
云原生 隨著容器技術(shù)的快速發(fā)展和廣泛應(yīng)用,毫無(wú)疑問(wèn)云原生技術(shù)是未來(lái)發(fā)展的必然趨勢(shì)。作為國(guó)內(nèi)最早布局容器技術(shù)的阿里云,無(wú)論在技術(shù)還是產(chǎn)品上,都取得了極大的成果。

創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為北戴河企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),北戴河網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
隨著容器技術(shù)的快速發(fā)展和廣泛應(yīng)用,毫無(wú)疑問(wèn)云原生技術(shù)是未來(lái)發(fā)展的必然趨勢(shì)。作為國(guó)內(nèi)最早布局容器技術(shù)的阿里云,無(wú)論在技術(shù)還是產(chǎn)品上,都取得了極大的成果。阿里云資深技術(shù)專(zhuān)家易立通過(guò)阿里云容器服務(wù),分享容器技術(shù)落地的最佳實(shí)踐,希望能夠幫助同學(xué)們更好地理解容器技術(shù)和云原生理念,合理地設(shè)計(jì)上云架構(gòu),充分發(fā)揮云的價(jià)值。
什么是容器?
容器的英語(yǔ)是 Container,它的意思是集裝箱。我們知道,經(jīng)濟(jì)全球化的基礎(chǔ)就是現(xiàn)代運(yùn)輸體系,而其核心正是集裝箱。集裝箱的出現(xiàn)實(shí)現(xiàn)了物流運(yùn)輸?shù)臉?biāo)準(zhǔn)化,自動(dòng)化,大大降低了運(yùn)輸?shù)某杀?,使得整合全球的供?yīng)鏈變?yōu)榭赡?。這就是著名經(jīng)濟(jì)學(xué)人談到的“沒(méi)有集裝箱,就沒(méi)有全球化”。
集裝箱背后的標(biāo)準(zhǔn)化、模塊化的理念也在推進(jìn)建筑業(yè)的供應(yīng)鏈變革。在最近,疫情爆發(fā)之后。10 天 10 夜,在武漢火神山,一個(gè)可以容納上千床位的專(zhuān)科醫(yī)院平地而起,在抗疫過(guò)程中發(fā)揮的重要作用。整個(gè)醫(yī)院都是采用集裝箱板房吊裝。模塊化的病房設(shè)計(jì),預(yù)置了空調(diào)、消殺、上下水等設(shè)施,極大加速了施工速度。
容器的通俗理解
??
??
軟件集裝箱 ”容器技術(shù)“ 也在重塑整個(gè)軟件供應(yīng)鏈。容器作為一種輕量化的操作系統(tǒng)虛擬化技術(shù),和和傳統(tǒng)的物理機(jī)、虛擬化技術(shù)和使用方式有什么不同呢?打個(gè)比喻:
傳統(tǒng)物理機(jī)就是獨(dú)棟大別墅
- 一家人獨(dú)占,住的舒適,不會(huì)被別人打擾。
- 應(yīng)用獨(dú)占物理機(jī),性能優(yōu)異。但是缺點(diǎn)就是貴、交付時(shí)間長(zhǎng),資源利用率也不高。
虛擬機(jī)就是聯(lián)排住宅
- 每戶有獨(dú)立的空間,有較好的隔離性。每棟房屋之間共享水電、地基等基礎(chǔ)設(shè)施。容積率提升了,成本下降了,交付速度也加快了。
- 通過(guò)虛擬化技術(shù),虛擬機(jī)中的應(yīng)用可以實(shí)現(xiàn)安全隔離,還可以有效提升資源利用率。但是,虛擬機(jī)交付后還需進(jìn)行應(yīng)用配置和安裝,交付速度還不夠快。
容器就是集裝箱板房
- 集裝箱房采用模塊化設(shè)計(jì),自帶裝修,可以快速搭建,隨時(shí)移動(dòng)。這是 2022 年卡塔爾世界杯一個(gè)體育場(chǎng)的設(shè)計(jì)。它將完全使用集裝箱方式搭建一個(gè)可以容納 4 萬(wàn)人的體育場(chǎng)。每個(gè)集裝箱模塊都在在中國(guó)生產(chǎn),已經(jīng)預(yù)置了看臺(tái),衛(wèi)生間,酒吧等功能,在中國(guó)生產(chǎn)完畢后在卡塔爾組裝。不但工期可以縮短 3 年,而且賽事結(jié)束后可以拆卸,搬遷到其他地方。
- 容器利用操作系統(tǒng)中 cgroup,namespace 等技術(shù)實(shí)現(xiàn)資源隔離。容器共享操作系統(tǒng)內(nèi)核,非常輕量,沒(méi)有資源損耗,支持秒級(jí)啟動(dòng),極大提升了系統(tǒng)的應(yīng)用部署密度和彈性。容器鏡像將應(yīng)用和其依賴的系統(tǒng)組件和配置打包在一個(gè)標(biāo)準(zhǔn)化的、自包含的格式中。通過(guò)容器鏡像方式進(jìn)行應(yīng)用分發(fā)和交付,可以讓?xiě)?yīng)用即開(kāi)即用,并一致地運(yùn)行在不同環(huán)境。
容器的價(jià)值
在過(guò)去幾年中,容器技術(shù)得到了越來(lái)越廣泛的應(yīng)用。其中最主要的 3 個(gè)核心價(jià)值是:
敏捷
天下武功唯快不破。在企業(yè)數(shù)字化轉(zhuǎn)型時(shí)代,每個(gè)企業(yè)都在面臨著新興業(yè)務(wù)模式的沖擊和眾多的不確定性。一個(gè)成功的企業(yè)不是看他現(xiàn)在規(guī)模有多大,過(guò)去的戰(zhàn)略有多成功,而是要看他是否有能力持續(xù)創(chuàng)新。容器技術(shù)提升了企業(yè)的 IT 架構(gòu)的敏捷性,從而提升了業(yè)務(wù)敏捷性,可以加速業(yè)務(wù)創(chuàng)新。比如疫情期間,教育、視頻、公共健康等行業(yè)的在線化出現(xiàn)了爆發(fā)性高速增長(zhǎng)。通過(guò)容器技術(shù)可以很好地把握業(yè)務(wù)快速增長(zhǎng)的機(jī)遇。在業(yè)界的統(tǒng)計(jì)中,使用容器技術(shù)可以實(shí)現(xiàn) 3~10 倍交付效率提升,這意味著企業(yè)可以進(jìn)行快速迭代,低成本試錯(cuò)。
彈性
在互聯(lián)網(wǎng)時(shí)代,企業(yè) IT 系統(tǒng)經(jīng)常需要面對(duì)電商大促、突發(fā)事件等可預(yù)期和非預(yù)期的流量增長(zhǎng)。通過(guò)容器技術(shù)可以充分發(fā)揮云計(jì)算的彈性,通過(guò)提升部署密度和彈性來(lái)降低計(jì)算成本。比如在線教育,面對(duì)疫情之下指數(shù)級(jí)增長(zhǎng)的流量,可以通過(guò)容器技術(shù)來(lái)緩解擴(kuò)容的壓力,支持?jǐn)?shù)十萬(wàn)教師在線教學(xué),百萬(wàn)學(xué)生在線學(xué)習(xí)。
可移植性
容器技術(shù)推進(jìn)了云計(jì)算的標(biāo)準(zhǔn)化進(jìn)程。容器已經(jīng)成為應(yīng)用分發(fā)和交付的標(biāo)準(zhǔn),可以將應(yīng)用與底層運(yùn)行環(huán)境解耦;Kubernetes 成為資源調(diào)度和編排的標(biāo)準(zhǔn),屏蔽了底層架構(gòu)的差異性,幫助應(yīng)用平滑運(yùn)行在不同的基礎(chǔ)設(shè)施上。CNCF 云原生計(jì)算基金會(huì)推出了Kubernetes一致性認(rèn)證,進(jìn)一步保障了不同 K8s 實(shí)現(xiàn)的兼容性。采用容器技術(shù)來(lái)構(gòu)建云時(shí)代的應(yīng)用基礎(chǔ)設(shè)施將變得越來(lái)越容易。
Kubernetes:云原生時(shí)代的基礎(chǔ)設(shè)施
??
??
現(xiàn)在 Kubernetes 已經(jīng)成為了云應(yīng)用操作系統(tǒng),越來(lái)越多應(yīng)用運(yùn)行在 Kubernetes 基礎(chǔ)之上:從無(wú)狀態(tài)的 Web 應(yīng)用,到交易類(lèi)應(yīng)用(如數(shù)據(jù)庫(kù)、消息中間件),再到數(shù)據(jù)化、智能化應(yīng)用。阿里經(jīng)濟(jì)體也基于容器技術(shù),實(shí)現(xiàn)了全面的云原生上云。
阿里云容器服務(wù)介紹
??
??
阿里云容器服務(wù)產(chǎn)品家族可以在公共云、邊緣計(jì)算和專(zhuān)有云環(huán)境提供企業(yè)容器平臺(tái)。阿里云容器產(chǎn)品的核心是 Kubernetes Service - ACK 和 Serverless K8s - ASK,它們構(gòu)建在阿里云的一系列基礎(chǔ)設(shè)施能力之上,包括計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)、安全等,并提供標(biāo)準(zhǔn)化接口、優(yōu)化的能力和簡(jiǎn)化的用戶體驗(yàn)。ACK 通過(guò) CNCF K8s 一致性兼容認(rèn)證,并提供了一系列企業(yè)關(guān)注的核心能力,比如安全治理,端到端可觀測(cè)性、多云混合云等。
鏡像服務(wù) ACR 是企業(yè)云原生應(yīng)用資產(chǎn)管理的核心,可以管理 Docker 鏡像,Helm Chart 等應(yīng)用資產(chǎn),并和 CI/CD 工具結(jié)合在一起提供完整的 DevSecOps 流程。
托管服務(wù)網(wǎng)格 ASM,提供全托管的微服務(wù)應(yīng)用流量管理平臺(tái),兼容 Istio,支持多個(gè) Kubernetes 集群中應(yīng)用的統(tǒng)一流量管理,為容器和虛擬機(jī)中應(yīng)用服務(wù)提供一致的通信、安全和可觀測(cè)能力。
托管 K8s 集群
??
??
我們以托管 K8s 為例介紹集群部署拓?fù)浣Y(jié)構(gòu)。
ACK 托管 K8s 集群基于 Kubernetes on Kubernetes 架構(gòu)設(shè)計(jì)。K8s 集群的 Master 組件,運(yùn)行在 ACK VPC 中的控制平面 K8s Cluster 之上。
ACK 采用了默認(rèn)高可用的架構(gòu)設(shè)計(jì):etcd 3 副本分別運(yùn)行在 3 個(gè)不同 AZ 之上。也根據(jù)可擴(kuò)展性最佳實(shí)踐,提供了兩組 etcd。一組保存配置信息,一組保存系統(tǒng)事件,這樣可以提升 etcd 的可用性和可擴(kuò)展性。用戶 K8s 集群的 API Server/Scheduler 等 master 組件,采用多副本方式部署,運(yùn)行在 2 個(gè)不同的 AZ 之上。master 組件可以根據(jù)工作負(fù)載進(jìn)行彈性擴(kuò)展,Worker 節(jié)點(diǎn)通過(guò) SLB 來(lái)訪問(wèn) API Server。這樣的設(shè)計(jì)保證了整個(gè) K8s 集群的可用性,即使一個(gè) AZ 的失效,也不會(huì)導(dǎo)致 K8s 集群自身失敗。
worker 節(jié)點(diǎn),運(yùn)行在 VPC 上。將節(jié)點(diǎn)運(yùn)行在不同的 AZ,配合應(yīng)用的 AZ anti-affinity反親和性可以保障應(yīng)用的高可用。
容器技術(shù)落地的最佳實(shí)踐
靈活豐富的彈性能力
彈性是云最核心的能力之一,像雙十一這樣的典型脈沖應(yīng)用場(chǎng)景,或者像疫情爆發(fā)之后的在線教育和辦公協(xié)同的極速增長(zhǎng),只能依靠云提供的強(qiáng)大彈性算力才能支撐。Kubernetes 可以將云的彈性能力發(fā)揮到極致。
ACK 在資源層和應(yīng)用層提供了豐富的彈性策略,在資源層目前主流的方案是通過(guò) cluster-autoscaler 進(jìn)行節(jié)點(diǎn)的水平伸縮。當(dāng)出現(xiàn) Pod 由于資源不足造成無(wú)法調(diào)度時(shí),cluster-autoscaler 會(huì)在節(jié)點(diǎn)池中自動(dòng)創(chuàng)建新的節(jié)點(diǎn)實(shí)例,根據(jù)應(yīng)用負(fù)載需求進(jìn)行擴(kuò)容。
ECI 彈性容器實(shí)例,基于輕量虛擬機(jī)提供了 Serverless 化的容器運(yùn)行環(huán)境。我們可以在 ACK 通過(guò)調(diào)度將業(yè)務(wù)應(yīng)用運(yùn)行在 ECI 實(shí)例上。這非常適合大數(shù)據(jù)離線任務(wù)、CI/CD 作業(yè)、突發(fā)的業(yè)務(wù)擴(kuò)容等。在微博的應(yīng)用場(chǎng)景中,彈性容器實(shí)例可以在 30 秒內(nèi)擴(kuò)容 500 Pod,輕松應(yīng)對(duì)突發(fā)的新聞事件。
在應(yīng)用層,Kubernetes 提供了 HPA 的方式進(jìn)行 Pod 的水平伸縮,和 VPA 進(jìn)行 Pod 的垂直伸縮。阿里云提供了 metrics-adapter,可以支持更加豐富的彈性指標(biāo),比如可以根據(jù) Ingress 的 QPS 指標(biāo),動(dòng)態(tài)調(diào)整應(yīng)用 Pod 數(shù)量。另外很多應(yīng)用負(fù)載的資源畫(huà)像是具有周期性的。比如證券行業(yè)業(yè)務(wù)的高峰是工作日的股市開(kāi)盤(pán)時(shí)間。峰谷資源需求量的差異高達(dá) 20 倍,為了解決這類(lèi)需求,阿里云容器服務(wù)提供了定時(shí)伸縮組件,開(kāi)發(fā)者可以定義定時(shí)擴(kuò)縮容策略,提前擴(kuò)容好資源,而在波谷到來(lái)后定時(shí)回收資源??梢院芎玫仄胶庀到y(tǒng)的穩(wěn)定性和資源成本。
Serverless Kubernetes
K8s 提供的強(qiáng)大的功能和靈活性,但是運(yùn)維一個(gè) Kubernetes 生產(chǎn)集群極具挑戰(zhàn)。即使利用托管 Kubernetes 服務(wù),但是依然要保有 worker 節(jié)點(diǎn)資源池,還需要對(duì)節(jié)點(diǎn)進(jìn)行日常維護(hù),比如 OS 升級(jí),安全補(bǔ)丁等,并根據(jù)自己的資源使用情況對(duì)資源層進(jìn)行合理的容量規(guī)劃。
針對(duì) K8s 的復(fù)雜性挑戰(zhàn),阿里云推出了 Serverless Kubernetes 容器服務(wù)—— ASK。ASK 在兼容 K8s 應(yīng)用的前提下,對(duì) Kubernetes 做減法,將復(fù)雜性下沉到云基礎(chǔ)設(shè)施,極大降低了運(yùn)維管理負(fù)擔(dān),讓開(kāi)發(fā)者更加專(zhuān)注于應(yīng)用自身。
- 對(duì)用戶而言,沒(méi)有節(jié)點(diǎn)的概念,用戶無(wú)需預(yù)留任何資源,免維護(hù),零管理。
- 所有資源按需創(chuàng)建,運(yùn)行在彈性容器實(shí)例之上,按照應(yīng)用實(shí)際消耗的資源付費(fèi)。
- 無(wú)需任何容量規(guī)劃。
??
??
在 Serverless 容器場(chǎng)景,我們提供了兩種不同的技術(shù)方案:ACK on ECI 和 ASK。
ACK on ECI
ACK 集群兼具功能性和靈活性。非常適合大型互聯(lián)網(wǎng)企業(yè)或傳統(tǒng)企業(yè)的需求??梢砸粋€(gè)集群中運(yùn)行多種不同的應(yīng)用、任務(wù)。它主要面向的是企業(yè)中 SRE 團(tuán)隊(duì),可以對(duì) K8s 進(jìn)行定制化開(kāi)發(fā)和靈活性控制。
ACK 集群支持 3 種不同的容器運(yùn)行時(shí)技術(shù):
- RunC 容器,也就是 Docker 容器,與宿主機(jī) Linux 共享內(nèi)核,簡(jiǎn)單、高效,但是安全隔離性比較弱。一旦惡意應(yīng)用利用內(nèi)核漏洞逃逸,可以影響整個(gè)宿主機(jī)上其他應(yīng)用。
- 為了提升安全隔離,阿里云和螞蟻金服團(tuán)隊(duì)合作,引入袋鼠安全沙箱容器技術(shù)。阿里云是行業(yè)中,第一個(gè)提供 RunV 安全容器的公共云容器服務(wù)。相比于 RunC 容器,每個(gè) RunV 容器具有獨(dú)立內(nèi)核,即使容器所屬內(nèi)核被攻破,也不會(huì)影響其他容器。適合運(yùn)行來(lái)自第三方不可信應(yīng)用或者在多租戶場(chǎng)景下進(jìn)行更好的安全隔離。此外,RunC 和 RunV 容器都支持資源超售,用戶可以自己靈活控制,來(lái)平衡穩(wěn)定性和成本。
- ACK 支持對(duì)彈性容器實(shí)例 ECI 的調(diào)度,ECI 本質(zhì)上基于輕量虛擬機(jī)實(shí)現(xiàn)安全、隔離的容器運(yùn)行環(huán)境。并充分利用整個(gè)阿里云彈性計(jì)算資源池的算力,來(lái)滿足用戶對(duì)計(jì)算彈性的成本、規(guī)模、效率的訴求。在設(shè)計(jì)上,ECI 針對(duì)容器場(chǎng)景充分優(yōu)化,利用操作系統(tǒng)剪裁、ENI 網(wǎng)卡直通、存儲(chǔ)直接掛載等技術(shù),保障了 ECI 中應(yīng)用的執(zhí)行效率等于甚至略優(yōu)于在虛擬機(jī)中的容器運(yùn)行環(huán)境。ECI 目前不支持資源超售,但是提供了競(jìng)價(jià)實(shí)例,可以讓用戶來(lái)控制成本和計(jì)算效率的平衡。
ECI 在 K8s 集群中適合的場(chǎng)景:
- 在線業(yè)務(wù)突發(fā)流量:用戶可以保有一個(gè)靜態(tài)資源池應(yīng)對(duì)日常流量,突發(fā)流量可以通過(guò) ECI 來(lái)承載。
- 批量計(jì)算任務(wù):對(duì)有些臨時(shí)性、周期性的計(jì)算任務(wù),資源規(guī)模不太容易預(yù)期或者預(yù)留大量的資源會(huì)產(chǎn)生浪費(fèi)。我們可以讓 ECI 來(lái)承載這樣的批量數(shù)據(jù)處理任務(wù)。
- 安全隔離:有些業(yè)務(wù)應(yīng)用需要運(yùn)行 3 方不可信應(yīng)用,比如一個(gè)用戶上傳的 AI 算法模型,利用 ECI 本身的安全沙箱進(jìn)行隔離,可以安全地運(yùn)行。
ASK
ASK 則是針對(duì) ISV 和企業(yè)中的部門(mén)/中小企業(yè)度身定制的容器產(chǎn)品。用戶完全不需具備 K8s 的管理運(yùn)維能力,即可創(chuàng)建和部署 K8s 應(yīng)用,極大降低管理復(fù)雜性,非常適合應(yīng)用托管、CI/CD、AI/數(shù)據(jù)計(jì)算等場(chǎng)景。比如可以利用 ASK 和 GPU ECI 實(shí)例構(gòu)建了免運(yùn)維的 AI 平臺(tái),可以按需創(chuàng)建機(jī)器學(xué)習(xí)環(huán)境,整體架構(gòu)非常簡(jiǎn)單、高效。
云原生彈性、高可用架構(gòu)
云原生分布式應(yīng)用架構(gòu)具備幾個(gè)關(guān)鍵特性,高可用、可彈性伸縮、容錯(cuò)性好、易于管理、便于觀察、標(biāo)準(zhǔn)化、可移植。我們可以在阿里云上構(gòu)建云原生應(yīng)用參考架構(gòu),其中包括:
- 云原生基礎(chǔ)設(shè)施:基于神龍架構(gòu)的 ECS 企業(yè)實(shí)例
- 云原生應(yīng)用平臺(tái):ACK 容器服務(wù)
- 云原生數(shù)據(jù)庫(kù):PolarDB
首先是端到端的彈性的應(yīng)用架構(gòu)。
我們可以將前端應(yīng)用、業(yè)務(wù)邏輯容器化,部署在 K8s 集群上,并根據(jù)應(yīng)用負(fù)載配置 HPA 水平伸縮。
在后端數(shù)據(jù)層,我們可以利用 PolarDB 這樣的云原生數(shù)據(jù)庫(kù)。PolarDB 采用存儲(chǔ)和計(jì)算分離架構(gòu),支持水平擴(kuò)展。同等規(guī)格下是 MySQL 性能的7倍,并且相較于 MySQL 能夠節(jié)省一半成本。
此外是系統(tǒng)化的高可用設(shè)計(jì):
- 利用 AZ 級(jí)別的反親和性,我們可以將應(yīng)用的副本實(shí)例部署在不同 AZ。
- 通過(guò) SLB 負(fù)載均衡接入在不同 AZ 的應(yīng)用入口。
- PolarDB 數(shù)據(jù)庫(kù)默認(rèn)提供了跨 AZ 高可用。
這樣我們可以保障整個(gè)系統(tǒng)具備 AZ 級(jí)別的可用性,可以容忍一個(gè) AZ 的失效。
此外,阿里云的高可用服務(wù) AHAS,提供了架構(gòu)感知的能力,可以對(duì)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)進(jìn)行可視化。而且它提供了應(yīng)用巡檢能力,幫助我們定位可用性問(wèn)題。比如應(yīng)用副本數(shù)是否滿足可用性需求,RDS 數(shù)據(jù)庫(kù)實(shí)例是否開(kāi)啟了多可用區(qū)容災(zāi)等等。
多維度可觀測(cè)性
??
??
在一個(gè)大規(guī)模分布式系統(tǒng)中,基礎(chǔ)設(shè)施(如網(wǎng)絡(luò),計(jì)算節(jié)點(diǎn)、操作系統(tǒng))或者應(yīng)用自身都有可能會(huì)出現(xiàn)各種穩(wěn)定性或者性能問(wèn)題??捎^測(cè)性可以幫助我們解分布式系統(tǒng)的狀態(tài),便于做出決策,并作為彈性伸縮和自動(dòng)化運(yùn)維的基礎(chǔ)。
一般而言,可觀測(cè)性包含幾個(gè)重要的層面:
Logging – 日志(事件流)
我們基于阿里云日志服務(wù) SLS 提供了完整的日志方案,不但可以對(duì)應(yīng)用日志進(jìn)行收集、處理,并且提供了操作審計(jì),K8s 事件中心等能力。
Metrics – 監(jiān)控指標(biāo)
對(duì)基礎(chǔ)設(shè)施服務(wù),比如 ECS、存儲(chǔ),網(wǎng)絡(luò),云監(jiān)控提供了全面的監(jiān)控。對(duì)于業(yè)務(wù)應(yīng)用的性能指標(biāo),比如 Java 應(yīng)用的 Heap 內(nèi)存利用情況,ARMS無(wú)需修改業(yè)務(wù)代碼即可對(duì) Java 和 PHP 應(yīng)用提供全方位的性能監(jiān)控。對(duì)于 K8s 應(yīng)用和組件,ARMS 提供的托管 Prometheus 服務(wù),提供多種開(kāi)箱即用的預(yù)置監(jiān)控大盤(pán),也提供開(kāi)放接口,便于三方集成。
Tracing – 全鏈路追蹤
Tracing Analysis 為開(kāi)發(fā)者提供了完整的分布式應(yīng)用調(diào)用鏈路統(tǒng)計(jì)、拓?fù)浞治龅裙ぞ?。能夠幫助開(kāi)發(fā)者快速發(fā)現(xiàn)和診斷分布式應(yīng)用中的性能瓶頸,提升微服務(wù)應(yīng)用的性能和穩(wěn)定性。
從 DevOps 到 DevSecOps
??
??
安全是企業(yè)在應(yīng)用容器技術(shù)中最大的顧慮,沒(méi)有之一。為了系統(tǒng)化提升容器平臺(tái)的安全性,我們需要全方位進(jìn)行安全防護(hù)。第一件事,我們需要將 DevOps 提升成為 DevSecOps,強(qiáng)調(diào)需將安全概念融入在整個(gè)軟件生命周期中,將安全防護(hù)能力左移到開(kāi)發(fā)和交付階段。
ACR 鏡像服務(wù)企業(yè)版提供了完整的安全軟件交付鏈。用戶上傳鏡像后,ACR 可以自動(dòng)化地進(jìn)行鏡像掃描,發(fā)現(xiàn)其中存在的 CVE 漏洞。之后可以利用 KMS 秘鑰服務(wù),自動(dòng)化對(duì)鏡像添加數(shù)字簽名。在 ACK 中,可以配置自動(dòng)化安全策略,比如只允許經(jīng)過(guò)安全掃描且符合上線要求的鏡像在生產(chǎn)環(huán)境進(jìn)行發(fā)布。整個(gè)軟件交付鏈路可觀測(cè)、可追蹤、策略驅(qū)動(dòng)。在保障安全性的前提下,可以有效提升交付效率。
此外,在應(yīng)用運(yùn)行時(shí),也會(huì)面對(duì)眾多安全風(fēng)險(xiǎn),比如新發(fā)現(xiàn)的 CVE 漏洞或者病毒攻擊。阿里云安全中心提供了運(yùn)行時(shí)的安全監(jiān)控和防護(hù)能力。
云安全中心可以對(duì)容器應(yīng)用進(jìn)程與網(wǎng)絡(luò)情況監(jiān)控,對(duì)應(yīng)用的異常行為或者安全漏洞進(jìn)行實(shí)時(shí)檢測(cè)。發(fā)現(xiàn)問(wèn)題后,會(huì)通過(guò)郵件、短信對(duì)用戶進(jìn)行通知,也提供了自動(dòng)化隔離與修復(fù)能力。比如我們拿一個(gè)去年著名的挖礦蠕蟲(chóng)病毒為例,它會(huì)利用用戶的配置錯(cuò)誤對(duì)容器集群發(fā)動(dòng)攻擊。在云安全中心的幫助下,我們可以輕松發(fā)現(xiàn)它的蹤跡并進(jìn)行一鍵清除。
托管服務(wù)網(wǎng)格 ASM
??
??
今年二月,我們發(fā)布了業(yè)內(nèi)首個(gè)全托管,Istio 兼容的服務(wù)網(wǎng)格產(chǎn)品 ASM。服務(wù)網(wǎng)格的控制平面組件托管在阿里云側(cè),與數(shù)據(jù)平面?zhèn)鹊挠脩艏邯?dú)立。通過(guò)托管模式,極大簡(jiǎn)化了 Istio 服務(wù)網(wǎng)格部署和管理的復(fù)雜性,解耦了網(wǎng)格與其所管理的 K8s 集群的生命周期,使得架構(gòu)更加簡(jiǎn)單、靈活,提升了系統(tǒng)的穩(wěn)定性和可伸縮性。此外,ASM 在 Istio 基礎(chǔ)上進(jìn)行大量的擴(kuò)展,整合了阿里云可觀測(cè)性服務(wù)、日志服務(wù)等,可以幫助用戶更加高效地管理網(wǎng)格中的應(yīng)用。
在數(shù)據(jù)平面的支持上,ASM 產(chǎn)品可以支持多種不同的計(jì)算環(huán)境,這包括了 ACK Kubernetes 集群、ASK 集群、以及 ECS 虛擬機(jī)等。通過(guò)云企業(yè)網(wǎng) CEN,ASM 可以實(shí)現(xiàn)多地域、跨 VPC 的 K8s 集群之間的服務(wù)網(wǎng)格。這樣 ASM 可以對(duì)多地域的大規(guī)模分布式應(yīng)用實(shí)現(xiàn)流量管理和灰度發(fā)布。此外,ASM 也會(huì)很快推出多云混合云的支持。
混合云:企業(yè)上云新常態(tài)
上云已是大勢(shì)所趨,但是對(duì)于企業(yè)用戶而言,有些業(yè)務(wù)由于數(shù)據(jù)主權(quán)和安全隱私的考慮,無(wú)法直接上云,只能采用混合云架構(gòu)。Gartner 預(yù)測(cè) 81% 的企業(yè)將采用多云/混合云戰(zhàn)略,混合云架構(gòu)已經(jīng)成為企業(yè)上云的新常態(tài)。
傳統(tǒng)的混合云架構(gòu)以云資源為中心進(jìn)行抽象和管理。然而不同云環(huán)境的基礎(chǔ)設(shè)施、安全架構(gòu)能力的差異會(huì)造成企業(yè) IT 架構(gòu)和運(yùn)維體系的割裂,加大混合云實(shí)施的復(fù)雜性,提升運(yùn)維成本。
在云原生時(shí)代,以 Kubernetes 為代表的技術(shù)屏蔽了基礎(chǔ)設(shè)施的差異性,可以更好地在混合云環(huán)境下,進(jìn)行統(tǒng)一資源調(diào)度和統(tǒng)一應(yīng)用生命周期管理。以應(yīng)用為中心的混合云 2.0 架構(gòu)已經(jīng)到來(lái)!
這里有幾個(gè)典型場(chǎng)景:
- 利用公共云的彈性算力應(yīng)對(duì)突發(fā)流量。線下數(shù)據(jù)中心承載日常流量,當(dāng)業(yè)務(wù)突增時(shí),通過(guò)云資源擴(kuò)容,承載突發(fā)流量。
- 利用公共云構(gòu)建低成本的云災(zāi)備中心。線上線下兩套系統(tǒng),線上系統(tǒng)作為熱備。當(dāng)線下數(shù)據(jù)中心發(fā)生故障時(shí),可以快速將業(yè)務(wù)流量切換到云上。
- 構(gòu)建異地多活的應(yīng)用架構(gòu)。在云上多個(gè)地域部署單元化的業(yè)務(wù)系統(tǒng),并提供統(tǒng)一的服務(wù)治理能力。當(dāng)一個(gè)地域發(fā)生故障時(shí),將業(yè)務(wù)流量遷移到其他地域提升業(yè)務(wù)連續(xù)性。
基于 ACK 和阿里云的混合云網(wǎng)絡(luò)、存儲(chǔ)網(wǎng)關(guān)以及數(shù)據(jù)庫(kù)復(fù)制等能力,我們可以幫助企業(yè)構(gòu)建全新的混合云 IT 架構(gòu)。
混合云 2.0 架構(gòu)
??
??
首先 ACK 提供了統(tǒng)一集群管理能力,除了可以管理阿里云 K8s 集群之外,還可以納管用戶在 IDC 的自有 K8s 集群和其他云的 K8s 集群。利用統(tǒng)一的控制平面實(shí)現(xiàn)多個(gè)集群的統(tǒng)一的安全治理、可觀測(cè)性、應(yīng)用管理、備份恢復(fù)等能力。比如利用日志服務(wù)、托管 Prometheus 服務(wù),可以無(wú)侵入的方式幫助用戶對(duì)線上、線下集群有一個(gè)統(tǒng)一的可觀測(cè)性大盤(pán)。利用云安全中心,AHAS 可以幫助用戶在混合云的整體架構(gòu)中發(fā)現(xiàn)并解決安全和穩(wěn)定性風(fēng)險(xiǎn)。
此外 ASM 提供統(tǒng)一的服務(wù)治理能力,結(jié)合 CEN、SAG 提供的多地域、混合云網(wǎng)絡(luò)能力,可以實(shí)現(xiàn)服務(wù)就近訪問(wèn),故障轉(zhuǎn)移,灰度發(fā)布等功能,支持云容災(zāi)、異地多活等應(yīng)用場(chǎng)景,提升業(yè)務(wù)連續(xù)性。
云原生混合云解決方案
??
??
一個(gè)案例:職優(yōu)你是一個(gè)電子學(xué)習(xí)職業(yè)發(fā)展平臺(tái),為來(lái)自世界多個(gè)地區(qū)的用戶提供服務(wù)。它的應(yīng)用部署在阿里云的 4 個(gè)不同地域上多個(gè) Kubernetes 集群中。這些集群通過(guò)云企業(yè)網(wǎng) CEN 將多個(gè)跨地域 VPC 網(wǎng)絡(luò)打通,并通過(guò)一個(gè) ASM 服務(wù)網(wǎng)格,對(duì)多個(gè) K8s 集群中的微服務(wù)應(yīng)用進(jìn)行統(tǒng)一的流量管理。
服務(wù)路由策略由 ASM 控制平面統(tǒng)一管理,并下發(fā)到多個(gè) K8s 集群。用戶請(qǐng)求會(huì)經(jīng)過(guò) DNS 分流到最近地域的入口網(wǎng)關(guān),之后通過(guò)服務(wù)網(wǎng)格的就近訪問(wèn)能力,優(yōu)先訪問(wèn)本地域內(nèi)的服務(wù)端點(diǎn)。如果本地域的服務(wù)不可用,可以將請(qǐng)求自動(dòng)轉(zhuǎn)移到其他地域?qū)崿F(xiàn)流量切換。
云原生混合云管理
阿里云的混合云解決方案有幾個(gè)重要特點(diǎn):
- ACK 提供了統(tǒng)一的集群管理,統(tǒng)一的安全治理,統(tǒng)一的應(yīng)用管理和可觀測(cè)性。
- CEN 實(shí)現(xiàn)了全地域網(wǎng)絡(luò)連通,通過(guò)高速、低延時(shí)的網(wǎng)絡(luò)互連。
- ASM 支持統(tǒng)一的智能化應(yīng)用流量管理,可以優(yōu)化服務(wù)訪問(wèn),提升業(yè)務(wù)連續(xù)性。
Windows 容器平滑上云
??
??
我們來(lái)談一下對(duì) Windows 容器的支持。在現(xiàn)今企業(yè)中,Windows 操作系統(tǒng)依然占據(jù)半壁江山,其市場(chǎng)份額達(dá) 60% 之多。企業(yè)還有有大量的 Windows 應(yīng)用,比如 ERP,CRM,ASP.Net 網(wǎng)站等。利用 Windows 容器和 Kubernetes,可以讓 .Net 應(yīng)用在代碼不重寫(xiě)的情況下實(shí)現(xiàn)容器化交付,充分利用云上的彈性、敏捷等能力,實(shí)現(xiàn)業(yè)務(wù)應(yīng)用的快速迭代和伸縮。
ACK 支持 Windows 2019,在 K8s 容器集群中:
1)為 Linux 和 Windows 應(yīng)用提供了一致的用戶體驗(yàn)和統(tǒng)一的能力。
- 支持 CPU、內(nèi)存、存儲(chǔ)卷等資源調(diào)度和編排
- 支持無(wú)狀態(tài)/有狀態(tài)等多種不同應(yīng)用負(fù)載
2)支持 Linux 和 Windows 應(yīng)用在集群中的混合部署和互連互通,比如我們可以讓運(yùn)行在 Linux 節(jié)點(diǎn)的 PHP 應(yīng)用訪問(wèn)運(yùn)行在 Windows 節(jié)點(diǎn)的 SQL Server 數(shù)據(jù)庫(kù)。
我們已經(jīng)在支持了聚石塔電商平臺(tái)和 supET 工業(yè)互聯(lián)網(wǎng)平臺(tái)支持了很多 ISV 來(lái)對(duì) Windows 應(yīng)用進(jìn)行云原生化改造、升級(jí)。
阿里云容器服務(wù)的演進(jìn)方向
下面我們快速介紹一下阿里云在云原生方面的產(chǎn)品市場(chǎng)策略。我們可以總結(jié)為三條:
新基石:容器技術(shù)是用戶使用云資源的新界面,云原生技術(shù)是釋放云價(jià)值的最短路徑
- 支撐全球化應(yīng)用交付:通過(guò) ACR EE,可以實(shí)現(xiàn)一次提交、全球發(fā)布,發(fā)布效率提升 7 倍。
- 實(shí)現(xiàn) Serverless 化應(yīng)用架構(gòu):利用 ASK/Knative,讓開(kāi)發(fā)者聚焦業(yè)務(wù)應(yīng)用,無(wú)需管理基礎(chǔ)設(shè)施。
- 支持混合云、多云架構(gòu):幫助企業(yè)用戶平滑上云,讓工作負(fù)載在不同環(huán)境動(dòng)態(tài)遷移。
- 構(gòu)建云-邊-端一體的分布式云架構(gòu):將云的能力延伸到邊緣和設(shè)備端,更好迎接 5G 和 AIoT 時(shí)代的創(chuàng)新機(jī)遇。優(yōu)酷在應(yīng)用邊緣容器技術(shù)后,API 端到端網(wǎng)絡(luò)延遲降低了 75%。
新算力:基于云原生的軟硬一體化技術(shù)創(chuàng)新,提升計(jì)算效率,加速業(yè)務(wù)智能化升級(jí)
- 容器和神龍架構(gòu)相結(jié)合,性能優(yōu)于物理機(jī) 20%。
- 支持 GPU,NPU(含光芯片)等異構(gòu)算力的調(diào)度和共享,可以實(shí)現(xiàn)利用率 2 ~ 4 倍提升。
- 安全沙箱容器在強(qiáng)安全隔離的同時(shí),實(shí)現(xiàn)原生進(jìn)程90%性能。也推出了基于 Intel SGX 的機(jī)密計(jì)算的支持,可以為隱私和機(jī)密信息處理提供安全、可信的執(zhí)行環(huán)境。
新生態(tài):通過(guò)開(kāi)放技術(shù)生態(tài)和全球合作伙伴計(jì)劃,幫助更多企業(yè)分享云時(shí)代技術(shù)紅利
- 容器云應(yīng)用市場(chǎng):鏈接企業(yè)與云原生創(chuàng)新,已入駐 Fortinet、駐云、Intel 等多家合作伙伴,覆蓋了從容器安全、監(jiān)控到業(yè)務(wù)應(yīng)用的不同商品,便于用戶獲得完整的容器化解決方案。
- 全球合作伙伴生態(tài):我們和 SAP,紅帽,Rancher,Click2Cloud,BanzaiCloud等全球技術(shù)合作伙伴進(jìn)行了產(chǎn)品能力集成。幫助企業(yè)用戶在阿里云上用好云原生技術(shù)。
當(dāng)前名稱:云原生之路:容器技術(shù)落地實(shí)踐
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/cdehihh.html


咨詢
建站咨詢
