基于CloudFoundry的私有云平臺_第1頁
基于CloudFoundry的私有云平臺_第2頁
基于CloudFoundry的私有云平臺_第3頁
基于CloudFoundry的私有云平臺_第4頁
基于CloudFoundry的私有云平臺_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于CloudFoundry的私有云平臺內(nèi)容背景與目標(biāo)實(shí)踐與改造(Part

1、2)流程與標(biāo)準(zhǔn)改變運(yùn)維未來計(jì)劃1.背景與目標(biāo)運(yùn)維與PaaSStorageServersNetworkingO/SMiddlewareVirtualizationDataApplicationsRuntimeOP(SRE),運(yùn)維PaaS

(and

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)平臺聯(lián)動(dòng)WhyCloudFoundry?自動(dòng)化標(biāo)準(zhǔn)化一體化機(jī)器管理(下游部門)自動(dòng)化一體化標(biāo)準(zhǔn)化WhyCF?自動(dòng)化一體化標(biāo)準(zhǔn)化2.實(shí)踐與改造(Part1)Java,base

on

cf

1.0Java

Apps產(chǎn)品種類>100APP

>200實(shí)例>2000平均單實(shí)例10G(內(nèi)存)日均總pv>

10億APP的開發(fā)及測試人員>

700人Tomcat5/6/7、jdk1.5/1.6、Standalone

開始實(shí)施,準(zhǔn)備工作基于CentOS的相關(guān)改造獨(dú)立部署各個(gè)CF組件拆解BOSH、chef,基于物理機(jī)實(shí)施OS環(huán)境初始化apt-get改為yumUbuntu-cmdtoCentOSDEA(v1.0),agent.rb、secure.rbyuminstall-ymakegccgcc-c++kernel-devel.x86_64openssl-devel.x86_64libxml2.x86_64libxml2-devel.x86_64libxslt.x86_64libxslt-devel.x86_64git.x86_64sqlite.x86_64ruby-sqlite3.x86_64sqlite-devel.x86_64unzip.x86_64zip.x86_64ruby-devel.x86_64ruby-mysql.x86_64mysql-devel.x86_64curl-devel.x86_64postgresql-libs.x86_64postgresql-devel.x86_64zlib-devel.x86_64readline-devel.x86_64ImageMagick.x86_64ImageMagick-devel.x86_64php-magickwand.x86_64集群容量評估實(shí)例數(shù)量,NATS容量評估單臺DEA承載的實(shí)例數(shù)(<100),對NATS-Server壓力影響不大單NATS-Server,保守估計(jì)可承受330臺DEA,單臺實(shí)例數(shù)5~30個(gè)多NATS-Server,可擴(kuò)展延時(shí)(ms)DEA臺數(shù)(10

~

340臺)單DEA實(shí)例數(shù)(5

~

30個(gè))臨界線330臺DEA集群內(nèi),組件冗余、LB設(shè)計(jì)NATS使用cluster版,多NATS,心跳同步Client端緩存信息,如果網(wǎng)絡(luò)中斷,則不斷reconnect多NATS負(fù)載均衡(Client>

0.5.beta.6)NATS-Server1NATS-Server2NATS-Client(cachingmessage)NATS-Server1/2,Randomlist多集群冗余設(shè)計(jì)多個(gè)獨(dú)立的集群,邏輯互不影響第一層切換,修改DNS

A記錄,對多個(gè)域名(CNAME到此A記錄),統(tǒng)一切到不同的集群第二層切換,修改“接入層”(其應(yīng)用層的功能,可簡單理解為nginx的反向代理)保證好APP(無狀態(tài))的容量,或快速擴(kuò)容的預(yù)案,以防止流量切過來以后,出現(xiàn)過載Baidu

GateWayFront

EndRouterA記錄Baidu

GateWayFront

EndRouterapp1app1CNAME(正式域名)CNAME(正式域名)

CNAME

.

www.

CNAME

.

.

A

7

.

A

