技术见解

容器可帮助实现部署和执行一致性


容器可以帮助开发人员和运维人员以更简单的方式实现部署和执行一致性,因此非常受欢迎。此外,容器还可以帮助改进开发和运维(DevOps)团队的交接工作。

为什么容器至关重要

容器开始流行时, CIO.com 上的文章写道:“从一个计算环境移动到另一个环境时,如何可靠地运行软件?容器是针对这一问题的解决方案。这种移动可能是从开发人员的笔记本电脑到测试环境、从调试环境到生产环境,也可能是从数据中心的物理机到私有/公有云中的虚拟机。”




部署一致性可缩短上线时间

对于企业来说,特定开发和打包每个应用及其依赖关系,然后交接给运维人员进行部署,是一个耗时且成本高昂的过程。容器将代码和进程(应用以及库、二进制文件和配置文件)结合,可提高一致性、加快新应用的推出速度,以及升级到生产环境的速度。

执行一致性可提高质量

为了适应发布和管理流程,代码和进程均经过了预打包,因此团队可以提高发布质量,进而提高客户满意度。

更轻松实现开发人员到运维人员的交接,加快交付速度

无需为每一次的交付费神,因此开发和运维(DevOps)人员能够将更多时间投入到擅长的事情中——开发业务关键型应用和确保稳健的应用交付。



“为什么选择使用容器技术?
(如Docker、rkt、CoreOS)?”



Saurabh Gupta. "Containers and Pivotal Platform" 2016.




详细了解容器技术

容器的历史可追溯到Linux操作系统。容器利用了Linux的内核功能。Linux中容器的核心概念(cgroup、namespaces和filesystems)在独立的区域运行。容器的神奇之处在于将这些技术融为一体,以实现最大的便利性。

Cgroup(即控制组)是一种机制,用于按层级划分进程并以可控、可配置的方式按照层级分配系统资源。namespaces控制进程中可见的虚拟机(VM)视图。namespaces可让进程处理全局资源,就像该进程拥有该资源的独立实例一样。

一旦Linux控制住cgroup和namespaces,通过将文件系统挂载到进程的命名空间(namespace)中,它便控制了进程可访问的文件系统(file system)。此外,进程还拥有对大部分文件系统的只读访问权限及对少部分系统文件的读写访问权限。这些文件系统是“镜像”概念的核心:镜像(如Docker镜像)就是一组具有某种配置和元数据的序列化文件系统。当镜像部署为容器时,容器进程会扩展镜像的文件系统,作为命名空间中的挂载文件系统。

虽然企业通常可以凭借其友好的开发人员体验在容器领域占据主导地位,但是开源的容器项目(包括Docker项目)可让任何企业利用该模型。开放容器计划(OCI)这一标准机构已经就镜像制定了明确的规范:



OCI镜像的内容,引用自GitHub上的OCI规范



Saurabh Gupta. "Containers and Pivotal Platform" 2016.

联系我们