溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

發(fā)布時間:2020-08-26 21:19:43 來源:網(wǎng)絡(luò) 閱讀:11325 作者:阿里系統(tǒng)軟件技術(shù) 欄目:建站服務(wù)器

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解


劃重點

阿里巴巴 9 年雙 11 經(jīng)歷下來,交易額增長了 280 倍、交易峰值增長 800 多倍、系統(tǒng)數(shù)呈現(xiàn)爆發(fā)式增長。系統(tǒng)在支撐雙 11 過程中的復(fù)雜度和支撐難度以指數(shù)級形式上升。雙 11 峰值的本質(zhì)是用有限的成本最大化提升用戶體驗和集群吞吐能力,用合理的代價解決峰值。
本文將從阿里巴巴統(tǒng)一調(diào)度體系、混部架構(gòu)、云化架構(gòu)三個方面詳解阿里是如何支撐如此龐大的系統(tǒng)。


統(tǒng)一調(diào)度體系

始于 2011 年建設(shè)的 Sigma 是服務(wù)阿里巴巴在線業(yè)務(wù)的調(diào)度系統(tǒng),圍繞 Sigma 有一整套以調(diào)度為中心的集群管理體系。

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

Sigma 有 Alikenel、SigmaSlave、SigmaMaster 三層大腦聯(lián)動協(xié)作,Alikenel 部署在每一臺物理機上,對內(nèi)核進行增強,在資源分配、時間片分配上進行靈活的按優(yōu)先級和策略調(diào)整,對任務(wù)的時延,任務(wù)時間片的搶占、不合理搶占的驅(qū)逐都能通過上層的規(guī)則配置自行決策。SigmaSlave 可以在本機進行容器 CPU 分配、應(yīng)急場景處理等。通過本機 Slave 對時延敏感任務(wù)的干擾快速做出決策和響應(yīng),避免因全局決策處理時間長帶來的業(yè)務(wù)損失。SigmaMaster 是一個最強的中心大腦,可以統(tǒng)攬全局,為大量物理機的容器部署進行資源調(diào)度分配和算法優(yōu)化決策。

整個架構(gòu)是面向終態(tài)的設(shè)計理念,收到請求后把數(shù)據(jù)存儲到持久化存儲層,調(diào)度器識別調(diào)度需求分配資源位置,Slave識別狀態(tài)變化推進本地分配部署。系統(tǒng)整體的協(xié)調(diào)性和最終一致性非常好。我們在 2011 年開始做調(diào)度系統(tǒng),2016 年用 Go 語言重寫,2017 年兼容了 kubernetes API,希望結(jié)合生態(tài)的力量,共同建設(shè)和發(fā)展。

混部架構(gòu)

阿里巴巴在 2014 年開始推動混部架構(gòu),目前已在阿里巴巴內(nèi)部大規(guī)模部署。在線服務(wù)屬于長生命周期、規(guī)則策略復(fù)雜性高、時延敏感類任務(wù)。而計算任務(wù)生命周期短、調(diào)度要求大并發(fā)高吞吐、任務(wù)有不同的優(yōu)先級、對時延不敏感?;谶@兩種調(diào)度的本質(zhì)訴求的不同,我們在混合部署的架構(gòu)上把兩種調(diào)度并行處理,即一臺物理機上可以既有 Sigma 調(diào)度又有 Fuxi 調(diào)度,實現(xiàn)基礎(chǔ)環(huán)境統(tǒng)一。Sigma 調(diào)度是通過 SigmaAgent 啟動 PouchContainer 容器。Fuxi 也在這臺物理機上搶占資源,啟動自己的計算任務(wù)。所有在線任務(wù)都在 PouchContainer 容器上,它負責把服務(wù)器資源進行分配并運行在線任務(wù),離線任務(wù)填入其空白區(qū),保證物理機資源利用達到飽和,這樣就完成了兩種任務(wù)的混合部署。


阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

混部的關(guān)鍵技術(shù)

內(nèi)核資源隔離上的關(guān)鍵技術(shù)
  • 在 CPU HT 資源隔離上,做了 Noise Clean 內(nèi)核特性,解決在 / 離線超線程資源爭搶問題。

  • 在 CPU 調(diào)度隔離上,CFS 基礎(chǔ)上增加 Task Preempt 特性,提高在線任務(wù)調(diào)度優(yōu)先級。

  • 在 CPU 緩存隔離上,通過 CAT,實現(xiàn)在、離線三級緩存 (LLC) 通道隔離 (Broadwell 及以上)。

  • 在內(nèi)存隔離上,擁有 CGroup 隔離 /OOM 優(yōu)先級;Bandwidth Control 減少離線配額實現(xiàn)帶寬隔離。

  • 在內(nèi)存彈性上,在內(nèi)存不增加的情況下,提高混部效果,在線閑置時離線突破 memcg limit;需要內(nèi)存時,離線及時釋放。

  • 在網(wǎng)絡(luò) QoS 隔離上,管控打標為金牌、在線打標為銀牌、離線打標為銅牌,分級保障帶寬。

在線集群管理上的關(guān)鍵技術(shù)
  • 對應(yīng)用的內(nèi)存、CPU、網(wǎng)絡(luò)、磁盤和網(wǎng)絡(luò) I/O 容量進行畫像,知道它的特征、資源規(guī)格需求,不同的時間對資源真實使用情況,然后對整體規(guī)格和時間進行相關(guān)性分析,進行整體調(diào)度優(yōu)化。

  • 親和互斥和任務(wù)優(yōu)先級的分配,哪種應(yīng)用放在一起使整體計算能力比較少、吞吐能力比較高,這是存在一定親和性。

  • 不同的場景有不同的策略,雙 11 的策略是穩(wěn)定優(yōu)先,穩(wěn)定性優(yōu)先代表采用平鋪策略,把所有的資源用盡,讓資源層全部達到最低水位。日常場景需要利用率優(yōu)先,“利用率優(yōu)先” 指讓已經(jīng)用掉的資源達到最高水位,空出大量完整資源做規(guī)?;挠嬎?。

  • 應(yīng)用做到自動收縮、垂直伸縮、分時復(fù)用。

  • 整個站點的快速擴容縮容,彈性內(nèi)存技術(shù)等。

    阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

混合部署指將計算任務(wù)引入在線服務(wù)集群以提升日常資源效率。把離線任務(wù)引入后,CPU 平均利用率從 10% 上升到 40% 以上,同時時延敏感類服務(wù)的延遲影響小于 5%,屬于完全可接受范圍。目前我們整個混部集群已達到數(shù)千臺的規(guī)模,經(jīng)過了交易核心鏈路雙 11 大促的驗證。這項優(yōu)化可以為日常節(jié)省超過 30% 的服務(wù)器。今年會擴大 10 倍的部署規(guī)模,取得規(guī)?;找?。

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

通過分時復(fù)用,達到進一步提升資源效率的效果。上圖中的曲線是我們某個應(yīng)用的流量曲線。它是非常有規(guī)律的 , 左邊代表晚上波谷期,右邊代表白天處于波峰期。正常的混部指占用圖中藍色陰影部分的資源把利用率提高到 40%,彈性分時復(fù)用技術(shù)是指對應(yīng)用畫像找到應(yīng)用流量波谷期,對應(yīng)用縮容,大量釋放內(nèi)存和 CPU,調(diào)度更多計算任務(wù)。通過這項技術(shù),把平均 CPU 利用率提升到 60% 以上。

PouchContainer 容器和容器化的進展