6核心組件,分布Router_1NATS_1RouterNATSCCHMStagerDEAPG_DBRedis整體結(jié)構(gòu)(cf1.0)DEALoggingName

ServiceMonitoringjvmStagerFilePersistenceHMRouterCCBaidu

GateWay/Front

EndjvmjvmAPI

BridgeUAAjvmjvmjvmjvmjvmRouter(Cluster02)NATSDB新增功能支持RPC、單實(shí)例多端口單實(shí)例開啟多個(gè)端口,并提供API實(shí)時(shí)查詢IP、端口號與“名稱服務(wù)”聯(lián)動(dòng),同步動(dòng)態(tài)ip端口與名稱的對應(yīng)關(guān)系RPC調(diào)用方,根據(jù)名稱直連實(shí)例DEA

server支持RPC、單實(shí)例多端口Instance01:portInstance02:portAPI

Bridge

NS

serverTXT記錄ip:portip:portRPC調(diào)用方NS

clientDomain

ip:port

ip:portip_local_port_range10000~

60000Port池(分配后,有凍結(jié)期)61000~

65000新增功能支持JMXAPI實(shí)時(shí)查詢ip與Jconsole端口號,實(shí)現(xiàn)JMX數(shù)據(jù)實(shí)時(shí)采集DEA支持JMX

Instance01:

Jconsole端口Instance02:

