基于Docker的混合云架構(gòu)與應(yīng)用實踐_第1頁
基于Docker的混合云架構(gòu)與應(yīng)用實踐_第2頁
基于Docker的混合云架構(gòu)與應(yīng)用實踐_第3頁
基于Docker的混合云架構(gòu)與應(yīng)用實踐_第4頁
基于Docker的混合云架構(gòu)與應(yīng)用實踐_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、微博DCP基于Docker的混合云架構(gòu)與應(yīng)用實踐主要分享內(nèi)容一、背景、挑戰(zhàn)與實現(xiàn) 二、基礎(chǔ)設(shè)施三、彈性調(diào)度四、Weibo DCP編排 五、春晚實戰(zhàn)與總結(jié) Part1Weibo DCP 背景、挑戰(zhàn)與實現(xiàn)業(yè)務(wù)量日志:百T+RPC:萬億+ 接口:600億+運(yùn)維Docker:80% 擴(kuò)縮容:5min 變更:30次/w系統(tǒng)設(shè)備:萬+ 集 群 :500+ 業(yè)務(wù)線:100+微博技術(shù)平臺KPISLA:99.99%RT:50ms 故障分: V2n storage driver:Cephn docker-registry-frontend:Nginx內(nèi)網(wǎng)阿里云業(yè)務(wù)集群業(yè)務(wù)集群分布式存儲RegistryRegist

2、ryRegistry鏡像緩存MirrorDocker Registryl 鏡像服務(wù)n 分層設(shè)計,逐層復(fù)用n 基礎(chǔ)環(huán)境/運(yùn)行時/容器/業(yè)務(wù)n 優(yōu)化大小,dockerignoren 禁止使用latest鏡像分層服務(wù)DNS智能解析微博阿里云DNS2VPC網(wǎng)絡(luò)DNS1TomcatTomcatSLBDNS1未劫持,回微博解析DNS2被劫持,直接返回DCP中SLB的應(yīng)用DNS1DNS2SLB1SLB2lDNS高可用SLBlRegistry負(fù)載均衡Registry1Registry2Registry3SLBl快速水平擴(kuò)容用戶關(guān)系服務(wù)1用戶關(guān)系服務(wù)2Add more 紅包飛1紅包飛2專線網(wǎng)絡(luò)架構(gòu)聯(lián)通 土城微博

3、阿里云聯(lián)通 可用區(qū)C/24電信 永豐電信 可用區(qū)A/16日常、春節(jié)專線10GVPN網(wǎng)絡(luò)春節(jié)10GVPC網(wǎng)絡(luò)routeroutel通過路由配置分散兩條專線壓力,可隨時切換lVPN做備用l不同業(yè)務(wù)劃分網(wǎng)段,便于監(jiān)控專線帶寬使用情況測試CPU:sysbench -test=cpu -cpu-max-prime=10000 runsysbench -test=threads -num-threads=64 -thread-yields=2000 -thread-locks=2 run測試磁盤:fio-direct=1-iodepth=64-rw=randwrite-ioengine=libaio-bs

4、=16k-size=10G- numjobs=1 -runtime=1000 -group_reporting -name=/path/testfile測試內(nèi)存:mbw -q -n 10 256測試帶寬:netperf -H host -l second -t TCP_STREAM|UDP_STREAM|TCP_RR|TCP_CRR|UDP_RR -s localBufferSize -S remoteBufferSize -m localPackageSize -M remotePackageSize -D TCP_NODELAY測試業(yè)務(wù)公有云單機(jī)性能瓶頸 Part3 Weibo DCP 彈

