《赵成的运维体系管理课》学习笔记(2)——持续交付

版权声明:本文为博主原创文章,未经博主允许不得转载。 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的效果。

猜你喜欢

转载自blog.csdn.net/sunxiaoyu94/article/details/88936358