Jconsole端口{"instances":[{"index":0,"state":"RUNNING","since":438249600,"jconsole_ip":"","jconsole_port":61111},{"index":1,"state":"RUNNING","since":438249600,"jconsole_ip":"","jconsole_port":62222}MonitoringMetricsCpuUseRateDaemonThreadCountMemPool_OldGen_UseRateNonHeapMemoryUsage_usedTotalCompilationTimeTotalPeakThreadCountTotalStartedThreadCountUnloadedClassCountGC_Major_FrequencyGC_Major_Time……Stager:java

\-Dcom.sun.management.jmxremote.port={VCAP_JCONSOLE_PORT}-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false新增功能加強(qiáng)健康檢查七層檢測文件句柄數(shù)檢測DEA

ServerDEA

agent.rbHealthMangerinstancehttp可用性instanceCPUMEMDISK……report加強(qiáng)健康檢查

句柄DEA(v1.0),邏輯改進(jìn)端口管理問題描述單DEA多實(shí)例,并行的端口分配與啟動(dòng),沒有臨界區(qū),有端口競爭的問題解決方案借鑒了DEA(v2.0)的邏輯(注:即DEA_NG,與CF1.0不兼容)設(shè)定ip_local_port_range為10000~61000,作為動(dòng)態(tài)端口的范圍將61001~65000,作為DEA的調(diào)度分配端口對分配的端口,增加“[釋放時(shí)間、端口號]”的數(shù)據(jù)結(jié)構(gòu)通過延時(shí)釋放端口,解決了端口競爭的問題備注CF2.0中,已解決此問題,方法同上DEA(v1.0),邏輯改進(jìn)實(shí)例資源信息管理問題描述du命令算實(shí)例磁盤空間,時(shí)間較長,隨后執(zhí)行其他計(jì)算命令,信息已不一致CPU計(jì)算的方法,沒有考慮主機(jī)核數(shù)解決方案調(diào)整相關(guān)命令的順序CPU利用率計(jì)算時(shí),除以核數(shù)備注CF2.0中,已解決此問題新增功能(與外圍系統(tǒng)聯(lián)動(dòng))文件持久化使用MFS(MooseFileSystem)DEA部署MFS-Client,并mount

/mfs/path,供實(shí)例使用MFS服務(wù)端提供HTTP接口,獲取數(shù)據(jù)基于URI的路由,區(qū)分APPf/app1

app1.foo./app2

app2.監(jiān)控聯(lián)動(dòng)APP的生命周期,與外部監(jiān)控系統(tǒng)的API交互,實(shí)現(xiàn)監(jiān)控項(xiàng)的自動(dòng)增刪改開發(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路由、開發(fā)者工具包2.實(shí)踐與改造(Part2)C/C++,base

on

cf

2.0C/C++

Apps,幾大核心問題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,幾大核心問題大實(shí)例實(shí)例個(gè)數(shù)多(10萬)數(shù)據(jù)量大(單實(shí)例,2TB)內(nèi)存占用高(單實(shí)例,100G)啟動(dòng)時(shí)間長(30分鐘)流量大(單實(shí)例,日總PV2億)漂移時(shí),防止資源不足APP通信網(wǎng)絡(luò)層通信,權(quán)限、流量控制輸出文件,需要外部抓取輸入文件,需要外部推送RPC,非HTTP協(xié)議,不包含PATH信息,無法路由實(shí)例的OS-Level環(huán)境準(zhǔn)備Container的運(yùn)行環(huán)境Kernel與宿主機(jī)一致訂制Container的文件環(huán)境warden/warden/root/linux/rootfs/setup.shifgrep-q-icentos/etc/issuethen

exec$(dirname$0)/centos.sh$@fiContainer與宿主機(jī)的關(guān)系WardenNetworking,Bridge/NAT/Firewall/FlowControlDEAinit─┬─xxx├─xxx─xxx├─xxxmountrusr/lib/etc/mountrwxxx/networkinterface(subnet)Cgroup–CPU/MEMNamespaceinit─┬─xxx├─xxx─xxx├─xxxmountrusr/lib/etc/mountrwxxx/networkinterface(subnet)Cgroup–CPU/MEMNamespace包管理BuildpackAPIdetect

,檢查complie,環(huán)境準(zhǔn)備目錄結(jié)構(gòu)程序文件,及相關(guān)配套程序啟動(dòng)腳本,保證進(jìn)程的啟動(dòng)順序,等等監(jiān)控腳本,可以周期性執(zhí)行,檢測整個(gè)實(shí)例的健康程度release,發(fā)布信息Procfile,參數(shù)傳遞(如端口號).profile.d,環(huán)境變量健康檢查,改造點(diǎn)自定義監(jiān)控腳本自定義監(jiān)控腳本,隨實(shí)例一起發(fā)布,周期性改寫stat_file文件內(nèi)容DEA定期檢查stat_file文件實(shí)例stat_filemonitor.shprocess-1process-2DEAHMAPP的改造針對RPC,支持NS

Client動(dòng)態(tài)配置文件,代替路由端口管理,凍結(jié)時(shí)間輸入輸出文件輸入文件,主動(dòng)抓取輸出文件,推到中轉(zhuǎn)處(如云存儲),或基于NS服務(wù)多進(jìn)程的管理,啟動(dòng)腳本多進(jìn)程,啟動(dòng)順序控制進(jìn)程控制文件持久化遠(yuǎn)程日志使用云存儲整體結(jié)構(gòu)(CF2.0)DEALoggingName

ServiceMonitoringFilePersistenceHMgorouter(RPC,不適用)CCBaidu

GateWay/Front

EndAPI

BridgeUAA(Cluster02)NATSContainerprocess-1process-2WardenNSClientContainerprocess-1process-2Containerprocess-1process-2DB主要改造點(diǎn)匯總(cf

v2.0)基于CentOS的相關(guān)改造Container環(huán)境的訂制Buildpack的訂制支持RPC、單實(shí)例多端口加強(qiáng)健康檢查外圍組件:文件持久化、監(jiān)控聯(lián)動(dòng)、URI路由、開發(fā)者工具包3.流程與標(biāo)準(zhǔn)工作流程,簡述評審標(biāo)準(zhǔn)容量SLA接入組織關(guān)系名稱信息運(yùn)維信息流程審批權(quán)限申請名稱申請發(fā)布操作發(fā)布更新預(yù)發(fā)布灰度回滾故障處理可用性安全問題管理標(biāo)準(zhǔn)與容量,舉例標(biāo)準(zhǔn)信息采集App相關(guān)名稱、相關(guān)接口人(R&D、QA、運(yùn)維、相關(guān)經(jīng)理,等)Runtime與容器版本無狀態(tài)、RPC、URI路由動(dòng)靜態(tài)文件分離文件持久化容量信息采集PV、QPS單實(shí)例CPU、內(nèi)存、磁盤、帶寬、重啟時(shí)間實(shí)例數(shù)量SLA,舉例服務(wù)對象Java應(yīng)用(以下簡稱“APP”)符合標(biāo)準(zhǔn)的APP服務(wù)時(shí)間24×365全年無休溝通方式Mail、Tel、接口人信息穩(wěn)定性相關(guān)指標(biāo)核心組件,可用性>99.99%(每月),MTTR<20分鐘,MTBF>5天控制服務(wù),可用性>99.95%(全年)APP自身SLA,不因平臺本身,造成負(fù)面影響

注:APP自身問題,不在此SLA范圍內(nèi),如:

程序bug、容量預(yù)估錯(cuò)誤、外部系統(tǒng)故障(如DB、Cache)等組織關(guān)系,層級產(chǎn)品線(Org)模塊(Space)分組(APP)版本(APP-*)

產(chǎn)品線-2產(chǎn)品線-1

(Org)模塊-2模塊-1(Space)分組-1(A)分組-2(B)實(shí)例,版本-1(APP-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í)例對CC進(jìn)一步封裝產(chǎn)品線(Org) OrgName 模塊(Space) OrgName_SpaceName模塊分組

OrgName_SpaceName_GroupTag模塊版本

OrgName_SpaceName_GroupTag_VersionTag實(shí)例(id唯一)

OrgName_SpaceName_GroupTag_VersionTag_IndexGroupTag、VersionTagGroupTag可以區(qū)分:配置文件、機(jī)房、機(jī)架等維度的不同VersionTag可以區(qū)分:程序、數(shù)據(jù)、配置文件等包含:四位版本號、時(shí)間戳實(shí)例完整名稱,例子Org_Space_GroupA_1-1-1-1-438249600_1Org_Space_GroupB_1-1-1-1-438249600_1審批與發(fā)布發(fā)審批單APP信息(程序版本、容量信息、相關(guān)說明,等等)審批人(相關(guān)經(jīng)理、需知曉的人)操作者、操作時(shí)間監(jiān)控信息(監(jiān)控策略、接口人等)開始發(fā)布操作,并添加監(jiān)控發(fā)布前,對應(yīng)審批流必須通過操作人、程序版本、MD5、時(shí)間等信息,必須與審批流一致都一致,且流程通過,則可以開始發(fā)布發(fā)布成功后,添加監(jiān)控發(fā)單審批發(fā)布APP監(jiān)控添加預(yù)發(fā)布、發(fā)布、回滾app_v1instance01app_v1.app_v1instance02app_v2instance01app_v2instance02app_v3instance01app_v3instance02app_v3.app.泛域名、map/unmap、app的多版本并存前進(jìn),發(fā)布后退,回滾預(yù)發(fā)布,線下內(nèi)網(wǎng)觀察基本的灰度發(fā)布app_v1instance01app_v1.app_v1instance02app_v2instance01app_v2instance02app_v3instance01app_v3instance02app.1、將一個(gè)正式域名,同時(shí)指向多個(gè)app2、調(diào)整多個(gè)app的實(shí)例數(shù)比例,即調(diào)整了流量的比例app.app_v2instance03通過調(diào)整app實(shí)例的數(shù)量,灰度流量的分配比例“布道之道”,平臺的推廣軍功章,有誰的一半?APP的支持新服務(wù),需遵守PaaS的相關(guān)標(biāo)準(zhǔn)、思想老服務(wù),需R&D改造,QA需回歸測試外圍的支持DB、Cache、存儲、接入、安全、監(jiān)控,等等明確收益,建立共贏的生態(tài)圈交付更快、資源更省、事情變得簡單一站式的一體化服務(wù),攜手推廣一些方法給用戶(APP開發(fā)人員),尊貴的帝王般的享受對重點(diǎn)的APP,有針對性的重點(diǎn)服務(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論