天天看點

阿裡巴巴集團全面上雲實踐與思考

演講嘉賓簡介:張瓅玶,花名谷樸。阿裡雲容器平台叢集管理團隊負責人,研究員,阿裡巴巴集團上雲核心決策組成員。2017年加入阿裡巴巴。之前在Google的基礎設施事業群的叢集管理部門工作了5年多,并上司了資源管理和優化團隊,負責Borg以及基礎存儲資源的優化,負責了FlexBorg, Autoscaling等多個産品。加入Google前在加州大學伯克利分校從事智能系統的研究工作。大學和博士畢業于清華大學。

以下内容根據演講視訊以及PPT整理而成。

觀看回放

https://yq.aliyun.com/live/2783

本次分享主要圍繞以下三個方面:

一、核心系統上雲演進

二、上雲挑戰及變化

三、未來演進

如下圖左側,最初阿裡巴巴電商核心系統是不具備容災能力的。随着核心系統的演進,慢慢具備了同城容災能力,到今天阿裡巴巴核心系統已經具備多單元,異地多活結構,可以實作靈活切流,具備極緻高可用和容災能力。同時在國内多個地域進行了部署,包括華東,華南及華北,而且具備國際化部署能力。

阿裡巴巴集團全面上雲實踐與思考
第一階段:自建基礎設施

在核心系統上雲之前,阿裡巴巴一般是自建基礎設施,到2015年阿裡巴巴核心系統已經具備中心同城容災,多單元異地多活的能力。如果把阿裡巴巴核心系統簡化,如下圖藍色部分,營運商CDN是整個核心系統的入口,進來後有多地多個區域有多個機房,通過統一接入負載均衡,進入服務注冊中心,通過中間件處理消息及事務,進入交易導購的應用,再通過緩存通路資料庫。

阿裡巴巴集團全面上雲實踐與思考
第二階段:核心系統雙11彈性上雲

從2015年到2018年内,阿裡巴巴在雙11期間的采取彈性上雲政策。雙11本身對阿裡巴巴的業務系統是一個非常大的挑戰,雙11期間業務的峰值會達到平常峰值的幾十倍。但是以業務資源成本來看,顯然無法配置設定幾十倍的業務資源成本支援雙11當天的流量,從效率層面也是不現實的。是以在2015-2018年間,通過彈性上雲政策将交易導購的應用短期擴容到阿裡雲ECS上,進而支援大促成本降低的目标。

阿裡巴巴集團全面上雲實踐與思考
第三階段:核心系統全面上雲

在2019年年初,阿裡巴巴CTO,行颠提出在2019年将阿裡巴巴核心系統全面上雲的目标。實際上,在2019年雙11前,阿裡巴巴核心系統已經全面上雲了。由于在核心系統的架構上具備同城容災和多單元化部署的能力,進而給核心系統上雲帶來了極大的便利。以中心為例,首先在雲上申請神龍ECS資源,通過中心的同城容災,将中心一個機房的應用及統一接入層實作上雲,在過程中通過服務注冊中心,消息和中間件統一機房的設定,實作遷移的過程中業務無中斷。

阿裡巴巴集團全面上雲實踐與思考

在雲上部署并完成測試後,可以将流量遷移到雲上機房。因為是同城容災的架構,故可以将雲下機房的流量的切斷,切到雲上機房。同時可以對中心其它機房進行相同的操作,完成流量遷移的過程。

阿裡巴巴集團全面上雲實踐與思考

同時單元化的部分也經過了類似的過程,整個實施過程投入了大半年的時間。核心系統全面上雲是一次平台重構(replatforming),将基礎平台都遷移到雲上,從原來基于自建的政策改為現在所有應用,資料庫等都基于雲的核心系統。

阿裡巴巴集團全面上雲實踐與思考

為什麼阿裡要核心系統上雲?

