9.2 CI/CD、容器与部署基础
CI/CD 把构建、测试、打包、发布和验证变成可重复的流水线。容器把应用和运行依赖打包成更一致的制品,减少“在我机器上可以”的环境差异。
但容器和流水线不会自动让软件正确。它们只是让反馈和发布更可控。
正在加载交互实验...
正在加载概念检查...
CI:持续集成
持续集成的目标是让团队频繁合并小变更,并快速发现集成问题。一个基础 CI 可能包含:
- 格式化和 lint。
- 单元测试。
- 类型检查。
- 集成或契约测试。
- 构建制品。
- 安全扫描。
CI 失败不是麻烦,而是早出现的坏消息。越早出现,修复成本越低。
CD:持续交付与部署
持续交付表示系统始终处于可发布状态,但是否发布可以由人决定。持续部署则表示通过自动化验证后自动进入生产。
无论哪一种,都需要发布安全机制:
- 小批量变更。
- 金丝雀或分阶段发布。
- 健康检查。
- 监控和告警。
- 快速回滚。
- 制品可追踪。
正在加载概念检查...
Docker 与 Kubernetes 的基本心智
Docker 常用于构建镜像并运行容器。镜像像一个打包好的运行环境,容器是镜像运行起来的实例。
Kubernetes 则用于编排容器:副本数量、滚动更新、服务发现、健康探针、配置和密钥、自动恢复等。它解决的是部署和运行组织问题,不是业务正确性问题。
学习容器时要记住:镜像、配置、数据、网络和权限是不同维度。把它们混在一起,会让部署变得脆弱。
正在加载本节练习...