持续集成和持续交付之间需要做什么

what need to be done between continuous integration and continuous delivery

根据我的理解,持续集成是指每当开发人员将代码签入到分支时,自动构建代码,进行单元测试(或其他基础测试),然后合并到主分支。一种工具是 Jenkins。

持续交付意味着代码始终准备好或可以部署,尽管它可能无法部署。

那么还应该做些什么来将步骤从持续集成转移到持续交付?在更详细的测试后打包代码,例如 integration/performance/stress 测试、差异测试 OS、不同阶段(测试、生产)等?

答案有长有短。简而言之:将打包和部署到生产环境的所有步骤自动化,并创建自动检查软件是否已准备好发布的安全网。

第一个包括考虑零时间部署(如果需要)的自动化数据库迁移、打包二进制文件、更新配置文件、逐步部署到不同的数据中心。

第二个包括为功能和非功能测试创建测试套件。例如性能、负载测试、安全渗透、许可等