随着公有雲技術的演進,公有雲上很多産品的能力相比于傳統基于自建的系統的能力有了顯著的提升,比如雲上神龍伺服器,雲上核心資料庫,既吸收了阿裡巴巴内部技術的創新,同時在對外服務客戶的過程中,也在不斷積累獨特的創新能力。雲上産品可以更好的支援阿裡巴巴的業務。反過來,阿裡巴巴内部的系統也具備一些獨特的場景,如平時比較複雜的電商場景,可以對雲上産品有更好的打磨效果。阿裡系統通過核心系統的上雲,不斷的打磨雲産品,進而使得雲産品能力得到不斷的提升。其次,通過核心系統的上雲,可以讓性能,成本及穩定性收益形成良性閉環。

阿裡巴巴集團全面上雲實踐與思考

二、上雲挑戰和變化

上雲挑戰

衆所周知,阿裡巴巴雙11是對業務來說是一個獨一無二的挑戰。其中包括對容器規模的挑戰,在大促期間,叢集規模超過百萬,單叢集規模達到10000以上。2019年雙11的資料庫峰值能力達到54.5萬筆訂單每秒,資料庫TPS達到8700萬,實時計算Blink處理峰值達到25億消息每秒,消息系統峰值達到1.5億消息每秒。這些數值是對業務的極緻性能和極緻穩定性的要求,過去是依靠阿裡巴巴集團自由技術體系多年的打磨,那麼如果上雲,雲産品是否能夠支撐這樣的極緻要求同時提供紅利?

阿裡巴巴集團全面上雲實踐與思考
計算存儲

在上雲之前,阿裡巴巴計算是依靠傳統的實體機+容器的架構。傳統的架構面臨幾種架構缺陷,一方面是面臨資源争搶的挑戰,且隔離性較弱。同時會占用主控端的資源,對系統算力造成損失,成本變高。另外,所需的IO引擎通過純軟體的方式實作,會遇到較大的性能瓶頸,尤其在雙11期間,IO引起的性能問題一直是較大的挑戰。其次,由于應用網絡存儲和裝置共享導緻容器互相影響,性能抖動等問題也是目前的主要挑戰。

阿裡巴巴集團全面上雲實踐與思考

在2019年完成遷雲之後,計算層使用神龍+容器服務作為最佳計算基礎設施。神龍的特點是通過對網絡和存儲硬體基礎的虛拟化,将原來主控端的開銷解除安裝到單獨的子系統上,虛拟機的解除安裝使得實體機的資源都為業務負載所用。同時讓實體機上的容器互相之間不會因為共享IO通道産生幹擾,對長尾延遲及資源的生長情況有顯著的改善。在2019年雙11期間,在高負載壓力下的某電商應用QPS提升了30%,同時資源的使用率也有顯著的提升,CPU使用率提升了80%,降低了延遲時長。

阿裡巴巴集團全面上雲實踐與思考

下圖對比了實體機部署和神龍部署的延遲情況,可以發現當業務負載逐漸提升時,神龍延遲的下降是非常明顯的,而傳統的實體機由于資源的争搶會導緻延遲時長快速上升。

阿裡巴巴集團全面上雲實踐與思考
雲化存儲

雲化存儲也給阿裡巴巴核心系統上雲的演進帶來了積極的影響。一方面,雲上的高密度,彈性能力,長尾延遲的優化,對于應用的性能和穩定性帶來了大幅度的提升。

阿裡巴巴集團全面上雲實踐與思考

另一方面,在雲上實作了存儲計算的分離,不需要再去管理,規劃和存儲,進而給整體應用架構帶來了大幅度的簡化。下圖左側展示了單體應用的架構,包含應用、本地檔案系統、本地磁盤。遷移到雲上後采用雲化的存儲實作存儲計算分離,架構變成了類似如下圖右側,業務隻需關注應用,通過存儲虛拟化通路雲存儲。在存儲計算分離後,阿裡巴巴硬體采購更靈活,隻需要做計算量的采購,不需要考慮磁盤容量問題。在應用層面,所關心的次元也變少了,目前隻需要關心CPU和記憶體水位,提高了資源配置設定成功率和資源使用率。最後,存儲的分離使得應用的遷移效率更高,提升了可移性,無須遷移本地資料。

阿裡巴巴集團全面上雲實踐與思考
網絡性能

