持续集成,持续交付,持续部署
把开发工作流程分为以下几个阶段
编码 -> 构建 -> 集成 -> 测试 -> 交付 -> 部署
持续集成
是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误
CI 需要具备这些:
- 全面的自动化测试。这是实践持续集成&持续部署的基础,同时,选择合适的自动化测试工具也极其重要;
- 灵活的基础设施。容器,虚拟机的存在让开发人员和 QA 人员不必再大费周折;
- 版本控制工具。如 Git,CVS,SVN 等;
- 自动化的构建和软件发布流程的工具,如 Jenkins,flow.ci;
- 反馈机制。如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本
持续交付
将集成后的代码部署到更贴近真实运行环境的
任何的代码修改都可以在任何时候实施部署
编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈
持续部署
当交付的代码通过评审之后,自动部署到生产环境中
开发人员提交代码,持续集成服务器获取代码,执行单元测试,根据测试结果决定是否部署到预演环境,如果成功部署到预演环境,进行整体验收测试,如果测试通过,自动部署到产品环境,全程自动化高效运转
可以相对独立地部署新的功能,并能快速地收集真实用户的反馈
一个优秀的 DevOps 环境:
频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分