電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>DINP基于Docker開發(fā)的PaaS平臺(tái)

DINP基于Docker開發(fā)的PaaS平臺(tái)

2022-05-11 | zip | 0.01 MB | 次下載 | 免費(fèi)

資料介紹

授權(quán)協(xié)議 Apache
開發(fā)語言 Google Go
軟件類型 開源軟件

軟件簡(jiǎn)介

DINP是又一個(gè)基于Docker開發(fā)的PaaS平臺(tái)。

DINP 包含如下組件:

  • dinp-server?master組件,控制集群中所有計(jì)算節(jié)點(diǎn)

  • dinp-agent?Agent,部署在所有計(jì)算節(jié)點(diǎn),收集各個(gè)節(jié)點(diǎn)運(yùn)行狀態(tài)和container列表

  • dinp-builder?編配平臺(tái),負(fù)責(zé)把用戶代碼打包為Docker image

  • dinp-dash?Dashboard,用戶操作的入口

  • dinp-router?負(fù)責(zé)請(qǐng)求的路由等功能

  • dinp-hm?Health Monitor,對(duì)APP的rs進(jìn)行7層健康檢查

  • dinp-common?公共函數(shù)、數(shù)據(jù)結(jié)構(gòu)

之所以用了“又”字,是因?yàn)楝F(xiàn)在的PaaS平臺(tái)著實(shí)很多,DINP只不過是又造了個(gè)輪子,下面給大家說說這個(gè)輪子與其他輪子的不同點(diǎn)。

1. DINP只接管web應(yīng)用
PaaS平臺(tái)是個(gè)規(guī)范性很強(qiáng)的平臺(tái),app要用PaaS托管,必須要滿足1、2、3...n條規(guī)范才可以。web應(yīng)用通常無狀態(tài),邏輯簡(jiǎn)單,部署方式統(tǒng)一故而可以使用PaaS托管。但對(duì)于一些分布式大型軟件、復(fù)雜的rpc服務(wù),部署架構(gòu)復(fù)雜,并不適合用PaaS托管。有所為有所不為,DINP只接管web應(yīng)用。

2. DINP不接管代碼的編譯環(huán)節(jié)
像tsuru之類的PaaS,從代碼的push就開始接管了。他們通常要求用戶把代碼push到指定repo的指定分支,以此觸發(fā)git receiver,git receiver與后端其他組件協(xié)同,拉取用戶最新代碼,下載dependency,編譯,打包等等。但是在國(guó)內(nèi),因?yàn)橐恍┰?,下載dependency是一個(gè)很費(fèi)勁的過程。如果這個(gè)動(dòng)作放到平臺(tái)來做,用戶每次要上線了都要等待一個(gè)漫長(zhǎng)的過程是不可接受的。

所以,DINP不接管代碼的編譯環(huán)節(jié),需要用戶自己通過科學(xué)上網(wǎng)的方式搞定。比如Java,用戶把最終的war包扔給DINP即可,而不能是扔一堆.java源文件和pom.xml;比如Golang,用戶把編譯好的二進(jìn)制扔給DINP即可,而不能扔一堆.go源文件;比如Python,用戶最好提前下載好相關(guān)lib庫(kù),然后加入環(huán)境變量,而不是提供一個(gè)pip_requirements.txt,當(dāng)然,對(duì)于一些特別容易安裝的lib庫(kù),用戶提供一個(gè)pip_requirements.txt也未嘗不可,DINP也支持,但是不推薦。

3. DINP夠簡(jiǎn)單
如果你對(duì)Docker比較熟悉,那DINP對(duì)你來說會(huì)很簡(jiǎn)單,我們并沒有做太多事情,你理解起來也會(huì)相對(duì)輕松。PaaS中需要一個(gè)通用打包規(guī)范,我們使用了Dockerfile;PaaS中需要一個(gè)SCM存放發(fā)布包,我們使用了Docker Registry;PaaS中需要一個(gè)container來run app,我們使用了Docker。另外PaaS中需要一個(gè)七層router,我們使用了CloudFoundry提供的gorouter。DINP的絕大部分組件都是Golang寫的,靜態(tài)編譯的語言部署起來超方便。Dashboard和UIC是用Java寫的,基于JFinal框架,很簡(jiǎn)單的,相信我

4. DINP的架構(gòu)

poYBAGJpI9SAOSt6AAMR79gr8Bc077.png

?

a. 用戶把代碼打包為.tar.gz,交給Builder打包為一個(gè)Docker image
b. 拿到Builder產(chǎn)出的Docker image去Dashboard創(chuàng)建一個(gè)App,設(shè)置好實(shí)例數(shù)、內(nèi)存大小、image地址,O了。Dashboard把用戶填寫的這些信息寫入MySQL
c. Server定期從MySQL同步用戶期望的數(shù)據(jù),姑且稱之為desired state
d. 部署在所有計(jì)算節(jié)點(diǎn)的Agent與Server之間有心跳通信,收集本機(jī)的剩余內(nèi)存量和container列表,姑且稱之為real state
e. Server對(duì)比desired state和real state,發(fā)現(xiàn)某個(gè)App的實(shí)例數(shù)少了就去調(diào)度新的計(jì)算節(jié)點(diǎn)創(chuàng)建新實(shí)例,如果發(fā)現(xiàn)某個(gè)App實(shí)例數(shù)多了,就干掉多余的實(shí)例
f. Server同時(shí)會(huì)分析real state,組織出路由信息寫入redis
g. Router定期從redis中獲取路由信息
h. Router通常部署多個(gè),前面部署LVS,注冊(cè)一個(gè)域名,比如apps.io,把*.apps.io這個(gè)泛域名解析到LVS VIP,整個(gè)流程就通了

5. 服務(wù)接入
如果你玩過CloudFoundry,會(huì)很敏感的發(fā)現(xiàn),DINP沒有接管MySQL、Memcache、Redis、MQ等等服務(wù)。為什么呢?我們的想法是這樣的:專業(yè)的人做專業(yè)的事,在公司里,MySQL、Redis之類的服務(wù)已經(jīng)有DBA團(tuán)隊(duì)運(yùn)維管理了很久了。他們是最懂的人,他們已經(jīng)形成了一整套成熟的部署規(guī)范,運(yùn)維流程。只要提供一個(gè)連接地址,一個(gè)賬號(hào)讓PaaS上的App連上去就行了,何必非要把MySQL與DINP做很強(qiáng)的關(guān)聯(lián)整合呢

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)