引言
这段时间写了一些 《从零搭建DevOps平台环境》 相关的文章,后续也写了一些其他的工具的,但是都没有发出来。因为这段时间我在写这些的时候,同时也在整理资料,重新梳理一下DevOps,也理一下我们的DevOp的现状。逐渐有了一些其他的想法,对于工具链的使用,工具链搭建的越来越多难道就是DevOps了么?
那么到底什么是DevOps呢?
DevOps是敏捷开发的延续,继承自敏捷软件开发,DevOps 的出现是为了应对敏捷方法所带来的软件开发速度和生产力增长。敏捷文化和敏捷方法在最近十年的发展,呼唤一个更适合端到端软件交付生命周期的整体方法。 那么我们是不是可以理解为: DevOps是为了实现敏捷开发,一切为了敏捷而做的事情都是DevOps?
那么因此也引出来一个概念:敏捷开发。那么什么是敏捷开发呢?
敏捷开发是许多迭代和增量软件开发方法的总和。最流行的敏捷方法包括Scrum、看板、规模化敏捷框架(SAFe®)、精益开发和极限编程 (XP)。敏捷开发的方法是多种多样的,但所有的方法都有着共同的愿景和核心价值观-敏捷宣言。
那么DevOps是不是就是所有敏捷方法的概括,然后增加了一些扩展实践呢?
可能会有同学觉得,这些还是在讲DevOps的理论,很虚。
但其实所谓的DevOps落地本质上就是和开发找BUG一样,发现问题、定义问题、提出解决方案、然后不断实验该方案的一个循环过程。永远不会存在一个通用的解决方案,重要的是积累定义问题的经验,培养解决问题的能力。
在写这篇文章之前,我翻了很多其他企业实践的案例,有套路,有姿势,由大而全,有小而精,但无一不是根据自己公司的业务场景去发现问题,找到自己实践过程中的痛点然后去逐步解决的。这是一个必然的过程,可能有些在我们实施的过程中也会出现,可能有些在我们看来根本就不是问题。
DevOps的工具链有很多,甚至我们可以说,只要为了解决软件开发过程中的问题的都属于DevOps工具链,如果按照这个来衡量DevOps平台的搭建那可能真的遥遥无期了。因此这一篇也算是对我之前发的所谓的《从零搭建DevOps平台》的一个结束。
这是我自己以前整理的一些DevOps工具链 https://share.mubu.com/doc/78ZmU53bDzx
DevOps实践
关于DevOps的实践,有一些标准化的演进路线
有人总结了一个实践套路
三个姿势:
- 小范围CI+CD,之后全公司推广CI+CD , 并打通全流程
- 先CI,后CD,打通全流程
- 先CD,后CI ,打通全流程
五个步骤:
- 确定目标
- 选好姿势
- 梳理全流程
- 制定规范
- 分布实施
很标准,我这里也借鉴了这位大牛的想法。
但我想其实所有的方式最终都是殊途同归的。我们把DevOps当做一个解决方案来看。
其实我们所有的方案都可以按照四个步骤进行实施:
- 确定目标 也就是需求
- 梳理流程 也就是制定解决方案,细化就是分析需求,拆解任务
- 制定规范 也就是工艺标准化
- 实施推广 发布,实施,验证,收集反馈,确定新的目标,建立一个循环
其实我们所有的东西都可以按照这四个步骤去实施。去添加自己个性化的东西。
附录
招商银行案例
携程案例
美团案例
微信公众号EAWorld-DevOps落地实践及案例分享
最后放一张,我理解的全流程