基于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可以部署在任何物理机,虚拟机或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, 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 原创,转发请注明出处
[email protected] (工作繁忙,有事发邮件,QQ不加,非要事勿扰,多谢!)
2015.11 月