5、性調(diào)度彈性調(diào)度 - 選型彈性調(diào)度 選型接口層Schedule Rest APIAPI1API2API3API4服務(wù)層服務(wù)池動 態(tài)擴(kuò)縮容跨池調(diào)度 指定歸還單機(jī)業(yè)務(wù) 灰度多實例 部署容量 評估跨IDC調(diào)度高可用 調(diào)度容器與主機(jī)容 器差異化主機(jī)操作系統(tǒng) Centos6.x、7.x差異化主機(jī)資源環(huán)境16core 16mem、 4core 8mem需求: 快速迭代 實現(xiàn)內(nèi)網(wǎng) 計算資源 統(tǒng)一管理 調(diào)配,公 有云上獲 得計算資 源,快速 自動化資 源調(diào)度與 應(yīng)用部署故障自動 回復(fù)擴(kuò)縮容 監(jiān)控調(diào)度算法容器資源 與策略監(jiān)控不同資源 調(diào)度框架彈性調(diào)度系統(tǒng)RoamIDC、Service、策略、內(nèi)存、數(shù)量 Sched

6、ule Adapter APIDemonSwarmMesosYarnDocker 容器調(diào)度框架自定義調(diào)度服務(wù)發(fā)現(xiàn)容量評估監(jiān)控報警JavaPHPCLOUDHadoop非容器資源管理動態(tài)調(diào)度 Swarm架構(gòu)調(diào)度性能、調(diào)度算法HA Swarm Master、Mutil IDC分組調(diào)度、Schedule Policy動態(tài)調(diào)度 多IDC、高可用、可擴(kuò)展Swarm 調(diào)度策略ll l調(diào)度=主機(jī) or 容器過濾 +策略選擇l過濾器filterNode Filters:health(會根據(jù)節(jié)點(diǎn)狀態(tài)進(jìn)行過濾,會去除故障節(jié)點(diǎn))、 constraint(約束過濾器、Label分組調(diào)度)Container Config

7、uration Filters:affinity(親和性過濾器)、denpendency(依賴過濾器)、Port(會根據(jù)端口的使用情況過濾)調(diào)度策略根據(jù)各個節(jié)點(diǎn)的可用的CPU, Mem及正在運(yùn)行的容器的數(shù)量來計算應(yīng)該運(yùn)行容器的節(jié)點(diǎn)進(jìn)行打分,剔除掉資源不足的主機(jī),然后策略選擇:spread、binpack、randomBinpack:在同等條件下,選擇資源使用最多的節(jié)點(diǎn)Spread:在同等條件下,選擇資源使用最少的節(jié)點(diǎn)Random:隨機(jī)選擇一個調(diào)度顆粒度nMemory:docker run m 1g nCPU:docker run c 1 Swarm調(diào)度算法if config.CpuShares

8、 0 cpuScore = (node.UsedCpus + config.CpuShares)* 100 / nodeCpus/cpuScore=(物理機(jī)已用CPU+本次需用CPU)*100/物理機(jī)CPU/ nodeMemoryif config.Memory 0 memoryScore = (node.UsedMemory + config.Memory) * 100/memScore=(物理機(jī)已用內(nèi)存+本次需用內(nèi)存)*100/物理機(jī)內(nèi)存資源只與容器Create時配置有關(guān),與運(yùn)行時實際使用資源情況無關(guān)。無論容器是否 由Swarm創(chuàng)建,無論容器處在何種狀態(tài),只要配置了資源限額,調(diào)度時均會計算

9、在 內(nèi)!動態(tài)調(diào)度 Roam提供通用HTTP API,適配不同分布式資源調(diào)度框架不同調(diào)度策略與算法HA Swarm Master高可用多機(jī)房自動適配單IP Docker Deamon下發(fā)執(zhí)行機(jī)制容器資源監(jiān)控擴(kuò)縮容監(jiān)控容器資源評估 Part4 Weibo DCP 編排與實現(xiàn)DCP-功能模塊圖DCP-編排層設(shè)計公有云:阿里云設(shè)備BufferPool服務(wù)池SrvPool集群Groupl 核心問題:設(shè)備從哪來?l 設(shè)備方案:內(nèi)網(wǎng)共享池 + 公有云=BufferPooll 服務(wù):IP + Port私有云:共享池層級關(guān)系l DCP:分為多個集群l 集群:為獨(dú)立平臺,對應(yīng)業(yè)務(wù)線n 集群內(nèi):自由調(diào)度(跨池)n

