版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于CloudFoundry的私有云平臺(tái),@王煒煜,百度運(yùn)維部weibo.com/wwy16402013-7-19,內(nèi)容,背景與目標(biāo)實(shí)踐與改造(Part 1、2)流程與標(biāo)準(zhǔn)改變運(yùn)維未來(lái)計(jì)劃,1. 背景與目標(biāo),運(yùn)維與PaaS,Storage,Servers,Networking,O/S,Middleware,Virtualization,Data,Applications,Runtime,OP(SRE),運(yùn)維,PaaS (a
2、nd IaaS),目標(biāo),自動(dòng)化業(yè)務(wù)的生命周期管理,如變更、監(jiān)控、故障處理等資源利用率、彈性標(biāo)準(zhǔn)化流程實(shí)例標(biāo)準(zhǔn)系統(tǒng)環(huán)境、runtime、framework一體化集成第三方服務(wù),如DB、Cache、log、FS等與其他系統(tǒng)平臺(tái)聯(lián)動(dòng),Why CloudFoundry ?,,自動(dòng)化,標(biāo)準(zhǔn)化,一體化,機(jī)器管理(下游部門(mén)),Why CF ?,,自動(dòng)化,一體化,標(biāo)準(zhǔn)化,2. 實(shí)踐與改造(Part1)Java,base on c
3、f 1.0,Java Apps,產(chǎn)品種類 >100APP >200實(shí)例>2000平均單實(shí)例10G(內(nèi)存)日均總pv > 10億APP的開(kāi)發(fā)及測(cè)試人員 > 700人Tomcat5/6/7、jdk1.5/1.6、Standalone,開(kāi)始實(shí)施,準(zhǔn)備工作,,基于CentOS的相關(guān)改造獨(dú)立部署各個(gè)CF組件拆解BOSH、chef,基于物理機(jī)實(shí)施OS環(huán)境初始化apt-get 改為 yumUbunt
4、u-cmd to CentOSDEA(v1.0),agent.rb、secure.rb,yum install -y make gcc gcc-c++ kernel-devel.x86_64 openssl-devel.x86_64 libxml2.x86_64 libxml2-devel.x86_64 libxslt.x86_64 libxslt-devel.x86_64 git.x86_64 sqlite.x86_64 rub
5、y-sqlite3.x86_64 sqlite-devel.x86_64 unzip.x86_64 zip.x86_64 ruby-devel.x86_64 ruby-mysql.x86_64 mysql-devel.x86_64 curl-devel.x86_64 postgresql-libs.x86_64 postgresql-devel.x86_64 zlib-devel.x86_64 readline-devel.x86_6
6、4 ImageMagick.x86_64 ImageMagick-devel.x86_64 php-magickwand.x86_64,集群容量評(píng)估,,實(shí)例數(shù)量,NATS容量評(píng)估單臺(tái)DEA承載的實(shí)例數(shù)(<100),對(duì)NATS-Server壓力影響不大單NATS-Server,保守估計(jì)可承受330臺(tái)DEA,單臺(tái)實(shí)例數(shù)5~30個(gè)多NATS-Server,可擴(kuò)展,延時(shí)(ms),DEA臺(tái)數(shù) (10 ~ 340臺(tái)),單DEA實(shí)例數(shù)
7、(5 ~ 30個(gè)),臨界線330臺(tái)DEA,集群內(nèi),組件冗余、LB設(shè)計(jì),,NATS使用cluster版,多NATS,心跳同步Client 端緩存信息,如果網(wǎng)絡(luò)中斷,則不斷reconnect多NATS負(fù)載均衡(Client > 0.5.beta.6),NATS-Server1,NATS-Server2,,NATS-Client(caching message),NATS-Server1/2, Random list,,,多
8、集群冗余設(shè)計(jì),,多個(gè)獨(dú)立的集群,邏輯互不影響第一層切換,修改DNS A記錄,對(duì)多個(gè)域名(CNAME到此A記錄),統(tǒng)一切到不同的集群第二層切換,修改“接入層”(其應(yīng)用層的功能,可簡(jiǎn)單理解為nginx的反向代理)保證好APP(無(wú)狀態(tài))的容量,或快速擴(kuò)容的預(yù)案,以防止流量切過(guò)來(lái)以后,出現(xiàn)過(guò)載,Baidu GateWayFront End,Router,A記錄,Baidu GateWayFront End,Router,app1,ap
9、p1,CNAME(正式域名),CNAME(正式域名),www.baidu.com CNAME www.a.shifen.com. www.baidu.cn CNAME www.a.shifen.com. www.a.shifen.com. A 119.75.218.77 www.a.shifen.com. A 119.75.217.56,核心組件,分布,Router_1,NATS_1,,,,Route
10、r,NATS,CCHMStager,,,DEA,PG_DBRedis,整體結(jié)構(gòu)(cf1.0),,DEA,Logging,Name Service,Monitoring,jvm,Stager,FilePersistence,HM,Router,CC,Baidu GateWay / Front End,jvm,jvm,API Bridge,UAA,jvm,jvm,jvm,jvm,jvm,,,,,,,,,Router(Cluster
11、02),NATS,DB,,新增功能,支持RPC、單實(shí)例多端口單實(shí)例開(kāi)啟多個(gè)端口,并提供API實(shí)時(shí)查詢IP、端口號(hào)與“名稱服務(wù)”聯(lián)動(dòng),同步動(dòng)態(tài)ip端口與名稱的對(duì)應(yīng)關(guān)系RPC調(diào)用方,根據(jù)名稱直連實(shí)例,DEA server,支持RPC、單實(shí)例多端口,Instance01:port,Instance02:port,API Bridge,,NS server,,,TXT記錄 ip:port ip:port,RPC調(diào)用
12、方,NS client,,,Domain ip:port ip:port,ip_local_port_range10000 ~ 60000,Port池(分配后,有凍結(jié)期)61000 ~ 65000,新增功能,支持JMXAPI實(shí)時(shí)查詢ip與Jconsole端口號(hào),實(shí)現(xiàn)JMX數(shù)據(jù)實(shí)時(shí)采集,DEA,支持 JMX,Instance01: Jconsole 端口,Instance02: Jconsole 端口,{ "i
13、nstances": [ { "index": 0, "state": "RUNNING", "since": 438249600, "jconsole_ip": "10.1.1.1", "jconsole_port":
14、61111 }, { "index": 1, "state": "RUNNING", "since": 438249600, "jconsole_ip": "10.1.1.1", "jconsole_port": 62222
15、},Monitoring Metrics,,,CpuUseRateDaemonThreadCount MemPool_OldGen_UseRate NonHeapMemoryUsage_used TotalCompilationTime TotalPeakThreadCount TotalStartedThreadCount UnloadedClassCount GC_Major_Frequency GC_Major_Time…
16、…,Stager:java \-Dcom.sun.management.jmxremote.port={VCAP_JCONSOLE_PORT}-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false,新增功能,加強(qiáng)健康檢查七層檢測(cè)文件句柄數(shù)檢測(cè),DEA Server,,DEA agent.rb,Heal
17、th Manger,,instance,http可用性,,,instance,CPU,MEM,DISK,……,,,report,加強(qiáng)健康檢查,句柄,DEA(v1.0),邏輯改進(jìn),端口管理問(wèn)題描述單DEA多實(shí)例,并行的端口分配與啟動(dòng),沒(méi)有臨界區(qū),有端口競(jìng)爭(zhēng)的問(wèn)題解決方案借鑒了DEA(v2.0)的邏輯(注:即 DEA_NG,與CF1.0不兼容)設(shè)定 ip_local_port_range 為 10000~61000,作為動(dòng)態(tài)端口的
18、范圍將61001~65000,作為DEA的調(diào)度分配端口對(duì)分配的端口,增加“[釋放時(shí)間、端口號(hào)]”的數(shù)據(jù)結(jié)構(gòu)通過(guò)延時(shí)釋放端口,解決了端口競(jìng)爭(zhēng)的問(wèn)題備注CF2.0中,已解決此問(wèn)題,方法同上,DEA(v1.0),邏輯改進(jìn),實(shí)例資源信息管理問(wèn)題描述du命令算實(shí)例磁盤(pán)空間,時(shí)間較長(zhǎng),隨后執(zhí)行其他計(jì)算命令,信息已不一致CPU計(jì)算的方法,沒(méi)有考慮主機(jī)核數(shù)解決方案調(diào)整相關(guān)命令的順序CPU利用率計(jì)算時(shí),除以核數(shù)備注CF2.0中,
19、已解決此問(wèn)題,新增功能(與外圍系統(tǒng)聯(lián)動(dòng)),文件持久化使用MFS(Moose File System)DEA 部署MFS-Client,并 mount /mfs/path,供實(shí)例使用MFS服務(wù)端提供HTTP接口,獲取數(shù)據(jù)基于URI的路由,區(qū)分APPfoo.baidu.com/app1 ? app1.foo.baidu.comfoo.baidu.com/app2 ? app2.foo.baidu.c
20、om監(jiān)控聯(lián)動(dòng)APP的生命周期,與外部監(jiān)控系統(tǒng)的API交互,實(shí)現(xiàn)監(jiān)控項(xiàng)的自動(dòng)增刪改開(kāi)發(fā)者工具包自動(dòng)化發(fā)布(封裝vmc)文件查看,主要改造點(diǎn)匯總(cf v1.0),,基于CentOS的相關(guān)改造使用NATS-Cluster、NATS-Client重試與緩存支持RPC、單實(shí)例多端口支持動(dòng)態(tài)JMX、Jconsole加強(qiáng)健康檢查端口管理實(shí)例資源信息管理外圍組件:文件持久化、監(jiān)控聯(lián)動(dòng)、URI路由、開(kāi)發(fā)者工具包,2. 實(shí)踐與
21、改造(Part2)C/C++,base on cf 2.0,C/C++ Apps,幾大核心問(wèn)題,Container 的運(yùn)行環(huán)境與資源隔離Kernel/GNU資源隔離快照,Core Dump單實(shí)例多進(jìn)程健康檢查進(jìn)程運(yùn)行順序?qū)嵗齼?nèi),進(jìn)程間通信多端口多實(shí)例的同構(gòu)性,C/C++ Apps,幾大核心問(wèn)題,大實(shí)例實(shí)例個(gè)數(shù)多(10萬(wàn))數(shù)據(jù)量大(單實(shí)例,2TB)內(nèi)存占用高(單實(shí)例,100G)啟動(dòng)時(shí)間長(zhǎng)(30分鐘)流量大(
22、單實(shí)例,日總PV2億)漂移時(shí),防止資源不足APP通信網(wǎng)絡(luò)層通信,權(quán)限、流量控制輸出文件,需要外部抓取輸入文件,需要外部推送RPC,非HTTP協(xié)議,不包含PATH信息,無(wú)法路由,實(shí)例的 OS-Level 環(huán)境準(zhǔn)備,Container的運(yùn)行環(huán)境Kernel 與宿主機(jī)一致訂制Container的文件環(huán)境,warden/warden/root/linux/rootfs/setup.sh,if grep -q -i centos
23、 /etc/issuethen exec $(dirname $0)/centos.sh $@fi,Container與宿主機(jī)的關(guān)系,,Warden,Networking,Bridge / NAT / Firewall / FlowControl,DEA,,,包管理,Buildpack APIdetect , 檢查complie,環(huán)境準(zhǔn)備目錄結(jié)構(gòu)程序文件,及相關(guān)配套程序啟動(dòng)腳本,保證進(jìn)程的啟動(dòng)順序,等等監(jiān)控腳本,
24、可以周期性執(zhí)行,檢測(cè)整個(gè)實(shí)例的健康程度release,發(fā)布信息Procfile,參數(shù)傳遞(如端口號(hào)).profile.d,環(huán)境變量,健康檢查,改造點(diǎn),自定義監(jiān)控腳本自定義監(jiān)控腳本,隨實(shí)例一起發(fā)布,周期性改寫(xiě)stat_file文件內(nèi)容DEA定期檢查stat_file文件,,實(shí)例,stat_file,monitor.sh,process-1,process-2,DEA,HM,,APP的改造,針對(duì)RPC,支持NS Client動(dòng)態(tài)
25、配置文件,代替路由端口管理,凍結(jié)時(shí)間輸入輸出文件輸入文件,主動(dòng)抓取輸出文件,推到中轉(zhuǎn)處(如云存儲(chǔ)),或基于NS服務(wù)多進(jìn)程的管理,啟動(dòng)腳本多進(jìn)程,啟動(dòng)順序控制進(jìn)程控制文件持久化遠(yuǎn)程日志使用云存儲(chǔ),整體結(jié)構(gòu)(CF2.0),DEA,Logging,Name Service,Monitoring,FilePersistence,HM,gorouter(RPC,不適用),CC,Baidu GateWay / Front En
26、d,API Bridge,UAA,,,,,,,,,(Cluster 02),NATS,Warden,NS Client,DB,,主要改造點(diǎn)匯總(cf v2.0),,基于CentOS的相關(guān)改造Container環(huán)境的訂制Buildpack的訂制支持RPC、單實(shí)例多端口加強(qiáng)健康檢查外圍組件:文件持久化、監(jiān)控聯(lián)動(dòng)、URI路由、開(kāi)發(fā)者工具包,3. 流程與標(biāo)準(zhǔn),工作流程,簡(jiǎn)述,,標(biāo)準(zhǔn)與容量,舉例,標(biāo)準(zhǔn)信息采集App相關(guān)名稱、相關(guān)
27、接口人(R&D、QA、運(yùn)維、相關(guān)經(jīng)理,等)Runtime與容器版本無(wú)狀態(tài)、RPC、URI路由動(dòng)靜態(tài)文件分離文件持久化容量信息采集PV、QPS單實(shí)例 CPU、內(nèi)存、磁盤(pán)、帶寬、重啟時(shí)間實(shí)例數(shù)量,SLA,舉例,服務(wù)對(duì)象Java 應(yīng)用(以下簡(jiǎn)稱“APP”)符合標(biāo)準(zhǔn)的APP服務(wù)時(shí)間24×365全年無(wú)休溝通方式Mail、Tel、接口人信息穩(wěn)定性相關(guān)指標(biāo)核心組件,可用性>99.99%(
28、每月),MTTR5天控制服務(wù),可用性>99.95%(全年)APP自身SLA,不因平臺(tái)本身,造成負(fù)面影響?注:APP自身問(wèn)題,不在此SLA范圍內(nèi),如:?程序bug、容量預(yù)估錯(cuò)誤、外部系統(tǒng)故障(如DB、Cache)等,組織關(guān)系,層級(jí),產(chǎn)品線(Org)模塊(Space)分組(APP)版本(APP-*),產(chǎn)品線-2,產(chǎn)品線-1 (Org),模塊-2,模塊-1 (Space),分組-1(A),分組-2(B),實(shí)例,版本-1(A
29、PP-1-1),實(shí)例,版本-2(APP-1-2),實(shí)例,版本-1(APP-2-1),實(shí)例,版本-2(APP-2-2),實(shí)例,版本-1(A-1),實(shí)例,版本-2(A-2),實(shí)例,版本-1(B-1),實(shí)例,版本-2(B-2),,虛線內(nèi),相當(dāng)于一個(gè)APP,且有多個(gè)實(shí)例,對(duì)CC進(jìn)一步封裝,,產(chǎn)品線(Org)OrgName模塊(Space)OrgName_SpaceName模塊分組 OrgName_SpaceNa
30、me_GroupTag模塊版本 OrgName_SpaceName_GroupTag_VersionTag實(shí)例(id唯一)OrgName_SpaceName_GroupTag_VersionTag_Index,GroupTag、VersionTag,,GroupTag可以區(qū)分:配置文件、機(jī)房、機(jī)架等維度的不同VersionTag可以區(qū)分:程序、數(shù)據(jù)、配置文件等包含:四位版本號(hào)、時(shí)間戳實(shí)例完整名稱,例子Org
31、_Space_GroupA_1-1-1-1-438249600_1Org_Space_GroupB_1-1-1-1-438249600_1,審批與發(fā)布,發(fā)審批單APP信息(程序版本、容量信息、相關(guān)說(shuō)明,等等)審批人(相關(guān)經(jīng)理、需知曉的人)操作者、操作時(shí)間監(jiān)控信息(監(jiān)控策略、接口人等)開(kāi)始發(fā)布操作,并添加監(jiān)控發(fā)布前,對(duì)應(yīng)審批流必須通過(guò)操作人、程序版本、MD5、時(shí)間等信息,必須與審批流一致都一致,且流程通過(guò),則可以開(kāi)始發(fā)
32、布發(fā)布成功后,添加監(jiān)控,發(fā)單,審批,發(fā)布APP,,,監(jiān)控添加,,預(yù)發(fā)布、發(fā)布、回滾,app_v1instance01,app_v1.paas.baidu.com,app_v1instance02,app_v2instance01,app_v2instance02,,,app_v3instance01,app_v3instance02,app_v3.paas.baidu.com,,app.baidu.com,泛域名、 map
33、/unmap、 app的多版本并存,前進(jìn),發(fā)布,后退,回滾,預(yù)發(fā)布,線下內(nèi)網(wǎng)觀察,基本的灰度發(fā)布,app_v1instance01,app_v1.paas.baidu.com,app_v1instance02,app_v2instance01,app_v2instance02,,,app_v3instance01,app_v3instance02,,app.baidu.com,1、將一個(gè)正式域名,同時(shí)指向多個(gè)app2、調(diào)
34、整多個(gè)app的實(shí)例數(shù)比例,即調(diào)整了流量的比例,app.baidu.com,app_v2instance03,通過(guò)調(diào)整app實(shí)例的數(shù)量,灰度流量的分配比例,“布道之道”,平臺(tái)的推廣,軍功章,有誰(shuí)的一半?APP的支持新服務(wù),需遵守PaaS的相關(guān)標(biāo)準(zhǔn)、思想老服務(wù),需R&D改造,QA需回歸測(cè)試外圍的支持DB、Cache、存儲(chǔ)、接入、安全、監(jiān)控,等等明確收益,建立共贏的生態(tài)圈交付更快、資源更省、事情變得簡(jiǎn)單一站式的一體
35、化服務(wù),攜手推廣,一些方法,給用戶(APP開(kāi)發(fā)人員),尊貴的帝王般的享受對(duì)重點(diǎn)的APP,有針對(duì)性的重點(diǎn)服務(wù)對(duì)重要的管理者,有一套更完整、及時(shí)的溝通方式,如報(bào)表等原則是“資本主義”,而不是社會(huì)主義事件“營(yíng)銷”如“struts2 0day”積極配合R&D、QA做問(wèn)題排查、修復(fù)與實(shí)施積極通報(bào)進(jìn)展,做好事件管理后期,針對(duì)此事,積極推進(jìn)、參與討論與決策,如與安全、架構(gòu)組合作原則是“共贏”,而不是推卸責(zé)任,4. 改變運(yùn)維
36、,,改變運(yùn)維,“NoOps”,PaaS(and IaaS) 的完整功能 >= 傳統(tǒng)運(yùn)維工作,Storage,Servers,Networking,O/S,Middleware,Virtualization,Data,Applications,Runtime,OP(SRE),運(yùn)維,PaaS (and IaaS),如何改變,舉例,故障自動(dòng)恢復(fù)在傳統(tǒng)監(jiān)控之上,增加了健康檢查機(jī)制實(shí)例的自動(dòng)重啟與“漂移”傳統(tǒng)的報(bào)警大量減少,人力減少
37、只有自動(dòng)恢復(fù)失敗時(shí),才報(bào)警,監(jiān)控,,完整實(shí)例名_1ip:port,,,… …,,健康檢查,API,… …,真實(shí)的實(shí)例_1ip:port,漂移后的實(shí)例_1,“漂移”是正?,F(xiàn)象,無(wú)需報(bào)警“漂移”失敗,才需報(bào)警監(jiān)控細(xì)化到實(shí)例,每次根據(jù)名字,探測(cè)返回的ip:port,如何改變,舉例,更加敏捷讓開(kāi)發(fā)者“忘記服務(wù)器”,轉(zhuǎn)而面向資源有完整的配置管理,與自動(dòng)化部署功能發(fā)布、預(yù)發(fā)布、回滾,極其簡(jiǎn)單,且不需要額外復(fù)雜的部署工具彈性擴(kuò)展,極其
38、簡(jiǎn)單使用Buildpack,實(shí)現(xiàn)“云端編譯”,并直接運(yùn)行一體化一站式的體驗(yàn)從發(fā)單、發(fā)布,到增刪改監(jiān)控,工作流程全自動(dòng)整合第三方服務(wù),統(tǒng)一管理入口,5. 未來(lái)計(jì)劃,未來(lái)計(jì)劃,回饋社區(qū)針對(duì)私有云的功能,盡量封裝原生組件(基于CF2.0),將新的組件開(kāi)源如影響到原生組件的改動(dòng),盡量爭(zhēng)取merge進(jìn)主干編寫(xiě)豐富的文檔,以及心得,并積極參與交流開(kāi)發(fā)方向針對(duì)大型應(yīng)用(大實(shí)例)的相關(guān)功能智能調(diào)度相關(guān)信息安全更深入的持續(xù)集成
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云計(jì)算運(yùn)維管理系統(tǒng)
- 基于云計(jì)算的ITIL運(yùn)維.pdf
- [教育]云計(jì)算時(shí)代下的運(yùn)維服務(wù)
- 時(shí)代變化與教師信息素養(yǎng) - 云計(jì)算-云計(jì)算資料
- 云計(jì)算平臺(tái)的運(yùn)維與開(kāi)發(fā)教案:云服務(wù)器及相關(guān)技術(shù)
- 云計(jì)算平臺(tái)的運(yùn)維與開(kāi)發(fā)教案:云服務(wù)器及相關(guān)技術(shù)
- 云計(jì)算應(yīng)用對(duì)F公司信息架構(gòu)和運(yùn)維的影響研究.pdf
- 基于云計(jì)算的IT運(yùn)維服務(wù)系統(tǒng)研究與應(yīng)用.pdf
- 云計(jì)算商業(yè)計(jì)劃書(shū)
- 一種云計(jì)算時(shí)代的devops自動(dòng)化運(yùn)維平臺(tái)
- 云計(jì)算運(yùn)維平臺(tái)服務(wù)控制子系統(tǒng)的設(shè)計(jì)與.pdf
- 云計(jì)算與下一代idc的架構(gòu)與運(yùn)維
- 一、云計(jì)算
- 淺談云計(jì)算
- 云計(jì)算之我見(jiàn)
- 云計(jì)算論文
- 云計(jì)算論文
- 聽(tīng)云-2018中國(guó)云計(jì)算性能洞察報(bào)告
- 云計(jì)算和大數(shù)據(jù)專項(xiàng)
- 2013中國(guó)國(guó)際云計(jì)算技術(shù)和應(yīng)用展覽會(huì)
評(píng)論
0/150
提交評(píng)論