每个软件研发组织都会将代码纳入到版本控制系统中,但如果只做到这个,你和成熟的研发团队之间的差距就太大了。还有哪些资源也必须进行版本控制呢?
1. 所有应用代码和依赖项
2. 任何用于创建数据库及初始化数据的脚本
3. 所有的环境创建工具和工件
4. 用于创建和编写容器的文件
5. 所有自动化测试及手动测试脚本
6. 任何支持代码封装、部署、数据库迁移和环境配置的脚本
7. 辅助性项目工件,如,部署文档、部署程序和版本说明
8. 容器编排(例如 Kubernetes 配置)
9. 云配置文件
这么多格式的文件需要进行版本化管理,不要都放在git库中。应该采用不同的形式,
把代码和必要说明文档放在git仓库中;把ISO 文件、编译的二进制文件等,存储在 Nexus 或 Artifactory 等工件代码库中,也可以放在云存储中。
版本控制做到的最佳效果就是,以完全自动化的方式再现所有测试和生产环境,以及这些环境中部署的软件。