一.概念
①云计算:是一种资源的服务模式,该模式可以实现随时随地,便捷按需地从可配置计算资源共享池中获取所需的资源(如网络、服务器、存储、应用及服务),资源能够快速供应并释放,大大减少了资源管理工作的开销。
②经典云计算框架:包括IaaS(Infrastructure as a Service,基础设施即服务;为基础设施运维人员服务,提供计算、存储、网络及其他基础资源)、PaaS(Platform as a Service,平台即服务;为应用开发人员服务,提供支撑应用运行所需的软件运行环境、相关工具与服务)、SaaS(Software as a Service,软件即服务;为一般用户服务,提供了一套完整可用的软件系统)。
③Docker:以Docker容器为资源分割和调度的基本单位,分装整个软件运行时的环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台。它是一个跨平台、可移植并且简单易用的容器解决方案。Docker的源码托管于Github上,基于Go语言开发并遵从Apache 2.0协议。Docker可在容器内部快速自动化地部署应用,并通过操作系统内核技术(namespace、cgroups等)为容器提供资源隔离与安全保障。
④容器技术的优点:
1.持续部署与测试。容器消除了线上线下的环境差异,保证了应用生命周期的环境一致性和标准化。开发人员使用镜像实现标准开发环境的构建,开发完成后通过封装着完整环境和应用的镜像进行迁移。测试和运维可以通过质检部署软件镜像来进行测试和发布。
2.跨云平台支持。容器具有其适配性,越来越多的云平台都支持容器,用户无需再担心受到云平台的捆绑,同时也让多平台混合部署成为可能。
3.环境标准化和版本控制。我们可以使用Git等工具对容器镜像进行版本控制,你甚至可以对整个应用运行环境实现版本控制,一旦出现故障可以快速回滚。相比于以往的虚拟机镜像,容器压缩和备份的速度更快,镜像启动就如启动一个普通进程一样快速。
4.高资源利用率与隔离。容器没有管理程序的额外开销,与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下可以运行更多的应用实例,可以更充分地利用系统资源。同时可以精准地对应用分配CPU、内存等资源,保证应用间不会相互影响。
5.容器跨平台性与镜像。容器有一套标准化的配置方法。将应用及其依赖环境打包成镜像,真正实现了“构建一次,到处运行”的理念。
6.易于理解且易用。一个开发者可以在15分钟之内入门Docker并进行安装和部署。
7.应用镜像库。Docker官方构建了一个镜像仓库,组织和管理形式类似于GitHub,其上已累积了成千上万的镜像。
⑤容器云:以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建、发布和运行分布式应用的平台。容器云不仅限于Docker,基于rkt容器的CoreOS项目也是容器云。谷歌的kubernetes就是基于Docker技术构建的容器云。