Consistent Behavior in CI/CD¶
Summary¶
在 CI/CD 中, 我们的代码需要经过几个环境的测试, 才能最终到达生产环境. 这几个环境包括了:
本地开发电脑 local
本地单元测试, 确保在将代码 commit 到 git 之前代码没问题
CI 的单元测试, 在 CI 里再跑一边, 自动运行单元测试, 及早发现错误
部署真正的 App 到 dev 环境, 以供后续开发使用.
用 dev 环境的代码做集成测试.
在 CI 里 build artifacts.
将 artifacts 部署到 qa 环境中, 继续运行单元测试和集成测试.
最终验证没问题后将 artifacts 部署到 prod 环境中.
这些环境的运行时经常会各不相同, 有的是本地机器, 有的是虚拟机, 有的是容器. 而这里最大的挑战就是 如何让一套核心业务代码逻辑能在各种不同的环境下都能正常运行?