国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

詳解CloudFoundry中各個(gè)組件的作用

云計(jì)算 云安全
CloudFoundry1.0中的router是用nginx+lua嵌入腳本實(shí)現(xiàn)的,2.0用golang重寫(xiě),更名為gorouter,性能有所提升,并聲稱(chēng)試圖解決websocket請(qǐng)求和tcp請(qǐng)求(雖然這在筆者看來(lái)是沒(méi)用的),它的代碼在https://github.com/cloudfoundry/gorouter,大家可以研究一下。

CloudFoundry是一個(gè)標(biāo)桿性的項(xiàng)目,架構(gòu)設(shè)計(jì)上有很多值得借鑒之處。從CloudFoundry官網(wǎng)摘了一張圖,我們以此剖析各個(gè)組件的作用。

CloudFoundry

Router

Router是整個(gè)平臺(tái)的流量入口,負(fù)責(zé)分發(fā)所有的請(qǐng)求到對(duì)應(yīng)的組件,包括來(lái)自外部用戶(hù)對(duì)app的請(qǐng)求和平臺(tái)內(nèi)部的管理請(qǐng)求。

Router是PaaS平臺(tái)中至關(guān)重要的一個(gè)組件,它在內(nèi)存中維護(hù)了一張路由表,記錄了域名與實(shí)例的對(duì)應(yīng)關(guān)系,所謂的實(shí)例自動(dòng)遷移,靠得就是這張路由表,某實(shí)例宕掉了,就從路由表中剔除,新實(shí)例創(chuàng)建了,就加入路由表。

CloudFoundry1.0中的router是用nginx+lua嵌入腳本實(shí)現(xiàn)的,2.0用golang重寫(xiě),更名為gorouter,性能有所提升,并聲稱(chēng)試圖解決websocket請(qǐng)求和tcp請(qǐng)求(雖然這在筆者看來(lái)是沒(méi)用的),它的代碼在https://github.com/cloudfoundry/gorouter,大家可以研究一下。

Authentication

這塊包含兩個(gè)組件,一個(gè)是Login Server,負(fù)責(zé)登錄,一個(gè)是OAuth2 Server(UAA),UAA是個(gè)Java的項(xiàng)目,如果想找一個(gè)OAuth2開(kāi)源方案,可以嘗試一下UAA

Cloud Controller

Cloud Controller負(fù)責(zé)管理app的整個(gè)生命周期。用戶(hù)通過(guò)命令行工具cf與CloudFoundry Server打交道,實(shí)際主要就是和Cloud Controller交互。

用戶(hù)把a(bǔ)pp push給Cloud Controller,Cloud Controller將其存放在Blob Store,在數(shù)據(jù)庫(kù)中為該app創(chuàng)建一條記錄,存放其meta信息,并且指定一個(gè)DEA節(jié)點(diǎn)來(lái)完成打包動(dòng)作,產(chǎn)出一個(gè)droplet(是一個(gè)包含Runtime的包,在任何dea節(jié)點(diǎn)都可以通過(guò)warden run起來(lái)),完成打包之后,droplet回傳給Cloud Controller,仍然存放在Blob Store,然后Cloud Controller根據(jù)用戶(hù)要求的實(shí)例數(shù)目,調(diào)度相應(yīng)的DEA節(jié)點(diǎn)部署運(yùn)行該droplet。另外,Cloud Controller還維護(hù)了用戶(hù)組織關(guān)系org、space,以及服務(wù)、服務(wù)實(shí)例等等。

Health Manager

