作者回复: 铭熙帅哥,特别好的问题,由于专栏篇幅限制,很多内容不好展开,正好在留言区大家一起讨论。
DevOps倡导职责共担的文化,但实际情况是,如果你的绩效目标跟我的半毛钱关系没有,我凭什么跟你共担责任呢?
人固然有自身的问题,到我觉得更多的还是流程和机制的设计和导向问题。
举个实际的例子,比如在梳理发布流程的时候,发现测试回归周期长,完整一次回归要两天时间,请问怎么办?
第一种就是给测试团队加人,这显然不够DevOps。
第二种就是做回归测试的自动化,这能解决一些问题,但是自动化成本,技术成熟度,自动化结果的可信度都需要时间,更何况如果自动化出了问题,责任还是人的,那么人的意愿肯定会打折扣。
第三种,就要多问几个为什么,原来回归周期长的原因是研发没有给出准确的修改范围,因为当前的流程研发提交完代码,连测试包都是测试人员自己来打,服务意识固然不错,但是问题就是你压根不知道改了啥,会影响啥,结果就是全跑一遍,因为即便出了问题,也要各种甩锅,测试责任怎么也跑不开。
所以缺陷问题只有流程上约定由研发测试一起承担,同时加入测试辅助的研发自测,将测试能力通过平台化赋能,再加上各种DevOps中的自动化手段打通变更信息,进行变更影响分析,这才能根本上解决测试和开发之间的问题。
作者回复: 你好,DevOps倡导开发和运维的沟通和协作,但这并不是一句空话,原因不仅在于部门职责划分的问题,还在于技术能力的不对等。我一直信奉一个选择,想要拯救别人,就先要拯救自己,所以运维内部过的怎么样,是否还有大量的手工操作和线上问题,这些首先是要解决的。
接下来的核心就是通过平台能力赋能研发团队,转变运维工作的重心向平台化自动化智能化发展。
简单罗列几个常见的手段供你参考: 1. 将运维的能力通过自动化运维平台开放出来 2. 建立部署流水线 3. 在开发环境打通持续集成和部署过程 4. 将相同的过程先其他环境延伸 5. 根据业务需求共建监控系统,收集埋点数据 ,支持AB测试等6. 简化环境申请流程和初始化成本 7. 试点云容器技术,并和开发团队一起试点 8. 定义标准化环境配置
作者回复: 你好,这也要看公司的规模,我只能说,管理层的支持至关重要,否则你能影响的范围有限,尤其对于大公司来说,至少是一把手工程。但是管理层的支持仅仅是条件之一,具体怎么实施,试点,给予管理层反馈和数据量化,证明这个事情的价值和可行性,这些都是我们要做的事情哈。
作者回复: 你好,其实大多数老板,如果你说他能听得懂的语言,他是能听得进去的,但是,老板需要看得见摸得着的效果,这也是很多改进项目能否持续下去的重要因素。
关于这一点,我的建议还是需要有量化指标来展现,比如你们公司目前的研发效率有哪些指标,具体的数值又是怎样的,只要能把这一点说清楚,后面的事情会容易很多。
至于选择哪些指标,我在后面会专门来分享,简单来说,至少参考业界公认的DevOps四个结果指标,是不会错的,只不过还要结合公司实际,细化指标定义哈。
作者回复: 你好,坦率的说,技术栈的标准化是公司CTO要解决的问题,我关心的是,现在因为不标准带来的问题是什么呢?
其实DevOps搞了这么多年,各种平台技术栈或多或少都有涉及过,不知道你怎么看哈。
作者回复: 看来你很有新得呀,有没有一个案例可以跟我们分享呢,我在计划整理优秀用户留言,让学习和分享成为同学之间的事情,期待👍
作者回复: 你好,我是这么理解这个问题的。作为一个平台,不应该随着接入的服务方的增加,建设成本也随之增加。那最简单的构建打包这个事情来说,如果每接入一个新的应用,都要定制化的开发页面,数据结构,那就不能叫做一个平台。平台的做法是,通过高度的能力抽象,可以通过简单的配置就能实现业务的扩展。不仅如此,平台的服务成本也是一个道理,如果接入一个用户就要投一个人支持,这就是线性增长的,应该努力避免,这一点我会在平台设计的章节展开来说。
作者回复: 那就找一个力所能及的领域,脚踏实地开始实践吧👊
作者回复: 互相尊重,自由发挥,自我约束,请问你是哪家公司的,能做到这种程度,还不出问题并且非常高效,我觉得可以出来分享分享是怎么做到的了😝
作者回复: 没错,再好的工具也要有人来使用哈
作者回复: 我觉得你说的特别好,感同身受,赞一个,如果编辑看到的话,请帮忙置顶,谢谢!
关于你提出的3点内容,稍微补充一些我的想法:
1. 大领导的支持不是长期的,无限的,领导也需要及时的反馈,尤其是看得见的数据和成果,以证明这个事情是正确的,有效的,这点非常重要。
2. 对于平台开发成员来说,如果只是一个纯开发的想法,是很难做好这个事情的,要具有业务思维,努力了解业务现状,并且有独立创新的想法,才能激发内部的创造力,当然认可效率工作的重要性也不容忽视。
3. 业务线的重心毕竟还在业务上,同时他们也不是工程效率方面的专家,如果期望他们给出解决方案,那显然没有理解这个工作的含义,所以正确的方式的确是识别痛点,给出解决方案,达成一致,快速试点,反馈和推进。
作者回复: 哈哈,精妙啊精妙,说的太好啦!话说回来,啥事不是人的问题呢?
作者回复: 很棒的扩展理解,我应该把这段加到文稿中😄
其实平台是随着场景的拓展而拓展的,所以需要把人还原到具体的场景之中,思考人和事之间的关系是怎样的,服务化就是一种最好的诠释。
作者回复: 你好,AIOps更多的还是Ops领域的一种探索,解决的还是Ops所面对的问题,而DevOps已经突破了单一领域,成为软件交付整体的方法论。
其实,无论是AIOps,还是DevOps,其实就是个热门词汇,技术进步终将不断革新,所以有人问工程效率和DevOps有什么区别。我的理解是,效率这件事是永恒的,而DevOps可能会被一种新的技术和方法所取代。
作者回复: 哈哈,罗胖也说过类似的话,这一波机会没赶上怎么办,做好准备,争取赶上下一波呗😄
我之前所在的公司风格也比较自由,但我现在看来,这还不够,公司有没有一种渠道,让局部创新全局化,说白了如果一个团队一个人摸索出来的新方法很有效,能不能发挥规模效应,让更多人受益,这种激励机制非常重要,否则你做了很多创新,很多想法,但没有用武之地,这对自由来说也是一种打击吧,不知道你怎么看这个问题?