前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(译)为什么持续改进是持续交付的基础

(译)为什么持续改进是持续交付的基础

作者头像
崔秀龙
发布2019-07-23 11:20:01
4650
发布2019-07-23 11:20:01
举报
文章被收录于专栏:伪架构师伪架构师

DevOps 的最大难题就是,DevOps 是永无止境的。并不存在一个(确切的)DevOps指南,也没有什么最终标志能够证明一个组织完成了 DevOps 的漫长旅途。

如果有人恰巧觉得,本人/组织当前的 DevOps 实践已经达到了自身应用发布过程的终极需要,那么可能一年以后,这一环境就可能变成了新版本的瀑布。以不变应万变,是难以应对各种来自客户、来自基础设施以及部署方式的更迭的。所以我们要说,没有持续改进的持续交付,是没有前途的。

下面详细的解释一下我们的看法。

主动改进

自动化工具链是 DevOps 团队的制胜法宝,这一点毋庸置疑。然而这一切通常都是事出有因的,有时是有新技术发布,有时是组织机构改革等等。不管是什么在主导着变化,其实都不是主动发生的。变化只会在有条件的时候被触发,每一两年,都会出现这种机会。

持续改进则正好相反。持续改进意味着一种对改进的主动投入。这是一种对现状的改进意愿(和不满)。金无足赤,环境也是始终会有其弱点。DevOps 团队应避免故步自封,对现有的大好形势保持怀疑,不错过其中出现的任何微小缺陷。

但是文化和改进方面的管理焦点是很难贯彻始终的。一个 DevOps 工程师所实现的改进工作是很难量化的。一种文化究竟做出了什么贡献,也不是非常容易分辨的。有些组织认为自己是持续改进的牺牲品,但技术人员应该注意的是,一些看上去很美的新玩具,往往都会引入很多的额外问题,因此应该慎重考虑,而不是想上就上。

管线即应用

时至今日,CI 已经成为应用交付的内在需要,因此 Pipeline 理应得到跟其他应用一样的重视程度。应用开发过程是围绕 Backlog 进行的,所有的任务都是向其中添加功能或者修复其中的问题。那么如果将 Pipeline 视为应用的话,那么就有了持续改进的基础。为了达成这一目标,所有工作都应该进行脚本化,所有重复工作都应该自动化,Backlog 中随时反应了我们对交付链条的优化努力。Pipeline 应用也应该有自己的功能和 Bug。Pipeline 的客户就是开发人员和生产环境。在这样的视角之下,就能对 Pipeline 的变更和改进了然于心。

这里有个潜在的要求就是,要有专职人员负责 Pipeline 的开发,并在生产环境上进行维护。要实施这一方法的组织,必须做好这种准备。

重在结果

第三个问题是,如何判断当前的做法是正确的?必须做点什么来体现结果和指标。跟生产环境上的其他应用一样,我们的 Pipeline 也应该有各种 KPI。持续改进需要反映出随着时间的推移,各种指标的变化。例如:

  1. 本年度开始之后,发布过程变快了多少?
  2. 发布过程需要多少步骤?精简掉了多少?
  3. 有多少应用是 100% 自动部署的?
  4. 跟去年相比,发布活动多了多少?

有时候,改进是一种直觉。团队成员应该大致了解,Pipeline 是否减轻了压力并提高了部署能力。但是对持续改进的审慎态度,要求我们必须对过程中的得失进行量化,并作出汇报。

持续交付现在已经是开发活动的重要组成部分,但是如果不持续作出改进,那么整个环境都会逐渐变得过时。通过上面讲述的三个原则,来确保当下和未来的 DevOps 过程能够一以贯之的持续下去。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主动改进
  • 管线即应用
  • 重在结果
相关产品与服务
CODING DevOps
CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档