持续交付:概念、工具与实践指南
1. 测试金字塔
在软件开发过程中,不同类型的测试各有其作用,但我们还需明确每种测试应开发的数量。Mike Cohn提出的测试金字塔模型能很好地解答这些问题。
测试金字塔呈现出一种结构,越往金字塔上方,测试的创建速度越慢,成本也越高。这是因为上层测试常需涉及用户界面,还可能要组建专门的测试自动化团队。所以,验收测试不应追求100%的覆盖率,而应聚焦于特定功能,仅验证选定的测试场景。否则,测试开发和维护成本会极高,持续交付管道的构建执行也会耗时极长。
相反,金字塔底部的单元测试成本低且速度快,我们应努力实现100%的代码覆盖率。单元测试由开发人员编写,对于成熟的开发团队而言,编写单元测试应成为标准流程。
2. 配置管理
配置管理阶段负责跟踪和控制软件及其环境的变更。它涵盖准备和安装必要工具、调整服务实例数量及其分布、管理基础设施清单,以及与应用部署相关的所有任务。
手动部署和配置生产环境中的应用会带来诸多问题,比如我们可能不清楚每个服务的运行位置和具体属性。而配置管理工具(如Ansible、Chef或Puppet)能将配置文件存储在版本控制系统中,跟踪生产服务器上的每一次变更。
此外,为减少运维团队的手动任务,还需进行应用监控。通常的做法是将运行系统的日志和指标流式传输到一个通用的仪表盘,由开发人员或DevOps团队进行监控。
3. 持续交付的先决条件
持续交付的成功不仅依赖于工具,还与组织架构、产品技术细节以及开发团队的实践方法密切相关。以下从三个方面详细阐述其先决条件:
3.1 组织先决条件
组织
超级会员免费看
订阅专栏 解锁全文
881

被折叠的 条评论
为什么被折叠?



