容器化 DevOps 入门:Docker 实战指南
1. 容器化交付的优势
在应用部署中,传统的配置管理工具在应用栈变得复杂多样时,会面临诸多挑战。维护大型配置清单库十分复杂,更改一个软件包可能会导致系统和应用包之间的依赖关系混乱,甚至可能使一些应用在升级无关软件包后意外崩溃。此外,升级配置管理工具本身也是一项具有挑战性的任务。
为了克服这些问题,引入了使用预烘焙虚拟机 (VM) 镜像的不可变部署。每当系统或应用包有更新时,会针对这些更改构建完整的 VM 镜像并进行部署。这种方法在一定程度上解决了软件包问题,因为可以为无法共享相同环境的应用定制运行时。然而,使用 VM 镜像进行不可变部署成本较高,为隔离应用而配置 VM 会导致资源利用效率低下,更不用说启动、分发和运行庞大的 VM 镜像所带来的开销。如果尝试通过将多个应用共享一个 VM 来消除这种低效率,又会遇到资源管理的问题。
容器则完美地契合了部署需求。容器的清单可以在版本控制系统 (VCS) 中进行管理,并构建成二进制大对象 (blob) 镜像,这些镜像也可以进行不可变部署。这使开发人员能够从实际资源中抽象出来,基础设施工程师也能摆脱依赖困境。而且,由于只需要打包应用本身及其依赖库,容器镜像的大小明显小于 VM 镜像,因此分发容器镜像更加经济。此外,在容器内运行进程与在 Linux 主机上运行基本相同,几乎不会产生额外开销。总之,容器具有轻量级、自包含和不可变的特点,明确划分了应用和基础设施之间的职责界限。
2. 容器入门
2.1 选择容器引擎
有许多成熟的容器引擎可供选择,如 Docker(https://www.docker.com)和 rkt(http
容器化DevOps入门:Docker实战指南
超级会员免费看
订阅专栏 解锁全文
34

被折叠的 条评论
为什么被折叠?



