一种DevOps赋能工具
在本课程中,你将学习 Docker 容器如何简化部署。
如果你时间紧迫,可以安全地跳过本章,直接进入Docker快速上手一章。本章《为什么使用Docker?》旨在帮助那些希望了解为何应使用容器的人。
Docker 是一个运行容器的引擎。作为一种工具,容器能够解决在日益发展的 DevOps 趋势中产生的诸多挑战。
在 DevOps 模式下,开发团队和运维团队的目标存在冲突:
| 开发团队追求 | 运维团队追求 |
|---|---|
| 频繁部署与更新 | 生产环境应用的稳定性 |
| 轻松创建新资源 | 管理基础设施,而非应用程序 |
| 监控与控制 |
作为一名敏捷开发者,我希望频繁发布我的应用程序,使部署变成一种常规操作。其背后的逻辑是,这种敏捷性让“上线生产”成为一件平常、频繁且完全可控的事,而不是一场令人恐惧的灾难,可能在一周后带来严重后果。而另一方面,一旦部署出现问题,最终需要由运维团队面对用户,因此他们自然更关注系统的稳定性。
容器让部署变得简单。部署只需启动一个新容器,将用户流量导向新容器,然后丢弃旧容器即可。这一过程甚至可以通过编排工具实现自动化。由于操作如此简便,我们可以放心地为单个应用运行多个容器,从而在更新过程中提升整体稳定性。
如果不使用容器,运维团队必须负责你所依赖的运行环境:运行时、库文件以及操作系统等。而使用容器后,他们只需要掌握一种统一的方法来管理你提供的容器,无论容器内部包含什么内容。你可以使用 .NET Core、Java、Node.js、PHP、Python 或其他任何开发技术,只要代码被容器化,对运维团队来说就无关紧要。这正是容器在 DevOps 中的一大优势。
在Docker与常见开发环境一章中,我们将学习如何为特定开发技术创建容器镜像。但运维团队并不关心你是如何构建镜像的,他们只关心最终交付的容器镜像。
在下一课中,我们将探讨 Docker 容器的另一项优势。