Health Manager最初是用Ruby寫(xiě)的,后來(lái)用golang寫(xiě)了一版,稱(chēng)為HM9000,HM9000主要有四個(gè)核心功能:

  • 監(jiān)控app的實(shí)際運(yùn)行狀態(tài)(比如:running, stopped, crashed等等),版本,實(shí)例數(shù)目等信息。DEA會(huì)持續(xù)發(fā)送心跳包,匯報(bào)它所管轄的實(shí)例信息,如果某個(gè)實(shí)例掛了,會(huì)立馬發(fā)送“droplet.exited”消息,HM9000據(jù)此更新app的實(shí)際運(yùn)行數(shù)據(jù)
  • HM9000通過(guò)dump Cloud Controller數(shù)據(jù)庫(kù)的方式,獲取app的期望狀態(tài)、版本、實(shí)例數(shù)目
  • HM9000持續(xù)比對(duì)app的實(shí)際運(yùn)行狀態(tài)和期望狀態(tài),如果發(fā)現(xiàn)app正在運(yùn)行的實(shí)例數(shù)目少于要求的實(shí)例數(shù)目,就發(fā)命令給Cloud Controller,要求啟動(dòng)相應(yīng)數(shù)目的實(shí)例。HM9000本身,不會(huì)要求DEA做些什么。它只是收集數(shù)據(jù),比對(duì),再收集數(shù)據(jù),再比對(duì)
  • 用戶(hù)通過(guò)cf命令行工具是可以控制app各個(gè)實(shí)例的啟停狀態(tài)的,如果app的狀態(tài)發(fā)生變化,HM9000就會(huì)命令Cloud Controller做出相應(yīng)調(diào)整

說(shuō)到底,HM9000就是保證app可用性的一個(gè)基礎(chǔ)組件,app運(yùn)行時(shí)超過(guò)了分配的quota,或者異常退出,或者DEA節(jié)點(diǎn)整個(gè)宕機(jī),HM9000都會(huì)檢測(cè)到,然后命令Cloud Controller做實(shí)例遷移。HM9000的代碼在這里:https://github.com/cloudfoundry/hm9000,有興趣的同學(xué)可以研究一下

Application Execution(DEA)

DEA,即Droplet Execution Agent,部署在所有物理節(jié)點(diǎn)上,管理app實(shí)例,將狀態(tài)信息廣播出去。比如我們創(chuàng)建一個(gè)app,實(shí)例的創(chuàng)建命令最終會(huì)下發(fā)到DEA,DEA調(diào)用warden的接口創(chuàng)建container,如果用戶(hù)要?jiǎng)h除某個(gè)app,實(shí)例的銷(xiāo)毀命令最終也會(huì)下發(fā)到DEA,DEA調(diào)用warden的接口銷(xiāo)毀對(duì)應(yīng)的container。

當(dāng)CloudFoundry剛剛推出的時(shí)候,Droplet包含了應(yīng)用的啟動(dòng)、停止等簡(jiǎn)單命令。用戶(hù)應(yīng)用可以隨意訪(fǎng)問(wèn)文件系統(tǒng),也可以在內(nèi)網(wǎng)暢通無(wú)阻,跑滿(mǎn)CPU,占盡內(nèi)存,寫(xiě)滿(mǎn)磁盤(pán)。你一切可以想到的破壞性操作都可以做到,太可怕了。CloudFoundry顯然不會(huì)放任這樣的情況太久,現(xiàn)在他們開(kāi)發(fā)出了Warden,一個(gè)程序運(yùn)行容器。這個(gè)容器提供了一個(gè)孤立的環(huán)境,Droplet只可以獲得受限的CPU,內(nèi)存,磁盤(pán)訪(fǎng)問(wèn)權(quán)限,網(wǎng)絡(luò)權(quán)限,再?zèng)]有辦法搞破壞了。

Warden在Linux上的實(shí)現(xiàn)是將Linux內(nèi)核的資源分成若干個(gè)namespace加以區(qū)分,底層的機(jī)制是CGROUP。這樣的設(shè)計(jì)比虛擬機(jī)性能好,啟動(dòng)快,也能夠獲得足夠的安全性。在網(wǎng)絡(luò)方面,每一個(gè)Warden實(shí)例有一個(gè)虛擬網(wǎng)絡(luò)接口,每個(gè)接口有一個(gè)IP,而DEA內(nèi)有一個(gè)子網(wǎng),這些網(wǎng)絡(luò)接口就連在這個(gè)子網(wǎng)上。安全可以通過(guò)iptables來(lái)保證。在磁盤(pán)方面,每個(gè)warden實(shí)例有一個(gè)自己的filesystem。這些filesystem使用aufs實(shí)現(xiàn)的。Aufs可以共享warden之間的只讀內(nèi)容,區(qū)分只寫(xiě)的內(nèi)容,提高了磁盤(pán)空間的利用率。因?yàn)閍ufs只能在固定大小的文件上讀寫(xiě),所以磁盤(pán)也沒(méi)有出現(xiàn)寫(xiě)滿(mǎn)的可能性。