在上雲之前,阿裡巴巴的架構是企業内部網的架構。由于上雲的遷移是持續的過程,是以需要建構高速的混合雲網絡。雲上雲下對傳流量較大,是以在雲上采用了雲專線的方式實作雲上雲下的高速互通,同時具備城域網架構支援良好的可擴充性。但同時也面臨跨安全域full-mesh互通的問題,阿裡通過對整個安全域和安全組的設定,進行了很好的解決。整個過程中,雲上的xGW網關和軟硬體結合的交換機能力也使得上雲之後的網絡性能有了大幅度的提升。

阿裡巴巴集團全面上雲實踐與思考
資源管理和規劃

在上雲之後,以雙11和618大促為例,在3年前,阿裡巴巴需要為大促峰值做單獨的資源準備,而且這些資源很難立刻被完全釋放掉,一般消化時長需要按年進行統計。,供應鍊及企業的彈性來說是一個較大的痛點。阿裡巴巴也做了很多容器化,統一排程,混部等方案,這些本質上屬于雲化的過程。當真正上雲後,雲會提供一個産品化的解決方案。當資源池規模呈指數級别增長時,資源可以即買即用,使用者不用關注架構優化問題,也不需要關心供應鍊問題,彈性資源池能力有了大幅度提升。

阿裡巴巴集團全面上雲實踐與思考

上雲之前的資源規劃如下圖,業務實際需求是一個曲線,當有大促活動時,需求會極速增長。但傳遞時是按照粗顆粒度進行實體機的采購,而采購往往是批量采購,并且需要提前采購實體機。下圖綠色線條下的面積是實際機器庫存。上雲之後即使還是按照綠色線條做容量規劃,并且上交阿裡雲,但實際的規劃可以很好的貼近業務需求,少批量多次的彈性采購,進而大幅度減少備援資源。下圖右側綠色和橙色間的面積是優化節約的資源。

阿裡巴巴集團全面上雲實踐與思考
混部方案變化

下圖展示了在上雲之前在阿裡巴巴集團内部,将大資料和電商應用通過混合部署,進而節省成本的方案。但受限于機房資源的規劃,會産生很多空閑資源或不具備條件的資源。上雲之後,可以使用雲提供的産品化方案,充分使用資源,通過相對簡單的雲化技術方案,達到業務無降級的效果。

阿裡巴巴集團全面上雲實踐與思考

解決問題

上雲已成為趨勢,但核心系統上雲對大企業來說還是會面臨很多挑戰。阿裡巴巴在2019年完成了核心系統的上雲,相信對其它企業也可以慢慢克服這些挑戰,并且完成上雲。但核心系統上雲隻是下一個開始,并不是終态。阿裡巴巴技術團隊下一階段将主要解決以下問題,首先是持續提升研發運維效率,讓業務更快疊代,這是每一個公司技術團隊最核心的使命。同時需要不斷優化,進而減低資源成本。最後,保證安全生産和穩定性。

阿裡巴巴集團全面上雲實踐與思考
新架構演進

如果将上雲之前的階段分為兩大階段,第一個階段是彈性使用雲資源,在2018-2019年間,阿裡巴巴在雙11期間使用了雲資源降低成本。第二階段是2019年開始核心系統上雲,真正以雲為平台。下一階段将是雲原生化,那麼什麼是雲原生?

阿裡巴巴集團全面上雲實踐與思考
雲原生

從價值的角度來說,雲原生化是企業應用架構的一次更新,雲原生是建構和運作可彈性擴充、容錯性好、易于管理的系統的最佳實踐。一方面,雲原生化通過容器和資源的編排,帶來效率和資源使用率的提升。另一方面,通過微服務化分布式系統的可彈性,帶來整個應用擴充與可靠性的提升。此外,雲原生化的開放标準帶來了無供應商鎖定的特點。同時持續傳遞帶來了創新疊代速度的提升。這些價值是阿裡巴巴非常看重的,同時也希望可以擷取到這些紅利。

阿裡巴巴集團全面上雲實踐與思考
雲原生上雲之痛

