1 云计算平台的三层服务
1.1 Iaas(Infrastructure as a service,基础设施即服务)
Iaas层为基础设施运维人员服务,提供计算、存储、网络及其他基础资源,云平台使用者可以在上面部署和运行包括操作系统和应用程序在内的任意软件,无需再为基础设施的管理而分心。
应用场景:虚拟机、存储、负载均衡、网络…..
缺点:只要以虚拟机为最小粒度的资源调度单位,出现了资源利用率低、调度分布缓慢、软件堆栈环境不统一等问题。
1.2 Paas(Platform as a Service ,平台即服务)
Paas为应用开发人员服务,提供支撑应用运行所需的软件运行时环境、相关工具与服务,如数据库服务、日志服务、监控服务等,让应用开发者可以专注于核心业务的开发。
应用场景:运行时环境、数据库、web服务器、开发工具……
缺点:在Iaas的基础上发展而来,Paas在应用架构选择、支持的软件环境服务方面有较大的限制、会带来应用和平台无法解耦、应用运行时环境局限性强、运维人员控制力下降的问题。
1.3 Saas(Software as a service ,软件即服务)
Saas为一般用户服务,提供了一套完整可用的软件系统,让一般用户无需关注技术细节,只需通过浏览器、应用客户端等方式就能使用部署在云上的应用服务。
应用场景:客户关系管理、邮件、虚拟桌面、通信、游戏….
2 新的革命 docker(容器)
2.1 Docker的定义
-
Docker是以docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台。
-
跨平台、可移植并且简单的容器解决方案。易用。
-
源代码使用go语言开发,遵从Apache2.0协议。
-
Docker可在容器内部快速自动化地部署应用,并通过操作系统内核技术(namespace,cgroups等)为容器提供资源隔离与安全保障。
2.2 Docker的优点
-
持续部署于测试
开发人员开发完成后,将开发环境和应用封装成完整的镜像,测试环境和正式环境使用同一个镜像。简化了持续集成、测试和发布的过程
-
跨云平台支持
越来越多的平台都支持docker,目前支持docker的Iaas平台包括但不限于亚马孙平台(AWS)、Google云平台(GCP)、微软云平台(Azure)、openStack等,还包括Chef、Puppet、Ansible等配置管理工具。
-
环境标准化和版本控制
-
高资源利用率和隔离
-
容器跨平台性与镜像
-
易于理解且易用
-
应用镜像仓库
3 容器云
3.1 容器云的定义
容器云以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建、发布和运行分布式应用的平台。当容器云专注于资源共享与隔离、容器编排与部署时,他更接近传统的Iaas;当容器云渗透到应用支撑与运行时环境时,它更接近传统的Paas.