10、集群外:配額調(diào)度l 服務(wù)池:同一業(yè)務(wù)線的同構(gòu)服務(wù)l 設(shè)備:buffer池 = 共享池 + ECSDCP-大規(guī)模集群擴(kuò)容方式私有內(nèi)彈性擴(kuò)容私有云、公有云同時彈性擴(kuò)容擴(kuò)容到公有云彈性DCP-大規(guī)模集群擴(kuò)/縮容自動化123設(shè)備申請初始化服務(wù)上線l設(shè)備申請n內(nèi): 共享池n外: 阿里云l初始化n包標(biāo)準(zhǔn)化n配置管理l服務(wù)上線n容器動態(tài)調(diào)度n服務(wù)彈性擴(kuò)縮容DCP-大規(guī)模集群第一步:設(shè)備l 私有云:共享池(離線集群,低負(fù)載集群,錯峰)l 公有云:阿里云(動態(tài)創(chuàng)建)業(yè) 務(wù) 管 理 員 視 圖集群內(nèi) 跨池調(diào)度縮容 服務(wù)池A集群外Buffer足集群外Buffer不足直接使用向共享池 發(fā)起申請共享池通過后通知申請者

11、進(jìn)行審批劃撥設(shè)備入buffer池查看申請配額1配額2通過后向共享池 增加配額發(fā)起申請。12配額足配額不足DCP-設(shè)備申請案例:阿里云主機(jī)DCP-大規(guī)模集群第二步:初始化設(shè)備申請內(nèi)網(wǎng)共享池DCP初始化流程阿里云ECS集群-buffer池初始化API初始化報告PuppetAnsible線上案例DCP-初始化報告DCP-大規(guī)模集群第三步:擴(kuò)容l 擴(kuò)容n 輸入:服務(wù)池名稱、服務(wù)類型,容器類型、數(shù)量、鏡像地址等n 輸出:擴(kuò)容報告l 記賬中心n資源擁有者、使用方、型號、使用時間、日期、信用等l 容器服務(wù)類型:按照dPxx(dockerPxx)命名dP018核12GdP02 12核12GdP03 12核16

12、GdP04 16核16GDCP-擴(kuò)容操作任務(wù)化DCP-擴(kuò)容任務(wù)耗時DCP-彈性擴(kuò)容:流程管理員混合云平臺發(fā)起請求1.資源評估調(diào)度中心5.發(fā)起容器調(diào)度服務(wù)6.部署服務(wù)Consul集群Buffer池資源不足2.配額評估配額模塊初始化模塊監(jiān)控中心4/7層模塊ConfigSrv一鍵擴(kuò)容流量接入模塊7.服務(wù)注冊服務(wù)檢查內(nèi)部網(wǎng)絡(luò)VIP/NginxPHPVIP/Nginx內(nèi)部網(wǎng)絡(luò)APIAPIMotan/ConfigServiceServiceServiceService內(nèi)部網(wǎng)絡(luò)MCQueueMysqlHBaseRedis.Remind PHPHongbao PHP公有云內(nèi)部網(wǎng)絡(luò)LBLBFeed RPCRem

13、ind APIHongbao APIMotan/ConfigServiceMCQueueRedis公有云內(nèi)部網(wǎng)絡(luò)friendunread關(guān)鍵點(diǎn):服務(wù)發(fā)現(xiàn)新擴(kuò)容的節(jié)點(diǎn)在哪里? 遷移多少流量?跨 云 的 服 務(wù) 發(fā) 現(xiàn) 與 流 量 調(diào) 度流量要快速、安全的切到彈性節(jié)點(diǎn)服務(wù)發(fā)現(xiàn)-業(yè)界常用方案問題:Reload損耗開源解決方案大多利用Nginx的Reload機(jī)制性能損耗情況:u 請求量:普通reload會導(dǎo)致吞吐量下降10%u 平均耗時: 差異不大服務(wù)發(fā)現(xiàn)-微博方案微博方案 - nginx-upsync-moduleNginx Plus的開源版支持基于Consul自動服務(wù)發(fā)現(xiàn)開源 :/weibocom