從上雲視角看,雲原生(Cloud native)化是最大化使用雲的能力,以開放标準重構阿裡巴巴技術體系和架構,讓企業聚焦于業務的實踐。但同時因為雲原生上雲是對整體體系的挑戰,是以會面臨以下幾種痛點。首先,傳統面向富容器、定制化的運維和監控體系遷移到标準化體系,應用架構向微服務化轉變,此類運維體系更新對企業來說也是不小的挑戰。随着容器化的普遍深入,給企業提供标準化的運維體系,可以極大的降低雲原生上雲成本。其次,在更深入使用雲産品過程中,應用所依賴的中間件和後端服務也要遷移,同時發生了應用架構的變化,此時雲上所提供的很多标準的基礎設施可以極大的降低成本,技術人員可以更多的聚焦在自身業務技術及能力,無需在基礎設施和産品上投入大量人力。第三,在更新過程中會不可避免的面臨組織挑戰,如果之前企業有in-house自建和維護團隊,是否可讓他們參與業務系統的開發,同時可以實作人員效率的提升。

阿裡巴巴集團全面上雲實踐與思考
應用與基礎設施全面解耦

将雲原生之前的一個典型的應用架構拆分後,如下圖,帶有富容器模式的特點,與基礎設施有深度的耦合,包括監控Agent、日志Agent、系統程序、指令通道、中間件、本地緩存,最上面才是業務豬程序。此類架構會使得應用與基礎設施間存在強耦合,進而使得配置管理複雜,釋出更新慢,可遷移性不高。在上雲時,架構本身的運維及研發演進效率也會受到影響。

阿裡巴巴集團全面上雲實踐與思考

是以針對這種高耦合性,需要全面的對應用和基礎設施進行解耦。即通過應用架構的演進,将業務應用與運維,可觀測性,中間件等逐漸分離,也稱為輕量化容器和不可變基礎設施的分離。同時,過去的複雜度來自流量的複雜度和網絡的管理和配置,通過服務網格化的演進,可以很好的将業務程序與基礎設施的網絡的程序解耦開來。通過這些演進可以使得應用更多的關注自身的邏輯和主容器,讓流量、運維和可觀測性變成雲基礎設施的一部分,進而可以使用标準的雲産品進行替代。

阿裡巴巴集團全面上雲實踐與思考

無伺服器化

如果進一步可以讓業務的runtime更無伺服器化,則業務會變得更輕量,效率也會進一步提升。上雲的深入本質上是走向無伺服器化,無需管理底層伺服器資源,實作從0到無限的資源彈性,按需計費。以上是無伺服器化的基礎設施可以提供的價值,對應用與運維和研發的效率都有很大的幫助。

阿裡巴巴集團全面上雲實踐與思考

雲原生上雲的價值紅利

雲原生上雲對企業的價值紅利,一方面是通過雲上的标準産品的标準化、快速演進給企業帶來技術紅利。雲廠商和社群都在大量的投入雲原生技術,如阿裡巴巴,谷歌,微軟都已投入在社群開發标準的雲原生技術的建設中,這會給雲原生軟體生态帶來紅利,如容器、微服務、K8s、服務網格都是近幾年得到了快速的成長。雲原生技術領域将成為雲廠商競争和投入的主戰場。雲傳統的優勢包括規模、穩定性,成本等,這些已經逐漸發揮到極緻。通過容器、微服務雲原生技術開始向上接觸到了應用負載的感覺,持續的創新給研發和運維帶來效率上的優勢,進而不斷的獲得客戶的認可。在雲廠商将雲原生技術作為競争和投入的主戰場可以使得雲産品逐漸的成熟,為客戶帶來更大的價值。随着雲原生的技術的發展,應用部署逐漸走向雲邊端一體化,這對企業管理跨環境雲邊端應用帶來了極大的便利。

阿裡巴巴集團全面上雲實踐與思考

雲技術體系的演進,雲原生技術和産品的發展,雲産商對雲原生的投入,使得阿裡巴巴相信雲原生上雲是阿裡巴巴下一步主要的方向。阿裡巴巴相信核心系統通過上雲的深化,可以獲得更大的技術紅利,同時獲得研發和運維效率的提升。在穩定性和成本優化的基礎上,相信雲原生也是其它企業未來技術演進道路上值得考慮的一個方向。