版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunxiaoyu94/article/details/88936358
21 | 人多力量大vs两个披萨原则,聊聊持续交付中的流水线模式
项目需求分解
将项目管理中的需求与持续发布中的应用这两者很好地关联起来。
明确好需求拆分与应用功能的对应。
提交阶段之开发模式选择
开发模式
- 主干开发模式
- gitflow开发模式
- 分支开发模式
开发模式的选型原则
分支开发模式简单清晰,在实际操作中更适合我们使用。
22 | 持续交付流水线软件构建难吗?有哪些关键问题?
构建环节
构建过程中的4中工具
- Gitlab
- Maven
- Docker
- 自动化脚本和平台
几个关键问题
- 配置文件如何打包?
代码提交、编译环境统一、配置管理。
- 为什么用Docker做编译环境的工具?
其创建和销毁的效率非常高
可以快速创建出多个并行的实例来提供编译环境
- 为什么不直接生成Docker镜像做发布?
23 | 持续交付中流水线构建完成后就大功告成了吗?别忘了质量保障
在流水线构建过程中,我们尤其要重视以下3个方面的工作内容。
依赖规则限制
对代码依赖的二方包和三方包做一些规则限制。
功能测试
- 工具介绍:
- JUnit和TestNG,分别做单元测试和接口测试;
- Maven插件,,maven-surefire-plugin,用来执行JUnit或TestNG用例;
- JaCoCo,分析单元测试和接口测试后的代码覆盖率;
- Jenkins,自动化测试任务执行,报表生成和输出,与Maven、JUnit、Gitlab这些工具结合非常好。
非功能测试
- 安全审计
由安全团队提供的源代码扫描工具 - 性能和容量压测
主要针对核心应用,进行发布前后的性能和容量比对
以上内容即“持续集成”
24 | 做持续交付概念重要还是场景重要?看“笨方法”如何找到最佳方案
历经如此多的环境,高效的自动化持续部署和发布就变得尤为重要。
软件的持续部署发布
软件的部署发布,简单来说就是:将构建完成和验证通过的应用软件包,发布到该应用对应环境下的IP主机上的指定目录下,并通过应用优雅上下线,来实现软件最新版本对外提供服务的过程。
发布策略
蓝绿发布、灰度发布、滚动发布
灰度发布和滚动发布的组合方式:相对平稳和可控
回滚:提供快速回滚的一键操作
持续交付体系的收益
持续交付体系运作起来后,整个流水线过程完全自助发布,运维无需接入,达到了DevOps,或者说NoOps的效果。