LXC是另一個(gè)Linux Container。那為什么不使用它,而開(kāi)發(fā)了Warden呢。因?yàn)長(zhǎng)XC的實(shí)現(xiàn)是和Linux綁死的,CloudFoundry希望warden能運(yùn)轉(zhuǎn)在各個(gè)不同的平臺(tái),而不只是Linux。另外Warden提供了一個(gè)Daemon和若干Api來(lái)操作,LXC提供的是系統(tǒng)工具。還有最重要的一點(diǎn)是LXC過(guò)于龐大,Warden只需要其中的一點(diǎn)點(diǎn)功能就可以了,更少的代碼便于調(diào)試。

Service Brokers

app在運(yùn)行的時(shí)候通常需要依賴(lài)外部的一些服務(wù),比如數(shù)據(jù)庫(kù)服務(wù)、緩存服務(wù)、短信郵件服務(wù)等等。Service Broker就是app接入服務(wù)的一種方式。比如我們要接入MySQL服務(wù),只要實(shí)現(xiàn)CloudFoundry要求的Service Broker API即可。但實(shí)際情況是在我們使用CloudFoundry之前,MySQL服務(wù)已經(jīng)由DBA做了服務(wù)化、產(chǎn)品化,用起來(lái)已經(jīng)很方便了。有必要實(shí)現(xiàn)其Service Broker API,按照CloudFoundry這套規(guī)則出牌么?筆者認(rèn)為沒(méi)有這個(gè)必要。app仍然按照之前訪(fǎng)問(wèn)MySQL服務(wù)的方式去做即可,沒(méi)有任何問(wèn)題。

Message Bus

CloudFoundry使用NATS作為內(nèi)部組件之間通信的媒介,NATS是一個(gè)輕量級(jí)的基于pub-sub機(jī)制的分布式消息隊(duì)列系統(tǒng),是整個(gè)系統(tǒng)可以松散耦合的基石。

我們以向router注冊(cè)路由為例來(lái)說(shuō)明NATS的作用。不管是外部用戶(hù)對(duì)平臺(tái)上的應(yīng)用發(fā)起的請(qǐng)求,還是對(duì)內(nèi)部組件(比如Cloud Controller、UAA)發(fā)起的請(qǐng)求,都是經(jīng)由router做的轉(zhuǎn)發(fā),要能讓router轉(zhuǎn)發(fā)則首先需要向router注冊(cè)路由。大體邏輯實(shí)現(xiàn)如下:

  • router啟動(dòng)時(shí),會(huì)訂閱router.register這個(gè)channel,同時(shí)也會(huì)定時(shí)的向router.start這個(gè)channel發(fā)送數(shù)據(jù)
  • 其他需要向router注冊(cè)的組件,啟動(dòng)時(shí)會(huì)訂閱router.start這個(gè)channel。一旦接收到消息,會(huì)立刻收集需要注冊(cè)的信息(如ip、port等),然后向router.register這個(gè)channel發(fā)送消息。
  • router接收到router.register消息后立即更新路由信息
  • 以上過(guò)程不停循環(huán),使router的狀態(tài)時(shí)刻保持最新

Logging and Statistics

Metrics Collector會(huì)從各個(gè)模塊收集監(jiān)控?cái)?shù)據(jù),運(yùn)維工程師可以據(jù)此來(lái)監(jiān)控CloudFoundry,出了問(wèn)題及時(shí)發(fā)現(xiàn)并處理。物理機(jī)的硬件監(jiān)控則可以采用傳統(tǒng)的一些監(jiān)控系統(tǒng)來(lái)做,比如zabbix之類(lèi)的。

