赵成的运维体系管理课
赵成
《进化: 运维技术变革与实践探索》作者
37829 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
开篇词 (1讲)
效率和稳定性最佳实践 (20讲)
赵成的运维体系管理课
15
15
1.0x
00:00/00:00
登录|注册

19 | 持续交付中流水线构建完成后就大功告成了吗?别忘了质量保障

预发或Beta环境下的验证
核心应用的性能和容量比对
审计结果示例
源代码扫描工具
自动化测试环节
TestNG测试框架
自动执行和提交到GitLab
DBUnit框架
测试用例开发
性能和容量压测
安全审计
接口测试
单元测试
Maven构建软件包过程中生成的dependency:list文件
二方包和三方包规则限制
https://github.com/wufeifei/cobra
源代码安全审计工具
整个持续交付体系的收尾
线上发布的整个过程
预发或Beta环境
验收环境
基础配置管理
功能和非功能测试验证
代码提交
需求分解
非功能测试
功能测试
依赖规则限制
编译和打包
流水线模式
参考文章
下一期主题
软件部署发布
持续集成
质量保障
软件构建
持续交付中的流水线模式

该思维导图由 AI 生成,仅供参考

上期文章我结合自己的实践经验,介绍了持续交付中流水线模式的软件构建,以及在构建过程中的 3 个关键问题。我们可以看出,流水线的软件构建过程相对精简、独立,只做编译和打包两个动作。
但需要明确的是,在持续交付过程中,我们还要做很多与质量保障相关的工作,比如我们前面提到的各类功能测试和非功能测试。
所以,今天我们聊一聊在流水线构建过程中或构建完成之后,在质量保障和稳定性保障方面,我们还需要做哪些事情。
首先,我们回顾一下之前总结的这张流程图:
可以看出,在流水线构建过程中,我们尤其要重视以下 3 个方面的工作内容。

依赖规则限制

主要是对代码依赖的二方包和三方包做一些规则限制。比如,严格限定不允许依赖 Snapshot 版本;不允许引入有严重漏洞的版本,如 Struts2 的部分版本;检测 JAR 包冲突,如我们常用的 Netty、Spring 相关的包;限定某些软件包的最低版本发布,如内部提供的二方包,以确保版本收敛,降低维护成本。
过滤规则上,通过 Maven 构建软件包过程中生成的 dependency:list 文件,将 GroupID 和 ArtifactID 作为关键字,与我们设定的版本限制规则进行匹配。
两个示例如下(真实版本信息做了修改):
检测 JAR 包冲突:
[WARNING] 检测到 jar 包冲突: io.netty:netty-all, 版本: 4.0.88.Final, 当前使用:
4.0.22.Final
限定最低版本:
[WARNING] 检测到 mysql:mysql-connector-java, 版本 5.0.22, 版本不符合要求, 需要大于等于
5.0.88。旧版存在已知兼容性 bug,导致连不上数据库, 请在 2018-01-15 00:00:00 前升级完成, 否则将被禁止发布,如有疑问,请联系 @发布助手
JAR 包依赖以及维护升级,通常是一件令我们比较头疼的事情,特别是在运行时出现的冲突异常,更是灾难性的。为了从技术角度更好地进行管理,我们需要做好隔离,这一点可以利用 JVM 类加载机制来实现。
如果你有兴趣,可以在网上参考阿里的潘多拉(Pandora)容器设计资料,这里我们就不作详细介绍了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

持续交付中的流水线构建完成后,并不意味着任务已经完成。除了软件构建过程外,质量保障和稳定性保障同样重要。在流水线构建过程中,需要重视依赖规则限制、功能测试和非功能测试。依赖规则限制包括对代码依赖的规则限制,如禁止依赖Snapshot版本、限定最低版本发布等,以确保版本收敛和降低维护成本。功能测试包括单元测试、接口测试、联调测试和集成测试,其中单元测试和接口测试可以通过自动化手段完成,确保代码质量和覆盖率。非功能测试则包括安全审计、性能测试和容量评估,用于识别漏洞和验证性能。这些验证工作需要在预发或Beta环境下进行,以确保软件包发布前后的性能和容量没有较大差异。整个持续交付体系需要基于各类环境和基础配置管理进行验收,涉及软件的部署发布。下一期文章将分享线上发布的整个过程,并对整个持续交付体系内容做一个收尾。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《赵成的运维体系管理课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 符亮
    请问大佬这个cobra跟sonarqube有什么差异?为什么使用sonarqube呢?
    2020-07-22
    2
    2
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部