基于Docker的CaaS容器云平臺架構設計及市場分析
基于 Docker 的 CaaS 容器云平臺 架構設計及市場分析
---轉載請注明出處,多謝!---
1 項目背景 --- 概述:
“在移動互聯網時代,企業需要尋找新的軟件交付流程和 IT 架構,從而實現架構平臺化,交付持續化,業務服務化。
容器將成為新一代應用的標準交付件,容器云將幫助企業用戶構建研發流程和云平臺基礎設施。縮短應用向云端交付的周期,降低運營門檻。加速企業向互聯網技術和業務的雙轉型。
容器云將對接各類代碼托管庫,實現自動化持續集成和 DOCKER 鏡像構建,為新一代應用交付和開發運維一體化奠定了基礎。容器云將支持應用的一鍵式部署交付,提供負載均衡,私有域名綁定,性能監控等應用生命周期管理服務。是微服務架構,輕量級應用部署和運維的理想平臺。
容器云是支持公有云,私有云,并且可跨云跨網進行管理的混合式容器運維平臺。
容器云將與應用交付平臺無縫對接,實現新一代應用在公有云,私有云的靈活交付。
容器云將為企業打造面向下一代互聯網應用的交付和運維平臺。
變革應用交付,推動持續創新。”
---以上描述摘自DaoCloud 宣傳片廣告詞
2 項目背景 ---IaaS /PaaS/SaaS 區別與聯系:
IaaS (基礎設施即服務) :提供虛擬機或者其他 基礎資源作為服務提供給用戶。用戶可以從供應商那里獲得虛擬機或者存儲等資源來裝載相關的應用,同時這些基礎設施的繁瑣的管理工作將由 IaaS 供應商來處理。 IaaS 主要的用戶是企業的系統管理員和運維人員。
PaaS (平臺即服務) :把開發平臺作為服務提供給用戶。用戶可以在一個包括 SDK ,文檔和測試環境等在內的開發平臺上非常方便地編寫應用,而且不論是在部署,或者在運行的時候,用戶都無需為服務器,操作系統,網絡和存儲等資源的管理操心,這些繁瑣的工作都由 PaaS 供應商負責處理。 PaaS 主要的用戶是企業開發人員。
SaaS (軟件即服務) :將應用作為服務提供給客戶。用戶只要接上網絡,并通過瀏覽器,就能直接使用在云端上運行的應用,而不需要顧慮類似安裝等瑣事,并且免去初期高昂的軟硬件投入。 SaaS 主要面對的是普通的用戶。
CaaS (容器即服務) :完成 IaaS 和 PaaS 兩個層級的功能。相 對于傳統的 IaaS 和 PaaS 服務, CaaS 對底層的支持比 PaaS 更靈活,而對上層應用的操控又比 IaaS 更容易。同時因為 Docker 是比 VM 更細粒度的虛擬化服務,所以能夠對計算資源做到更高效的利用。 CaaS 可以部署在任何物理機,虛擬機或 I aaS 云之上。
3 項目背景---CaaS 云平臺技術架構
4 項目背景 --- CaaS云平臺領域技術現狀
技術關鍵字解析:
- 集群框架: 容器集群管理及編排系統。
- 代碼持續集成: 完全自動化的代碼管理,包括源代碼存儲、編譯、連接、測試、發布整個創建過程都應該自動完成。
- 多租戶管理: 實現多用戶的環境下共用相同的系統或程序組件,并且仍可確保各用戶間資源的隔離性。
- 跨主機集群: 可以將本地云平臺內部容器資源,平臺外部的客戶自有容器資源,及各種第三方公有云容器資源結合到一起形成混合容器云資源模式。
- 鏡像倉庫: 提供本地公有/ 私有 鏡像倉庫,提供第三方鏡像倉庫或DockerHub 鏡像資源集成。
- 應用編排服務: 使容器之間能夠通信、彼此可以傳遞運行期 , 同時管理多個容器的行為。當容器集群共同構建應用架構時,需要考慮集群環境中的容器,哪些端口需要暴露、哪些卷需要掛載等信息。
- 專屬主機: 即從本地云平臺中提供給用戶的專屬虛擬主機環境用于構建容器集群應用。
- APaaS 服務 : 基于 PaaS 之上的公有中間層 SDK 開發組件或 API 調用接口,及公有 APaaS 服務平臺。例:用戶統一身份認證組件, APP 的消息推送組件,公有消息隊列平臺等。
- 容器管控: 對容器進行 CPU/ 內存資源配置, SSH 或控制臺容器接入,網絡配置,環境變量設置,數據卷掛接,資源監控,日志管控,事件記錄,二級域名或自有域名分配等功能。
- 數據卷或云盤: 基于云平臺的數據存儲工具。主要用于容器間數據共享,或某容器的外接數據卷進行數據持久化存儲。
CaaS平臺 |
集群框架 |
代碼持續集成 |
|
某云平臺 A |
Docker Swarm |
支持 Github,Bitbucket,Coding,GitCafe 等第三方代碼倉庫。自動偵測本地用戶賬號,并找到該賬號下的工程代碼或資源,根據該工程下的 DockerFile 在本地云平臺 Build 成鏡像文件,并可手動 / 自動部署或發布。 支持客戶端代碼持續集成。 |
|
某云平臺 B |
Azure |
同某云平臺 A 。 |
|
某云平臺 C |
Kubernetes/Mesos |
同某云平臺 A 。 |
|
CaaS平臺 |
多租戶管理 |
跨主機集群 |
鏡像倉庫 |
某云平臺 A |
支持 |
支持 騰訊云,阿里云, UCloud, AWS 等 IAAS 虛擬主機 |
支持 本地公有,租戶私有, DockerHub |
某云平臺 B |
支持 |
只支持本地云跨主機 |
支持 |
某云平臺 C |
支持 |
支持 |
支持 |
CaaS平臺 |
應用編排服務 |
專屬主機 |
APaaS 服務 |
某云平臺 A |
支持 |
支持 |
健康監控 |
某云平臺 B |
支持 |
支持 |
不支持 |
某云平臺 C |
支持 |
支持 |
不支持 |
CaaS平臺 |
容器管控 |
數據卷或云盤 |
|
某云平臺 A |
支持 |
支持 |
|
某云平臺 B |
支持 |
支持 |
|
某云平臺 C |
支持 |
支持 |
5 項目背景 --- CaaS 產品 銷營銷模式及現狀
CaaS 平臺 |
銷售模式 |
某云平臺 A |
免費用戶: 對容器數量有限制, Max 容器數: 2 付費用戶: 對容器數劃分若干套餐,并按月收費。 例: 8x 套餐:¥ 49/ 月,最多 8 容器。 |
某云平臺 B |
免費用戶: 對容器數量和CPU 數量有限制, Max 容器數: 4 CPU 數: 2 付費用戶: 對資源( CPU ,內存,磁盤,帶寬)等劃分為若干套餐,并按月收費或按日收費。用戶可清晰的在 WEB 上看到每日賬單。 例: S 套餐:¥ 58/ 月, 1CPU 共享, 1GB 內存, 10GB 磁盤, 10MB 共享帶寬。 對于專屬主機單獨收費。 定期有活動促銷優惠。 |
某云平臺 C |
免費用戶: CPU : 0.3 網絡: 10M 帶寬 內存: 0.5G 磁盤: 0.6G 測試集群: 1 個 付費用戶: 對資源(CPU ,內存,網絡,磁盤,編排服務)等劃分為若干套餐,按小時計費。用戶可清晰的在 WEB 上看到每時賬單。 例: S 套餐: $56/ 月, 1CPU 共享, 1G 內存, 10G 硬盤, 10M 共享帶寬。 另提供 VIP 套餐,即集群套餐。 例: M 套餐:¥ 99/ 月, 1 個集群即 10 個容器節點 |
CaaS 平臺 |
現狀 |
某云平臺 A |
CEO ,來自微軟 Azure 和 VMware PaaS 架構師。 CTO ,來自 EMC 中國研究院總架構師。已獲得光速安振創投基金數百萬美元的 PreA 輪投資。至今,已經吸引了近萬個開發者和企業用戶。目前, 某云平臺 A 節點分布在全球 6 個數據中心,大約有上千個業務同時運行,卻只有“半個”運維工程師。 |
某云平臺 B |
CEO , CTO 。 15 年 10 月完成 A 輪 1000 萬美金融資(寬帶資本天使,高榕資本 PreA 輪 200 萬美金,高榕資本 A 輪 1000 萬美金),兩名微軟 Azure 團隊重要架構師。 從 6 月上線以來,已經為幾十家企業客戶服務,包括金山、微軟、 e 袋洗等,使用的開發者達到了上萬人 。 |
某云平臺 C |
CEO ,來自 IBM CDL 工程師。創業團隊核心人員來自 IBM ,阿里等。目前完成了天使輪 500 萬人民幣融資,正在尋求 A 輪融資。截止 7 月底, 某云平臺 C 已經擁有超過 5 千用戶,運行了超過 5 萬個容器。目前 某云平臺 C 有 15 名員工,其中 13 名研發人員,包括 CEO 都在抽時間寫代碼。 |
美國 Docker |
美國 Docker 公司經過 2014 年一月到 2015 年 4 月的三輪融資,總共融到了來自紅杉資本和高盛等的 1 億 6000 萬美元 。 |
6 項目背景--- 我們為何 CaaS ?
為何CaaS ?
* 未來 IT 界會以容器化應用作為交付的標準。 CaaS 容器云為開發者和企業提供了一個快速構建、集成、部署、運行容器化應用的平臺,從而提高應用開發的迭代效率,簡化運維環節,降低運維成本。
- 1.首先作為公司內部技術紐帶,多應用統一部署平臺,提高開發效率,減少運維成本。
- 2.CaaS 平臺產品化過程中,投入少且產出價值高。因為可依托現有的 IaaS 平臺資源,相對于傳統的承接項目獲益的方式, CaaS 即使短期內經濟上收益甚微,但會積累寶貴的客戶資源及數據資源,這些無形資產最終會為公司贏得巨大戰略價值(更廣泛的資源整合,更多的合作伙伴加盟等)。
- 3.增加云企業辨識度,如果只具有 IaaS 層服務的云平臺是不完整的,對用戶的云服務是不充分的,應該具有為用戶提供全方位的云服務體系,應該具有先進且高附加值的云平臺。
7 項目背景 ---CaaS 云平臺功能模塊
鏡像倉庫管控:
本地鏡像倉庫:創建本地鏡像倉庫,為平臺提供自有鏡像資源支持。
本地鏡像倉庫搭建,本地鏡像文件基礎管理(版本,描述,指南,后期制作 / 調試), DockerHub 或第三方鏡像倉庫掛接
容器基礎功能:容器是平臺中最小計算單元,針對容器的基礎管理功能。
鏡像/容器配置,容器生命期管理(啟動,停止,刪除),容器資源配置( CPU ,內存,磁盤),容器參數設置(執行命令,接入點),端口映射配置(直聯端口,內聯方式,負載均衡端口),環境變量設置,容器信息顯示,容器日志管理,容器資源監控( CPU ,內存,帶寬)
容器服務管理:容器服務是指通過啟動基于一個鏡像文件的多個容器共同完成某應用的負載均衡功能,比如啟動多個 Tomcat 容器做某 Web 應用的服務端負載均衡場景。
服務分類管理(應用,數據,工具,磁盤),服務生命期管理(啟動,停止,刪除),多容器彈性伸縮配置(自動,手動 CPU/ 內存閾值),多容器負載均衡,服務間鏈接管理,服務日志管理
容器應用管理:容器應用是由多個容器服務共同完成用戶業務目標的架構。比如某業務架構的容器應用為( Ngnix 服務 +Tomcat 服務 +MySql 服務 + 數據卷服務
應用生命期管理(啟動,停止,刪除),應用編排,應用基本信息管理,應用域名管理(二級域名,自有域名),應用資源監控( CPU ,內存,帶寬),應用事件描述
主機集群管理(域管理):主機域包括本地平臺主機集群環境,第三方公有云主機集群接入,用戶私有主機接入等。
主機生命期管理(接入,退出),第三方公有云主機管理,域資源監控( CPU ,內存,帶寬)。
數據卷管理:數據卷是在宿主機上存在的特殊用途目錄,為了完成某些容器數據持久化,榮期間數據共享等功能。還可以作為用戶云盤使用。
數據卷生命期管理(創建,配置,刪除),數據卷信息顯示
租戶管理:接入平臺的用戶個人屬性管理
賬戶及套餐管理,個人信息管理
用戶域及Dashboard功能:本平臺內全部資源共同集合成公有域,而在本平臺內的租戶只能管控自己私有域中的資源,所以要對平臺進行邏輯分層,至少分為公有域和用戶私有域兩層。而對層級的劃分后,會涉及到以上各功能點的用戶私有域表現。
持續集成:為了實現代碼持續集成的能力,需要掛接公共代碼倉庫(GITHub , GITCafe )等。
公共代碼庫API 接口調用(用戶身份認證 / 授權,項目 / 代碼 接入,持續集成事件回調)等。
APaaS 服務工廠管理 :
APP 消息推送服務,用戶統一認證服務,公共消息平臺,健康監控平臺等 APaaS 服務管理。
/*--------------------------------------------------------------------------------------*/
作者自述:
本人從事十六年WINDOWS應用/游戲/設備/WEB開發,目前從事Linux,Docker及CAAS云平臺架構設計及開發。
基于全球開源共享理念,本人會分享更多原創及譯文,讓更多的IT人從中受益,與大家一起進步!
基因Cloud 原創,轉發請注明出處
1738387@qq.com (工作繁忙,有事發郵件,QQ不加,非要事勿擾,多謝!)
2015.11 月