Log這塊是個(gè)大話(huà)題,CloudFoundry提供了Log Aggregator來(lái)收集app的log。我們也可以通過(guò)其他手段直接把log通過(guò)網(wǎng)絡(luò)打出來(lái),比如syslog、scribe之類(lèi)的。

參考資料

  • 《CloudFoundry社區(qū)文檔》 http://docs.cloudfoundry.org/
  • 《limengyun’s blog》 http://limengyun.com/
  • 《新版CloudFoundry揭秘》 http://qing.blog.sina.com.cn/2294942122/88ca09aa33001753.html

本文出自:http://blog.ulricqin.com/article/cloudfoundry-component

責(zé)任編輯:林師授 來(lái)源: UlricQin's Blog
相關(guān)推薦

2014-11-06 09:49:22

CloudFoundrPaaS

2015-04-14 11:10:22

PaaSCloudFoundrBuildpack

2020-09-26 07:19:46

Java

2011-03-18 09:27:00

Spring

2009-07-15 10:52:13

JTree組件

2015-01-15 09:27:17

CloudFoundrPaaS開(kāi)源

2009-04-29 10:00:25

SQL邏輯查詢(xún)優(yōu)化

2009-06-18 10:41:03

RuntimeVers.NET組件

2018-11-06 10:51:07

Redis開(kāi)發(fā)存儲(chǔ)系統(tǒng)

2009-10-14 09:08:23

Visual Stud

2010-02-03 15:59:08

Android組件

2010-06-10 13:28:43

路由信息協(xié)議RIP

2012-05-11 10:38:15

Cloud Found

2023-06-28 08:34:02

Bind()函數(shù)JavaScript

2022-06-09 08:17:30

Python__new__

2012-03-27 11:45:21

vmwareCloudFoundrPostgreSQL

2011-08-16 19:27:53

ORACLE GOLD

2021-05-28 05:40:58

killkill -0 pidLinux

2009-09-16 13:05:32

C#組件開(kāi)發(fā)

2009-09-17 16:34:24

C#組件類(lèi)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

在线视频你懂得一区二区三区| 丝袜美腿av在线| 这里只有精品视频在线| 麻豆成人av在线| 爱草tv视频在线观看992| 色撸撸在线观看| 国产午夜精品全部视频在线播放 | 久久大综合网| 欧美日韩激情视频一区二区三区| 1区1区3区4区产品乱码芒果精品| 欧美亚洲一区二区在线观看| 国产农村妇女毛片精品久久莱园子| 中文在线观看免费| 欧美 日韩 国产 在线观看| 在线观看欧美www| 久久蜜桃av一区精品变态类天堂| 韩国精品福利一区二区三区| 中文在线三区| 欧洲精品在线一区| 亚洲色图美腿丝袜| 国产精品成人免费精品自在线观看| 91免费精品| 午夜小视频在线观看| 欧美黑人经典片免费观看| 97精品在线视频| 色哟哟欧美精品| 日韩激情视频网站| 欧美不卡在线观看| 亚洲精品套图| 亚洲一区二区高清视频| 欧美激情视频在线免费观看 欧美视频免费一 | 精品久久久精品| 首页国产欧美日韩丝袜| 黄色精品视频| 亚洲 激情 在线| 亚洲最大的av网站| 日韩精品中文字| 国产精品久久久久影视| 在线精品福利| 91精品美女| 中文在线a√在线8| 国产一区一区三区| 国产91免费看片| 欧美一级理论性理论a| 2020国产精品自拍| 红桃视频亚洲| 国产精品亚洲一区二区在线观看| 污视频在线观看免费| 久久久久久久久久久久久国产| 668精品在线视频| 欧美一级免费大片| 亚洲欧洲成人自拍| 免费高清视频精品| 日本成人a网站| 不卡一本毛片| 羞羞网www| 免费观看国产视频在线| 日本午夜人人精品| 日韩电视剧免费观看网站| 亚洲男同性恋视频| 韩国欧美国产1区| 我不卡伦不卡影院| 亚洲综合伊人| а√中文在线8| 国产乱真实合集| 久久综合亚洲精品| 波多野结衣一区二区三区在线观看| 中文字幕视频一区二区在线有码 | 国产日韩免费| 一区二区三区四区在线看| 亚洲深夜视频| 国产福利第一视频在线播放| 66av99| 男人的天堂avav| 精品国产福利| 青青草一区二区| 亚洲天堂免费观看| 欧美片网站yy| 亚洲国产精品久久久男人的天堂| 9人人澡人人爽人人精品| 久久久噜噜噜久久狠狠50岁| 91麻豆精品国产91久久久平台| 久久久91麻豆精品国产一区| 99thz桃花论族在线播放| 每日更新av在线播放| 亚洲久久中文字幕| 久操网在线观看| 亚洲一区二区在线免费观看| 国产不卡一区二区三区在线观看| 欧美一性一乱一交一视频| 日韩精品极品在线观看播放免费视频| 色久综合一二码| 亚洲精品免费电影| 国产女主播视频一区二区| 国产成人综合亚洲91猫咪| 日韩电影免费在线看| 极品日韩av| 欧美+日本+国产+在线a∨观看| 国产成人一区| 高清日韩欧美| 精品国产18久久久久久二百| 成人va天堂| 暧暧视频在线免费观看| 久草资源在线观看| 黄色av免费在线看| 久草在线新资源| 欧美aaa大片| av免费播放| 婷婷亚洲天堂| 亚洲这里只有精品| 看欧美ab黄色大片视频免费| 日韩中文字幕在线视频观看| 国产一级不卡视频| 日韩国产精品毛片| 特级毛片在线免费观看| 亚洲精品一区国产精品| 日韩激情视频| 日韩av一区二区三区在线| 欧美激情视频一区二区三区| 精品人伦一区二区三区| 粉嫩av一区二区三区免费观看| 成人女保姆的销魂服务| 91精品久久久久久久| 成人av在线网址| 成人激情综合网| 97人人澡人人爽| 国产免费一区| 久久久久久久久久久久久久久久av | 欧美极品欧美精品欧美图片| 国产v片免费观看| 日韩中字在线观看| 免费看国产曰批40分钟| 亚洲午夜精品久久久久久人妖| 国产精品www在线观看| 国产日韩欧美精品在线观看| 黄色一级在线视频| 久久久久久香蕉| wwwav91com| 亚洲欧洲动漫| 经典三级在线| 黄色免费网站在线观看| 欧美14一18处毛片| 欧美电影免费观看| 日韩护士脚交太爽了| 成人性生交大片免费看96| 中文字幕中文字幕精品| 国产精品99久久| 99精品视频免费观看| 日韩成人免费在线| 国产成人自拍在线| 国产欧美日韩三区| 亚洲国产日韩a在线播放| 色综合中文综合网| 欧美一区二区精品在线| 亚洲欧美综合区自拍另类| 久久最新资源网| 91成人在线播放| 91精品视频在线| 欧美日韩一区在线观看视频| 中文字幕色呦呦| 精品日韩久久久| 婷婷国产在线| 久久五月精品中文字幕| 激情久久一区二区| 国产丝袜一区| 欧美一区二区三区另类| 95在线视频| 麻豆av在线免费看| www.精品| 欧美亚视频在线中文字幕免费| 天天久久综合| 蜜臀久久久久久久| 国产夜色精品一区二区av| 亚洲午夜久久久久久久久电影网 | 亚洲激情专区| 国产精一区二区三区| 中文成人综合网| 欧美视频在线播放| 一区二区中文字幕| 97国产精品视频| 99在线热播| 日韩a级黄色片| 男女激情网站| 影音先锋中文在线视频| 99视频有精品高清视频| 我不卡手机影院| 国产成人一区二区精品非洲| 亚洲人精品午夜| 91精品国产综合久久精品app | 欧美一区二区影视| 免费看欧美一级片| 免费成年网站| 国精产品一区一区三区mba下载| 欧美特黄不卡| 一区二区自拍| 久久久久国产精品免费免费搜索| 狠狠色狠色综合曰曰| 中文字幕亚洲二区| 91网站在线免费观看| www.九色.com|