基於Docker的CaaS容器雲平臺架構設計及市場分析

天府雲創發表於2017-05-03

基於DockerCaaS容器雲平臺架構設計及市場分析

---轉載請註明出處,多謝!---

 

1 專案背景---概述:

  “在移動網際網路時代,企業需要尋找新的軟體交付流程和IT架構,從而實現架構平臺化,交付持續化,業務服務化。

容器將成為新一代應用的標準交付件,容器雲將幫助企業使用者構建研發流程和雲平臺基礎設施。縮短應用向雲端交付的週期,降低運營門檻。加速企業向網際網路技術和業務的雙轉型。

  容器雲將對接各類程式碼託管庫,實現自動化持續整合和DOCKER映象構建,為新一代應用交付和開發運維一體化奠定了基礎。容器雲將支援應用的一鍵式部署交付,提供負載均衡,私有域名繫結,效能監控等應用生命週期管理服務。是微服務架構,輕量級應用部署和運維的理想平臺。

 

  容器雲是支援公有云,私有云,並且可跨雲跨網進行管理的混合式容器運維平臺。

  容器雲將與應用交付平臺無縫對接,實現新一代應用在公有云,私有云的靈活交付。

  容器雲將為企業打造面向下一代網際網路應用的交付和運維平臺。

  變革應用交付,推動持續創新。”

---以上描述摘自DaoCloud宣傳片廣告詞

 

2 專案背景---IaaS/PaaS/SaaS區別與聯絡:

 

 

  IaaS(基礎設施即服務):提供虛擬機器或者其他基礎資源作為服務提供給使用者。使用者可以從供應商那裡獲得虛擬機器或者儲存等資源來裝載相關的應用,同時這些基礎設施的繁瑣的管理工作將由IaaS供應商來處理。IaaS主要的使用者是企業的系統管理員和運維人員。

 

  PaaS(平臺即服務):把開發平臺作為服務提供給使用者。使用者可以在一個包括SDK,文件和測試環境等在內的開發平臺上非常方便地編寫應用,而且不論是在部署,或者在執行的時候,使用者都無需為伺服器,作業系統,網路和儲存等資源的管理操心,這些繁瑣的工作都由PaaS供應商負責處理。PaaS主要的使用者是企業開發人員。

 

  SaaS(軟體即服務):將應用作為服務提供給客戶。使用者只要接上網路,並通過瀏覽器,就能直接使用在雲端上執行的應用,而不需要顧慮類似安裝等瑣事,並且免去初期高昂的軟硬體投入。SaaS主要面對的是普通的使用者。

 

  CaaS(容器即服務):完成IaaSPaaS兩個層級的功能。相對於傳統的IaaSPaaS服務,CaaS對底層的支援比PaaS更靈活,而對上層應用的操控又比IaaS更容易。同時因為Docker是比VM更細粒度的虛擬化服務,所以能夠對計算資源做到更高效的利用。CaaS可以部署在任何物理機,虛擬機器或IaaS雲之上。

 

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,

AWSIAAS虛擬主機

支援

本地公有,租戶私有,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

免費使用者:

CPU0.3 網路:10M頻寬 記憶體:0.5G 磁碟:0.6G 測試叢集:1

 

付費使用者:

對資源(CPU,記憶體,網路,磁碟,編排服務)等劃分為若干套餐,按小時計費。使用者可清晰的在WEB上看到每時賬單。

例:S套餐:$56/月,1CPU共享,1G記憶體,10G硬碟,10M共享頻寬。

 

另提供VIP套餐,即叢集套餐。

例:M套餐:¥99/月,1個叢集即10個容器節點

 

CaaS平臺

現狀

某雲平臺A

CEO,來自微軟AzureVMware PaaS架構師。CTO,來自EMC 中國研究院總架構師。已獲得光速安振創投基金數百萬美元的PreA輪投資。至今,已經吸引了近萬個開發者和企業使用者。目前,某雲平臺A節點分佈在全球6個資料中心,大約有上千個業務同時執行,卻只有“半個”運維工程師。

某雲平臺B

CEOCTO1510月完成A1000萬美金融資(寬頻資本天使,高榕資本PreA200萬美金,高榕資本A1000萬美金),兩名微軟Azure團隊重要架構師。從 6月上線以來,已經為幾十家企業客戶服務,包括金山、微軟、袋洗等,使用的開發者達到了上萬人

某雲平臺C

CEO,來自IBM CDL工程師。創業團隊核心人員來自IBM,阿里等。目前完成了天使輪500萬人民幣融資,正在尋求A輪融資。截止7月底,某雲平臺C已經擁有超過5千使用者,執行了超過 萬個容器。目前某雲平臺C有 15 名員工,其中 13 名研發人員,包括CEO都在抽時間寫程式碼。

美國Docker

美國Docker公司經過2014年一月到20154月的三輪融資,總共融到了來自紅杉資本和高盛等的16000萬美元

 

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功能:本平臺內全部資源共同集合成公有域,而在本平臺內的租戶只能管控自己私有域中的資源,所以要對平臺進行邏輯分層,至少分為公有域和使用者私有域兩層。而對層級的劃分後,會涉及到以上各功能點的使用者私有域表現。

持續整合:為了實現程式碼持續整合的能力,需要掛接公共程式碼倉庫(GITHubGITCafe)等。

公共程式碼庫API介面呼叫(使用者身份認證/授權,專案/程式碼接入,持續整合事件回撥)等。

APaaS服務工廠管理

APP訊息推送服務,使用者統一認證服務,公共訊息平臺,健康監控平臺等APaaS服務管理。

相關文章