全面容器化是提升運維能力、統(tǒng)一調(diào)度的關(guān)鍵技術(shù)。首先介紹一下阿里巴巴內(nèi)部容器產(chǎn)品 PouchContainre。它從 2011 年開始建設(shè)和上線,基于 LXC,在 2015 年初開始吸收 Docker 鏡像功能和并兼容容器標準。阿里巴巴的容器非常有特點,它結(jié)合了阿里內(nèi)核,大幅度提高了安全隔離性,目前以百萬級規(guī)模部署于阿里集團內(nèi)部。

再來了解一下 PouchContainer 的發(fā)展路線。以前用的是虛擬機的虛擬化技術(shù),虛擬化技術(shù)過渡到容器技術(shù)面臨著很多運維體系的挑戰(zhàn)。運維體系的遷移有很大的技術(shù)成本。我們做到了阿里內(nèi)部運維和應(yīng)用視角無縫遷移,有獨立 IP,能夠 ssh 登錄,有獨立的文件系統(tǒng)和資源隔離使用量可見性。2015 年以后,阿里巴巴引入容器標準,形成了新的一套容器 PouchContainer 并集成到整個運維體系。


阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

PouchContainer 的隔離性非常好,是富容器,可以登錄,看到容器內(nèi)進程自己占的資源量,有多少進程,進程掛了容器是不會掛的,可以運行很多的進程。兼容性很好, 舊版本內(nèi)核也支持,對利舊很有幫助。同時經(jīng)過了百萬級容器部署的規(guī)?;炞C,我們研發(fā)了一套 P2P 鏡像分發(fā)機制,大幅度提升分發(fā)效率。同時兼容了業(yè)界更多標準,推動標準的建設(shè),支持 RunC 、RunV 、RunLXC 等,經(jīng)過百萬級容器規(guī)模的考驗,穩(wěn)定高效,是企業(yè)全面容器化的最佳選擇。

阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解

PouchContainer 的結(jié)構(gòu)是比較清晰的,Pouchd 如何跟 kubelet、swarm、Sigma 交互。在存儲上跟業(yè)界一起建設(shè)了 CSI 標準。支持分布式存儲如 ceph、pangu。在網(wǎng)絡(luò)上使用 lxcfs 增強隔離性,支持多種標準。

目前 PouchContainer 化覆蓋了阿里的大部分 BU,2017 年達到百萬級部署,在線業(yè)務(wù)達到 100% 容器化,計算任務(wù)也開始容器化,它拉平了異構(gòu)平臺的運維成本。覆蓋運行模式,多種編程語言,DevOps 體系。PouchContainer 覆蓋了阿里幾乎所有業(yè)務(wù)板塊如螞蟻、交易、中間件等等。

PouchContainer 于 2017 年 10 月 10 號宣布開源,11 月 19 日正式開源,計劃在 2018 年 03 月發(fā)布第一個大版本。我們希望通過 PouchContainer 的開源推動容器領(lǐng)域的發(fā)展和標準的成熟,給業(yè)界提供差異化有競爭力的技術(shù)選擇。不僅方便傳統(tǒng) IT 企業(yè)利舊,老的基礎(chǔ)設(shè)施也同樣能夠享受云源生技術(shù)帶來的好處和優(yōu)勢,而且方便新的 IT 企業(yè)享受規(guī)?;€(wěn)定性和多標準兼容性帶來的優(yōu)勢。

PouchContainer 開源地址:https://github.com/alibaba/pouch

云化架構(gòu)


云化架構(gòu)運維體系

將集群分為在線任務(wù)集群、計算任務(wù)集群和 ECS 集群。資源管理,單機運維、狀況管理,命令通道、監(jiān)控報警這類基礎(chǔ)運維體系已經(jīng)打通。在雙 11 場景中,我們會在云上劃出一個獨立的區(qū)域與其他場景互通。在互通區(qū)域,Sigma 調(diào)度可以到計算集群服務(wù)器里申請資源,生產(chǎn) Pouch 容器,也可以到 cloud open API 去申請 ECS,生產(chǎn)出容器的資源。在日常的場景中 Fuxi 可以到 sigma 里申請資源,創(chuàng)建需要的容器。

