內(nèi)容來源:2017年2月25日芽突,華為PaaS性能專家鐘成在“Rancher容器實戰(zhàn)分享季-杭州站之西湖春的喚醒”進(jìn)行《FusionStage2.0—華為云容器實踐》演講分享蘸吓。IT 大咖說(ID:itdakashuo)作為獨家視頻合作方乍惊,經(jīng)主辦方和講者審閱授權(quán)發(fā)布。
閱讀字?jǐn)?shù):3187?| 5分鐘閱讀
獲取嘉賓演講視頻回放及PPT,請點擊:http://t.cn/EPMR9Rl
摘要
介紹華為基于kubernetes打造的云化軟件基礎(chǔ)設(shè)施:FusionStage2.0。包括應(yīng)用開發(fā)流水線框架恕刘,應(yīng)用調(diào)度與資源管理框架,微服務(wù)運行與治理框架這三大組件抒倚,以及在這個過程中研發(fā)的關(guān)鍵技術(shù)與特性褐着,及在CNCF開源社區(qū)的活動。
全面云化的問題和挑戰(zhàn)
挑戰(zhàn)1
大規(guī)模分布式應(yīng)用難以開發(fā)托呕、測試含蓉、運維。
廣義摩爾定律并未失效:單芯片的晶體管集成度放緩项郊,但云計算領(lǐng)域的價格隨著規(guī)模變大馅扣、硬件降價后依然可以維持摩爾定律,企業(yè)和個人使用分布式應(yīng)用的成本降低着降。
大數(shù)據(jù)差油、人工智能類應(yīng)用的興起:傳統(tǒng)商業(yè)應(yīng)用更注重于業(yè)務(wù)處理,而隨著大數(shù)據(jù)和人工智能成為新的商業(yè)競爭力任洞,進(jìn)一步推動分布式應(yīng)用的廣泛使用厌殉。
分布式應(yīng)用的部署運維依然艱難:除了像Google食绿,F(xiàn)acebook這樣的公司,大部分公司還停留在手工運維大量機(jī)器的時代公罕。
挑戰(zhàn)2
臃腫的單體應(yīng)用架構(gòu)無法滿足日趨敏捷和快速的客戶要求。
大代碼基線耀销、錯綜復(fù)雜依賴的單體應(yīng)用架構(gòu)楼眷,導(dǎo)致往往新增一個小特性需要數(shù)月到半年之久。
開發(fā)周期長:龐大代碼基線熊尉,涉及100~200人團(tuán)隊開發(fā)維護(hù)罐柳;組件耦合大、責(zé)任不清楚狰住,牽一發(fā)而動全身张吉。
部署慢、擴(kuò)容慢:部署過程不可重復(fù)催植、出錯率高肮蛹;不支持自動彈性伸縮。
升級難:固定時間窗创南、集中大規(guī)模人力中斷服務(wù)升級伦忠。
挑戰(zhàn)3
煙囪式應(yīng)用系統(tǒng)構(gòu)建,難于共享稿辙,資源利用率低昆码。
靜態(tài)資源分配、分散管理:各分散的業(yè)務(wù)部門通常按照規(guī)劃的最大資源申請物理機(jī)邻储、虛機(jī)資源赋咽,物理資源仍被私有化,無法實現(xiàn)共享吨娜,利用率低脓匿。通常數(shù)據(jù)中心利用率在10% ~ 20%。
應(yīng)用架構(gòu)七國八制:技術(shù)架構(gòu)萌壳、中間件有各業(yè)務(wù)部門(合作ISV)獨立選型亦镶、采購,OS袱瓮、中間件選擇不統(tǒng)一缤骨,類型眾多。
IaaS通過虛擬化的技術(shù)實現(xiàn)物理資源的池化尺借,但往往由于人為靜態(tài)獨占資源绊起,并不能很好的解決共享和資源利用率的問題。
挑戰(zhàn)4
開發(fā)(Dev)與生產(chǎn)運維(Ops)割裂燎斩,無法實現(xiàn)端到端自動化虱歪。
資源獲取和研發(fā)環(huán)境準(zhǔn)備效率低蜂绎,通常需要走冗長的審批流程,缺乏標(biāo)準(zhǔn)化笋鄙、服務(wù)化和自助式IT能力师枣。
部門墻厚導(dǎo)致代碼到業(yè)務(wù)上線周期長:開發(fā)人員不知道最終如何部署、測試人員不清楚測試重點和風(fēng)險點萧落、運維人員不了解架構(gòu)由來和約束等践美。
割裂式的研發(fā)模式無法實現(xiàn)代碼到上線的端到端自動化,業(yè)務(wù)開發(fā)上線周期長找岖,運維效率低陨倡。
當(dāng)前業(yè)界的三個生態(tài)
DockerSwarm
部署容易:內(nèi)置于最流行的DockerEngine內(nèi),部署安裝比較簡單许布,僅需要2個命令兴革。
無中心化設(shè)計:通過Raft協(xié)議形成一個多節(jié)點集群,沒有外置的一致性存儲(etcd, zookeeper)蜜唾,也沒有中心節(jié)點杂曲。
網(wǎng)絡(luò)和抽象支持不足:libnetwork的支持程度不如CNI,僅支持overlay網(wǎng)絡(luò)灵妨,使用概念大多從kubernetes借鑒而來解阅。
Mesos
生態(tài)成熟:支持目前大多數(shù)大數(shù)據(jù)應(yīng)用,Hadoop泌霍,Spark货抄,Storm…
二層調(diào)度:下層調(diào)度框架給上層調(diào)度框架提供粗粒度的資源offer請求,上層使用調(diào)度算法將任務(wù)分配到這些資源上朱转。
使用門檻較高:需要分布式應(yīng)用開發(fā)者有獨立的調(diào)度算法開發(fā)能力蟹地,且使用C++開發(fā),周邊支持較弱藤为。
Kubernetes
抽象概念合理:Pod怪与,Service,ClusterIP缅疟,Label分别,ReplicaSet,StatefulSet…
和具體容器實現(xiàn)解耦:支持docker/rkt等存淫,僅把容器當(dāng)成一種特殊的運行時耘斩。
和I層對接還有待完善:組件較多,在多種公有云上部署還需要獨立的集群管理組件桅咆,存儲括授、網(wǎng)絡(luò)均依賴于I層。
FusionStage2.0介紹
傳統(tǒng)IT全面云化轉(zhuǎn)型的三階段漸進(jìn)式演進(jìn)建議
從大企業(yè)IT轉(zhuǎn)型實踐看,傳統(tǒng)企業(yè)應(yīng)用架構(gòu)發(fā)展需要經(jīng)歷三個階段荚虚。
虛擬化:大團(tuán)隊開發(fā)周期長薛夜、手工式運維、利用率低10~20%版述。
自動化:具備部分DevOps能力梯澜,自動部署與伸縮、提升利用率50%渴析。
AllCloud:兼容微服務(wù)和傳統(tǒng)服務(wù)并存腊徙,全自動化運維、線性無極伸縮檬某,利用率70%。
PaaS平臺是企業(yè)IT云化轉(zhuǎn)型三階段演進(jìn)的核心平臺螟蝙。PaaS核心是封裝應(yīng)用系統(tǒng)云化恢恼、微服務(wù)化的分布式復(fù)雜性。三個階段是需求驅(qū)動的胰默,各個應(yīng)用可以根據(jù)自己的需求選擇场斑。
Fusion Stage平臺功能定義
微服務(wù)治理框架:為應(yīng)用提供自動注冊、發(fā)現(xiàn)牵署、治理漏隐、隔離、調(diào)用分析等一系列分布式/微服務(wù)治理能力奴迅,屏蔽分布式系統(tǒng)的復(fù)雜度青责。
應(yīng)用調(diào)度與資源管理框架:打通從應(yīng)用建模、編排部署到資源調(diào)度取具、彈性伸縮脖隶、監(jiān)控自愈的生命周期管理自動化。
應(yīng)用開發(fā)流水線框架:打通從編寫代碼提交到自動編譯打包暇检、持續(xù)集成产阱、自動部署上線的一系列CI/CD全流程自動化。
云中間件服務(wù):應(yīng)用云化所需的數(shù)據(jù)庫块仆、大數(shù)據(jù)构蹬、通信和應(yīng)用中間件服務(wù);通過服務(wù)集成管控可集成傳統(tǒng)非云化的中間件能力悔据。
一庄敛、應(yīng)用調(diào)度與資源管理框架
以應(yīng)用為中心進(jìn)行統(tǒng)一資源管理和調(diào)度,易于管理蜜暑。
混合編排:擴(kuò)展Kubernetes的Pod定義铐姚,用于部署進(jìn)程類應(yīng)用。
統(tǒng)一資源管理:支持對接主流異構(gòu)I層(OpenStack, Vmware…)。
關(guān)鍵特性:跨DC/Region/AZ的部署和管理隐绵。
跨域集中部署:RDC之众、DC、AZ依许、集群等層次化部署棺禾。
應(yīng)用建模設(shè)計器:免除腳本編寫部署描述文件,支持靈活的部署策略峭跳。
感知應(yīng)用的部署算法:親和性——就近部署膘婶,就近路由,減少網(wǎng)絡(luò)消耗蛀醉;反親和性——高可靠性考慮悬襟,減少宕機(jī)影響,避免干擾拯刁。
關(guān)鍵特性:通過聯(lián)邦技術(shù)實現(xiàn)應(yīng)用多集群資源共享脊岳。
按集群特性調(diào)度:某些應(yīng)用只支持部署到特定集群上,例如特定的region垛玻,特定的服務(wù)提供商等割捅。
集群間應(yīng)用自動遷移:在某個集群容量溢出,或故障時帚桩,應(yīng)用能夠自動在不同集群間遷移亿驾。
跨云管理:能夠?qū)⒇?fù)載部署在不同的云提供商,并能夠很容易的在不同的云提供商之間自動的增加账嚎,減少業(yè)務(wù)量莫瞬,自動遷移。
擴(kuò)展集群規(guī)模:百級集群醉锄,千級主機(jī)乏悄,萬級容器。
二恳不、微服務(wù)運行與治理框架
多語言:支持多語言的原生接口檩小。
可擴(kuò)展:提供可擴(kuò)展框架,支持不斷擴(kuò)展微服務(wù)的高級能力烟勋。
高性能:鏈路復(fù)用规求、按需建鏈等技術(shù)實現(xiàn)高性能服務(wù)通信。
高可靠:采用可隔離倉卵惦、熔斷機(jī)制等技術(shù)阻肿,保障用戶應(yīng)用的高可靠性。
可監(jiān)控:采用跟蹤鏈分析沮尿,可監(jiān)控端到端服務(wù)調(diào)用鏈丛塌、各服務(wù)的調(diào)用頻率较解、時延等各項指標(biāo)。
關(guān)鍵特性:開放微服務(wù)治理架構(gòu)赴邻,支持多語言印衔、多技術(shù)堆棧微服務(wù)互通。
統(tǒng)一微服務(wù)治理標(biāo)準(zhǔn):通過服務(wù)治理客戶端姥敛,處理微服務(wù)與服務(wù)治理中心的交互奸焙。
插件式多協(xié)議自動轉(zhuǎn)換:提供協(xié)議插件框架,支持協(xié)議插件熱拔插彤敛,通過協(xié)議插件與不同通信協(xié)議對接与帆。
跨技術(shù)堆棧互通:使用RESTFul墨榄,自定義高效RPC等多種協(xié)議玄糟,保證高效的跨語言微服務(wù)通信的能力。
關(guān)鍵特性:海量微服務(wù)調(diào)用鏈跟蹤和監(jiān)控袄秩,支持與客戶現(xiàn)有監(jiān)控系統(tǒng)進(jìn)行對接茶凳。
支持平臺、資源播揪、應(yīng)用的監(jiān)控和微服務(wù)調(diào)用鏈分析。
大規(guī)模:支持百萬容器監(jiān)控筒狠,秒級查詢響應(yīng)猪狈。
兼容集成:和企業(yè)現(xiàn)有監(jiān)控系統(tǒng)的對接,保證運維人員的體驗辩恼。
高可用:調(diào)用鏈跟蹤與協(xié)議無關(guān)雇庙,非侵入,低損耗灶伊。
關(guān)鍵特性:中間件服務(wù)的統(tǒng)一接入與管控疆前。
集中管理所有服務(wù),統(tǒng)一的服務(wù)模式聘萨;
應(yīng)用透明服務(wù)模式竹椒,應(yīng)用開發(fā)不需要修改;
支持第三方服務(wù)接入米辐,可以擴(kuò)展企業(yè)既有中間件胸完;
提供標(biāo)準(zhǔn)化的中間件服務(wù)的接入和管理的能力。包括部署和伸縮管理翘贮,實例監(jiān)控赊窥,計量等功能。
三狸页、高性能锨能、靈活定制的應(yīng)用開發(fā)流水線框架
挑戰(zhàn)和訴求:
軟件環(huán)境供給慢:開發(fā)環(huán)境分散管理,開發(fā)環(huán)境配置發(fā)放慢(~1周)。
環(huán)境不一致出錯率高:整個開發(fā)環(huán)境由不同部門人員運維址遇,開發(fā)人員自行部署熄阻、配置中間件、依賴包等傲隶,出錯率高饺律。
保持現(xiàn)有使用習(xí)慣:已經(jīng)在現(xiàn)網(wǎng)使用的工具鏈如何保留。
關(guān)鍵技術(shù):
可定制化流水線:流水線流程可按客戶的組織定義進(jìn)行定制跺株。通過自定義流水將所有步驟串聯(lián)复濒,實現(xiàn)全流程自動化。
客戶工具插件式接入:客戶現(xiàn)網(wǎng)使用的工具可以通過插件的方式接入乒省。
ELB服務(wù):高可靠巧颈、高性能彈性負(fù)載均衡
華為內(nèi)部廣泛使用,雙11搶購考驗袖扛,保障高性能高可靠砸泛;
提供跨AZ的負(fù)載分發(fā)能力,提高可靠性和運維便利性蛆封;
提供自動彈性擴(kuò)展能力唇礁,可以按流量自動調(diào)整規(guī)格;
部署支持線性可擴(kuò)展惨篱,無單點故障盏筐;
提供私網(wǎng)和公網(wǎng)兩種類型;
支持L4和L7負(fù)載均衡砸讳;
支持Https協(xié)議和證書管理琢融;
DCS服務(wù):高速分布式緩存DCS
使用特點:高性能讀寫(百萬級并發(fā)),數(shù)據(jù)量G級別簿寂,多種數(shù)據(jù)類型漾抬,需要持久化。
解決問題:提高數(shù)據(jù)查詢和讀寫效率常遂,減輕管理維護(hù)工作量纳令,降低數(shù)據(jù)庫存儲成本。
DMS服務(wù):高可用克胳、分布式消息中間件服務(wù)DMS
提供WEB Console管理消息隊列泊碑;
提供消息API?使用消息隊列;
支持消息隊列的創(chuàng)建毯欣、查看馒过、刪除坝茎;
支持消息隊列的消息發(fā)送和消息消費缨该;
支持多個消費組同時對一個消息隊列的消息進(jìn)行消費;
支持消息API訪問的安全認(rèn)證没隘;
支持消息隊列的使用統(tǒng)計監(jiān)控。
今天的分享就到這里窘奏,謝謝大家嘹锁!