【原创】基于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可以部署在任何物理机,虚拟机或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 原创,转发请注明出处
1738387@qq.com (工作繁忙,有事发邮件,QQ不加,非要事勿扰,多谢!)
2015.11 月
【原创】基于Docker的CaaS容器云平台架构设计及市场分析的更多相关文章
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- 微服务与K8S容器云平台架构
微服务与K8S容器云平台架构 微服务与12要素 网络 日志收集 服务网关 服务注册 服务治理- java agent 监控 今天先到这儿,希望对技术领导力, 企业管理,系统架构设计与评估,团队管理, ...
- 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程 ...
- 腾讯基于Kubernetes的企业级容器云平台GaiaStack (转)
GaiaStack介绍 GaiaStack是腾讯基于Kubernetes打造的容器私有云平台.这里有几个关键词: 腾讯:GaiaStack可服务腾讯内部所有BG的业务: Kubernetes:Gaia ...
- Docker容器技术的PaaS云平台架构设计***
基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员 ...
- 026.[转] 基于Docker及Kubernetes技术构建容器云平台 (PaaS)
[编者的话] 目前很多的容器云平台通过Docker及Kubernetes等技术提供应用运行平台,从而实现运维自动化,快速部署应用.弹性伸缩和动态调整应用环境资源,提高研发运营效率. 本文简要介绍了与容 ...
- 容器云平台No.1~基于Docker及Kubernetes构建的容器云平台
开篇 最近整理笔记,不知不觉发现关于kubernetes相关的笔记已经达99篇了,索性一起总结了.算是对这两年做容器云平台的一个总结,本文是开篇,先介绍下所有用到的组件.首先来看下架构图(实在画的太丑 ...
- Kubernetes容器云平台建设实践
[51CTO.com原创稿件]Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署.大规模可伸缩.应用容器化管理.伴随着云原生技术的迅速崛起,如今Kubernetes 事实上已经 ...
- 轻量化安装 TKEStack:让已有 K8s 集群拥有企业级容器云平台的能力
关于我们 更多关于云原生的案例和知识,可关注同名[腾讯云原生]公众号~ 福利: ①公众号后台回复[手册],可获得<腾讯云原生路线图手册>&<腾讯云原生最佳实践>~ ②公 ...
随机推荐
- nil和Nil和NULL的判断
,nil和Nil和NULL的判断 开 发过程中,我们通过http请求,后台返回json数据,而有时数据里某一字段的值为null-,然后我们把此值赋值给 NSArray,NSdictionary,或是N ...
- Spring中WebApplicationInitializer的理解
现在JavaConfig配置方式在逐步取代xml配置方式.而WebApplicationInitializer可以看做是Web.xml的替代,它是一个接口.通过实现WebApplicationInit ...
- [Android]对话框样式Activity获得窗口外点击事件
Dialog除了使用Dialog类来实现之外,还可以使用Dialog样式的Activity来实现,只需要在注册Activity时指明theme为adnroid:Theme.Dialog就行,这样的Di ...
- 《大规模Web服务开发技术》
Web 服务开发的心灵鸡汤 周末去上海陪妹子的两天在路途上看完了这本<大规模 Web 服务开发技术>. <大规模 Web 服务开发技术>是日本的 Hetena 团队以夏天举办的 ...
- PAT练习题概览
PAT(pat.zju.edu.cn)是一个面向 C/C++程序的 Online Judge 系统.相比 ZOJ,HDOJ,POJ 等 ACM 题库,PAT 的题目非常基础,对于数据结构.算法的入门是 ...
- APP压力測试新手教程
Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和測试方面干了七年,自2010年,他一直在德国汉堡的XING AG公司就职,几个项目里,比方XING调查和XING建议,他 ...
- Cocos2dx 温馨提示(十)三种缓存类演示
在介绍了三级缓存,首先,我们必须弄清楚的一个问题:什么是纹理?它的通俗的解释,质感是它的含义的图片. 当图像加载到内存中后,,它是存在于纹理的形式.由于从这里可以看出.纹理事实上就是一块内存.这块内存 ...
- Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)
用clojure写了一个简单的短网址服务(一半抄自<Clojure 编程>).在那基础上增加了数据库,来持久化数据. 功能 用Get方法缩短一个网址: 然后在短网址列表就能够查看了, 接下 ...
- 在WPF中制作正圆形公章
原文:在WPF中制作正圆形公章 之前,我利用C#与GDI+程序制作过正圆形公章(利用C#制作公章 ,C#制作公章[续])并将它集成到一个小软件中(个性印章及公章的画法及实现),今天我们来探讨一下WPF ...
- ubuntu 12.04 简单配置samba服务,实现主机与虚拟机互通(设置Windows虚拟盘)
环境: virtualbox ubuntu12.04 首先,如果你到这步了,说明你的window与linux的网络已经配好了,他们之间是可以互相Ping通的,如果没有,请看我以前的文章 由于我linu ...