在雙 11 場景中,利用規(guī)?;\維系統(tǒng)在容器上構(gòu)建大量在線服務(wù),包括業(yè)務(wù)層的混合部署,每個集群都有 online service 和有狀態(tài)服務(wù)及大數(shù)據(jù)分析。阿里云的獨占集群也部署了在線服務(wù)和有狀態(tài)的數(shù)據(jù)服務(wù),做到了 datacenter as a computer,多個數(shù)據(jù)中心像一臺計算機一樣來管理,實現(xiàn)跨多個不同的平臺來調(diào)度業(yè)務(wù)的發(fā)展所需要的資源。構(gòu)建了混合云用極低的成本拿到服務(wù)器,解決有沒有的問題。

先有服務(wù)器規(guī)模,再通過分時復(fù)用和混合部署來大幅度提升資源利用率。真正實現(xiàn)了彈性資源平滑復(fù)用任務(wù)靈活混合部署,用最少的服務(wù)器最短的時間和用最優(yōu)效率完成業(yè)務(wù)容量目標。通過這一套云化架構(gòu),我們在雙 11 實現(xiàn)了新增 IT 成本降低 50%,使日常 IT 成本下降 30%,帶來了集群管理和調(diào)度領(lǐng)域的技術(shù)價值爆發(fā),也說明容器、編排調(diào)度技術(shù)的流行是一種必然。

阿里調(diào)度系統(tǒng)團隊,致力于打造全球效率最優(yōu)的調(diào)度和集群管理系統(tǒng),通過企業(yè)級容器和容器平臺建設(shè)最優(yōu)云化解決方案。期待和業(yè)界同仁一起努力,降低整個行業(yè)的IT成本,加速企業(yè)的創(chuàng)新發(fā)展。



阿里巴巴 Sigma 調(diào)度和集群管理系統(tǒng)架構(gòu)詳解


叔同(丁宇),阿里巴巴資深技術(shù)專家,8 次參與雙 11 作戰(zhàn),阿里高可用架構(gòu)、雙 11 穩(wěn)定性負責人,阿里容器、調(diào)度、集群管理、運維技術(shù)負責人。

阿里巴巴調(diào)度系統(tǒng)團隊為阿里巴巴經(jīng)濟體提供調(diào)度、容器和集群管理基礎(chǔ)設(shè)施,推動阿里巴巴全面云化效率成本最優(yōu),為阿里經(jīng)濟體和云業(yè)務(wù)提供充足的技術(shù)競爭力。致力于打造全球領(lǐng)先、效率最優(yōu)的調(diào)度集群管理系統(tǒng)和高效穩(wěn)定的企業(yè)級富容器引擎。

Pouch 容器團隊為阿里巴巴經(jīng)濟體提供基礎(chǔ)設(shè)施領(lǐng)域的容器技術(shù),幫助阿里巴巴全面實現(xiàn)業(yè)務(wù)容器化,打好集團“云化”戰(zhàn)略堅實的基礎(chǔ)。團隊致力于打造全球領(lǐng)先、高效穩(wěn)定的企業(yè)級富容器引擎。

一個優(yōu)秀的團隊永遠都在渴望人才的加入,如果你希望進入技術(shù)核心挑戰(zhàn)計算機的極限,請加入我們;如果你希望和專注、優(yōu)秀的人共事,請加入我們;如果你有一顆對優(yōu)雅代碼「執(zhí)著」的內(nèi)心,請加入我們!

以下崗位永久開放:Golang 工程師、Java 工程師、調(diào)度架構(gòu)師、容器架構(gòu)師、混部架構(gòu)師、集群資源管理研發(fā)專家、容器 PaaS 平臺技術(shù)專家、企業(yè)容器平臺解決方案架構(gòu)師等......

內(nèi)推通道:xianshu.lj@alibaba-inc.com



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI