扫码阅读
手机扫码阅读

构建高质量的持续交付体系

442 2023-08-25

软件工程系列知识总结:持续交付技术体系概览

这篇文章是软件工程系列的最后一篇,总结了之前文章中提到的软件工程基础理论、项目管理、需求分析、架构设计、软件测试和线上服务质量保障,并进一步探讨了持续交付技术体系的重要性。

理解持续交付体系

持续交付体系是软件工程中保障质量和提升效率的关键支撑能力,类似于工厂流水线,涵盖了持续迭代、持续集成、持续发布、持续运营和持续度量。

持续迭代(Continuous Iteration)

持续迭代指的是业务和需求的持续变化,以不断更新软件产品,提供更好的服务并实现商业价值。

持续集成(Continuous Integration)

持续集成帮助团队频繁合并代码更改,通过自动化构建和测试(单元测试和集成测试)来验证更改,从而加快修复错误的过程。

持续发布(Continuous Deployment)

持续发布包括持续交付和持续部署,目标是拥有一个可随时部署到生产环境的代码库,并通过自动化测试和发布来降低部署风险。

持续运营(Continuous operation)

持续运营涉及对生产环境中的应用进行持续跟踪,包括线上质量、用户反馈以及可能的问题或故障。

持续度量(Continuous measurement)

持续度量是通过可量化的记录、展示、分析评估各阶段的要素,从数据角度持续提升质量。

持续交付优势

  • 尽快暴露问题
  • 极大提升效率
  • 提升交付质量
  • 降低项目成本

持续交付体系工具

工具名称 工具作用
Git、SVN、GitLab、Coding 统一的源代码管理工具
testNg、pytest、sonar、selenium 单元/接口/UI自动化测试工具
Jenkins、Go CD、Travis CI、Pipelines 持续集成和持续部署工具

持续交付的前提

实现持续交付需要保证代码构建的反复高频进行,环境配置信息存于源代码管理工具中,以及自动化完成所有环境的构建编译部署发布步骤。

DevOps和持续交付的关系

DevOps是一种紧密协作的高效工作方式,旨在通过自动化构建、测试和发布软件来加快研发交付流程。

DevOps的优势

  • 高度自动化的构建测试和发布过程
  • 信息透明,交付质量易于度量评估
  • 跨团队和跨职能协作的效率和氛围提升

实践DevOps需要的行动

  • 构建自动化流水线系统
  • 建立完善精确的监控体系
  • 建立跨团队跨职能的沟通协作机制

DevOps工程师的职责

  • 帮助团队建立持续交付工作流程和工具
  • 建立监控报警系统和故障响应流程
  • 构建适用于团队研发交付流程的基础技术设施
  • 推动DevOps流程和文化在团队落地
想要了解更多,点击 查看原文