敏捷开发2.0

前言

敏捷开发:引入了持续集成(CI)、持续交付(CD)和持续部署,来更加高效地进行敏捷开发,即敏捷开发2.0。

持续集成和持续交付

持续集成和持续交付涉及软件开发的各个方面,它不仅是项目架构上的决策,也需要考虑如何测试、如何配置不同的环境变量和应对异常。所以在一开始我们就要考虑好程序的架构、自动化测试、耦合关系、打包部署和容错机制等。通过持续集成和持续交付可以不断提高团队在软件开发环节中的各方面能力。

DevOps

DevOps不能只关注开发及运维,还应该关注产品、开发、测试、运维,甚至对客户的需求也要有了解。而敏捷开发2.0要求将大而全的项目拆分成小的相对独立的服务,从一开始就不仅仅只关注自动化部署,还要关注整个项目是否具备自动化、可快速扩展的、完善的容错机制,以及零宕机和便捷的监控管理。

实现敏捷开发2.0

为了实现敏捷开发2.0,我们需要采用持续部署、微服务和容器这三种技术方案。

  • 持续部署:能够持续自动反馈应用程序的提交状态,减少错误等;同时为产品的交付提供质量保证,能快速投入市场
  • 微服务:使技术选型、架构系统更自由;开发更快速、周期更短;服务更容易扩展
  • 容器:使部署成百上千的微服务更加容易,系统更加稳定

持续集成

向代码库中提交代码

持续集成工具能够监控代码仓库,一旦有用户提交代码,新代码就会立即被检出,并运行Pipeline流程。
在这里插入图片描述

静态代码分析

静态代码分析是在不运行代码的情况下,通过词法分析、语法分析、控制流、数据流分析等技术对代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。
在这里插入图片描述

部署前的单元测试

部署前的测试是鼻息的,不像静态代码分析是可选的,它是不需要部署代码就能直接运行的测试,例如单元测试。
由于受到系统架构、编程语言和使用的框架影响,采用的部署前的单元测试也各不相同
在这里插入图片描述

打包部署到测试环境

首先需要打包,不同的语言和架构的打包方式不同
我们可以使用容器将程序和相关依赖都打包在容器中,最后发布到测试服务上进行部署并提交QA测试
在这里插入图片描述

预生产环境测试

这个阶段主要包含功能测试、集成测试和性能测试。如果预生产环境的测试全部通过,那么整个持续集成的流程就完成了,接下来就到持续交付和持续部署阶段了。

持续交付和持续部署

持续交付的流程和持续集成的流程大同小异,最大的区别在于整个流程执行完成后其结果的认可度:持续集成只要求最终检验通过,持续交付则要求完美地实现所有的预期,随时准备部署上线。
在这里插入图片描述
持续部署是比持续交付更高级的阶段,能够全自动地把每一次通过编译测试的代码直接部署到生产环境中,是一套完整的自动化过程。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yiyu20180729/article/details/129955101