成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Docker開發的PaaS平臺 DINP

云計算 PaaS
如果你對 Docker比較熟悉,那DINP對你來說會很簡單,我們并沒有做太多事情,你理解起來也會相對輕松。PaaS中需要一個通用打包規范,我們使用了 Dockerfile;PaaS中需要一個SCM存放發布包,我們使用了Docker Registry;PaaS中需要一個container來run app,我們使用了Docker。另外PaaS中需要一個七層router,我們使用了CloudFoundry提供的gorouter。DINP的絕大 部分組件都是Golang寫的,靜態編譯的語言部署起來超方便。

DINP是又一個基于Docker開發的PaaS平臺。

DINP 包含如下組件:

  • dinp-server master組件,控制集群中所有計算節點

  • dinp-agent Agent,部署在所有計算節點,收集各個節點運行狀態和container列表

  • dinp-builder 編配平臺,負責把用戶代碼打包為Docker image

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

  • dinp-router 負責請求的路由等功能

  • dinp-hm Health Monitor,對APP的rs進行7層健康檢查

  • dinp-common 公共函數、數據結構

之所以用了“又”字,是因為現在的PaaS平臺著實很多,DINP只不過是又造了個輪子,下面給大家說說這個輪子與其他輪子的不同點。

 

1. DINP只接管web應用

PaaS 平臺是個規范性很強的平臺,app要用PaaS托管,必須要滿足1、2、3...n條規范才可以。web應用通常無狀態,邏輯簡單,部署方式統一故而可以 使用PaaS托管。但對于一些分布式大型軟件、復雜的rpc服務,部署架構復雜,并不適合用PaaS托管。有所為有所不為,DINP只接管web應用。

 

2. DINP不接管代碼的編譯環節

像 tsuru之類的PaaS,從代碼的push就開始接管了。他們通常要求用戶把代碼push到指定repo的指定分支,以此觸發git receiver,git receiver與后端其他組件協同,拉取用戶最新代碼,下載dependency,編譯,打包等等。但是在國內,因為一些原因,下載 dependency是一個很費勁的過程。如果這個動作放到平臺來做,用戶每次要上線了都要等待一個漫長的過程是不可接受的。

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

 

3. DINP夠簡單

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

 

4. DINP的架構

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

 

5. 服務接入

如 果你玩過CloudFoundry,會很敏感的發現,DINP沒有接管MySQL、Memcache、Redis、MQ等等服務。為什么呢?我們的想法是 這樣的:專業的人做專業的事,在公司里,MySQL、Redis之類的服務已經有DBA團隊運維管理了很久了。他們是最懂的人,他們已經形成了一整套成熟 的部署規范,運維流程。只要提供一個連接地址,一個賬號讓PaaS上的App連上去就行了,何必非要把MySQL與DINP做很強的關聯整合呢

 

補充

DINP在公司內部小規模用了幾個月,沒有出什么問題,大家可以玩一玩了。

責任編輯:林師授 來源: 開源中國社區
相關推薦

2014-11-25 13:13:26

dockerpaasflynn

2014-07-30 09:35:36

DockerPaaS

2015-01-15 09:27:17

CloudFoundrPaaS開源

2016-08-23 10:59:33

2024-03-12 12:22:16

2011-11-23 09:22:06

云計算PaaSIaaS

2012-04-19 14:30:07

華勝天成PaaS

2011-05-23 15:56:56

Android

2015-01-04 09:49:37

PHPDocker開發環境

2012-10-08 10:48:54

中軟國際阿里云PaaS

2012-06-29 09:30:14

Red HatPaaS 平臺

2017-12-10 20:53:56

Docker持續交付容器

2012-05-14 10:39:19

2011-08-12 08:40:39

PaaSOpenShiftJava EE 6

2017-12-11 17:53:02

物聯網CIO大數據

2012-02-17 10:04:06

JavaPlay!

2014-04-02 09:28:22

紅帽OpenShift P

2014-04-02 09:24:03

紅帽

2021-12-31 18:19:18

平臺即服務PaaS云計算服務平臺
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中国一级特黄真人毛片免费观看 | 日韩午夜一区二区三区 | 国产欧美视频一区二区三区 | 欧美二区在线 | 久久新| 欧美人妖网站 | 国产精品高潮呻吟久久 | 91免费高清视频 | 久草网免费 | 久久精品免费一区二区 | 亚洲大片一区 | 欧美日韩国产精品一区 | 丝袜美腿一区二区三区动态图 | 久久亚洲精品国产精品紫薇 | 日韩免费| 国产成人精品一区二区三区视频 | 一区二区三区久久久 | 日韩精品一区二区三区中文字幕 | 中文字幕一区二区三区乱码图片 | 国产精品精品3d动漫 | 久久久久九九九女人毛片 | h在线播放| 久久久久九九九女人毛片 | 精品久久久久久亚洲国产800 | 日韩视频―中文字幕 | 国产色视频网站 | 天天看天天摸天天操 | 成人在线观看免费 | 欧美在线观看一区二区 | 黄色播放 | 日本不卡一区二区三区在线观看 | 国产日韩视频 | 亚洲国产成人av好男人在线观看 | 国产精品国产精品国产专区不片 | 二区精品| 亚洲一级毛片 | 久久精品久久精品久久精品 | www.日韩 | 欧美日韩不卡合集视频 | 午夜视频免费网站 | 喷潮网站 |