随着云和容器技术的发展,大家对DevOps和CI/CD的重要性有了更深入的认识。今天我们就讨论一下架构设计如何更好的支持CI/CD。
什么是持续集成,交付和部署(CI/CD)
Martin Fowler 和 Kent Beck 首次提出 Continuous Integration (简称:CI),将之描述为:持续集成是一种软件开发实践:许多团队频繁地集成他们的工作,每位成员通常进行 日常集成,进而每天会有多种集成。每个集成会由自动的构建(包括测试)来尽可能快地 检测错误。许多团队发现这种方法可以显著的减少集成问题并且可以使团队的开发更加快捷。
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续交付(简称:CD )
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。</