14、/nginx-upsync-moduleNginxworkerworkerworkerdocker-serverbackend-serverConsulupsync-modulecore-modulepullpullpullregisterNginx Upsync-自適配后端處理能力彈性節(jié)點(diǎn)的處理能力不對等server 10.xx.xx.xx:xxxx max_fails=0 fail_timeout=30sweight=20; #同樣的權(quán)重導(dǎo)致單點(diǎn)性能惡化節(jié)點(diǎn)注冊計算能力所有節(jié)點(diǎn)默認(rèn)權(quán)重是20;公有云有20%性能損耗,權(quán)重=16;RPC-Motan RPC服務(wù)發(fā)現(xiàn)Motan流量路由模型優(yōu)先匹

15、配單IDCIDC間切換一般僅在故障處理時采用新版Motan已支持按流量權(quán)重配置定向路由motan clientmotan servermotan clientmotan serverConfig ServiceIDC AIDC Bmotan serverCloud IDCDCP-防御體系框架DCP-監(jiān)控分類案例DCP-三節(jié)保障:監(jiān)控體系DCP-監(jiān)控覆蓋度:單機(jī)維度往往系能惡化是由于單機(jī)問題引起 如何快速定位有問題的機(jī)器?單機(jī)性能惡化業(yè)務(wù)容器級報警DCP-三節(jié)保障:容量決策l 根據(jù)服務(wù)池單機(jī)平均系統(tǒng)指標(biāo)(CPU idle、mem load)、QPS、帶寬、業(yè)務(wù)SLA綜合指標(biāo)容量評估DCP-三節(jié)保

16、障:預(yù)案&干預(yù)l 預(yù)案:100+u日常&應(yīng)急預(yù)案u重大活動,三節(jié)等預(yù)案手冊l 服務(wù)降級:5000+l 有效的干預(yù)手段出發(fā) Part5 春晚實戰(zhàn)&總結(jié) 微博混合云DCP成果3min10臺基礎(chǔ)設(shè)施ECS 創(chuàng)建【日?!?00臺服務(wù)器初始化流程整點(diǎn)開始操作3min阿里云建100機(jī)器3min阿里云初始化3min預(yù)熱鏡像3min拉鏡像操作1minAnsible初始化2minRegistry初始化3min阿里云建100機(jī)器3min阿里云初始化3min拉鏡像操作【日?!棵慷?00臺多3分鐘基礎(chǔ)設(shè)施:Docker Registry、Ansible 初始化:Ansible、Registry依賴環(huán)境安裝 預(yù)熱鏡像:

17、鏡像倉庫預(yù)熱拉鏡像:單容器700M,改造為公共容器鏡像在VM鏡像70M3min容器啟動、七層變更70項目介紹:阿里云多機(jī)房部署71項目介紹:高可用、可擴(kuò)展緩存集群node1node2Masternode3node1node2Slavenode3L1n1n2n3n1n2n3Client (get)三節(jié)保障與阿里云部署NginxWebRPCMC/RedisMysql/HBase永豐LVS阿里云SLBNginxWebRPCMC/Redis土城LVSNginxWebRPCMC/RedisMysql/HBase微博DCP-春晚作戰(zhàn)圖-各業(yè)務(wù)方5-各業(yè)務(wù)方占用帶寬1-機(jī)房服務(wù)器個數(shù)2-專線帶寬3-服務(wù)池容器水位4-服務(wù)池

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論