(此文章内容来自青蓝学员:广州锦高信息科技有限公司 陈兆康)
有幸受青蓝老师的邀约,在此谈谈我学习研究DevOps的一些心得体会。
先说说学习DevOps的初衷吧,其实我接触DevOps的时间其实并不长,去年年中公司开始确立DevOps为其中一个重点发展方向时我才开始研究DevOps(在此感谢公司对我的投入支持)。
从那时起开始阅读一些关于DevOps的文献著作,其中印象最深刻的要数Jez Humble写的《Continuous Delivery》,此神书对作为程序员的我冲击非常大,对照我们当下大多数惨不忍睹的IT实践,我从DevOps的原则及方法论中得到的启发甚多。
此后开始参加DevOps中国社区的线下Meetup,也拜见了社区中的一些老师,而在今年年初的一次广州站Meetup中偶尔得到一本书——《DevOps实践指南》,在书的最后了解到EXIN的DevOps认证体系,也是从那时起开始准备DOF、DOP的认证。虽然我是3月份才在青蓝报名学习DevOps,但其实我的备考早已开始。
有时,我们追求一个目标并非只是为了获取目标本身,更多的是这个过程中所产生的裨益,考试亦然。
在我看来,比起考试及格取得证书更重要的是备考过程的收获。毫不夸张地说,理解、内化DevOps中的思想原理并付诸实践(而现阶段我的实践经验是比较薄弱的),不单只是对我们的工作方式,甚至对生活问题的处理,乃至个人的思维、心态的提升都有莫大益处。倘若只是为了应付考试而囫囵吞枣,那将会是莫大的浪费,价值不大的投入我宁可一开始就不做。
在这里讲一段我经历过的一件事情,有一次我在线上购物时,收到快递打开却不是我下单的产品,当我与售后沟通出处理结果后,我就琢磨了下这起事故。“任何事故根本原因不在于人,而在于流程系统本身的缺陷”(引用自《DevOps实践指南》),人因为粗心而导致事故只是一个结果。
我向客服了解了当时他们是如何管理发货的,发现他们的发货管理流程缺少“防呆”措施(工业设计术语,通过设计出某种限制约束,让操作者不需要花费注意力或拥有相关经验知识即可无误地完成操作,比如说特殊造型的插槽接口),便提出了我当时想到的优化后的流程及对发货管理系统的改进建议。
“底层原理都是相通的”,我越发认可这句老生常谈。DevOps亦然。
图一是我在顶尖投资家Ray Dalio的著作《原则》中摘录的关于如何以看待机器的方式来发现、解决问题的图解。
(图1)
图二是我在大学学习车辆工程专业时接触到的质量管理中常用的戴明环。
(图2)
图三就是DevOps著名的双纽线。
(图3)
尽管源于不同邻域,细品之下便会发现这些循环都是万变不离其宗的。而DevOps是一门博采众长学问,就如人要树立持续学习、终生学习的观念一样,自身仍在不断发展。对业内动态、发展趋势保持关注的同时也别忘了挖掘其中不变的道理,诚如《阿里巴巴Java开发手册》中所言,“世间众多设计模式其实就是一种设计模式,即隔离变化点的模式”。
其实去年公司请来了一位DevOps方向的专家,虽然相处的时间不长,但我从他身上获益不少。
他曾和我建议,搞DevOps最好先从理论入手,搞清楚我们要达到什么效果,以此作为指引方向再去学习使用具体的DevOps工具链(如图三),此时我们就能更好地理解为什么要使用这些工具、如何用好这些工具(避免《DevOps精要:业务视角》中提到的货物崇拜、形式主义,不能把手段当目的)。
事实上DevOps并不应该受制于具体的工具,今天热门的工具,说不定明天就过时了。
从上DOP课程到考完试,大概花了一周多的时间就顺利拿到DOP的证书,最后在此感谢青蓝以及林伟丹老师的教导。