知识卡片

DevOps的本质是消除信息不对称

普通读书笔记卡

内容

DevOps的常见定义是”重视开发与运维之间沟通合作的文化/运动/惯例,通过自动化软件交付和架构变更流程让构建/测试/发布更快捷可靠”——很多人把这个定义理解成”研发运营一体化”。但拆开DevOps那些看似繁多的能力域(配置管理、构建与持续集成、测试管理、部署与发布管理、环境管理、数据管理、度量与反馈,共7大能力域、14个能力大项、49个能力子项)和高频词汇(一体化、一包到底、端到端、自动化、度量、协作),会发现它们都在围绕同一个中心:最大限度消除业务、研发、测试、运维各阶段/各环节之间的信息不对称。信息不对称是个经济学概念(二手车市场”劣币驱逐良币”、保险的逆向选择都是典型案例),它给信息流通带来障碍,让信息接收方要么拿到延迟的信息、要么拿到失真的信息——发生在软件研发领域,就表现为上线失败、沟通成本增加、项目周期拉长。从这个角度重新理解DevOps的具体举措会豁然开朗:”一包到底”原则本质是强制消除交付介质在不同阶段之间的信息差异;PaaS平台引入镜像概念,解决的正是”开发环境部署顺利、生产环境却出错”这种因环境信息差异导致的问题;自动化流水线消除的是人工操作难以避免的个体差异(即便再细致谨慎也存在出错的可能性);指标的自动采集与统一展示,消除的是不同角色之间的信息不对称(过去某些指标只有开发和运维团队掌握,领导拿不到准确信息,推动进展就会缓慢或者只能”治标不治本”);上下游工具链打通、要求单一可信源,消除的分别是数据流动障碍和工具之间的不对称性。可迁移启发:评估一项DevOps相关的举措是否真正有价值,可以直接问它消除的是哪一类信息不对称——如果答不出具体消除了谁和谁之间的哪种信息差,这项举措很可能只是在追赶概念热度,而没有真正命中DevOps的核心诉求。

参考来源

- 位置:《架构师启示录:知识模型、落地方法与思维模式》第4章《架构演进》之"4.2 DevOps的本质"(源文件:_epub-src/EPUB/xhtml/chapter7.xhtml) - 结论依据:原文说明"尽管DevOps的能力域看似众多,概念丰富多样,其实本质都是围绕着一个中心点展开,就是致力于最大限度地消除业务、研发、测试、运维等各个阶段及各个环节之间的信息不对称……目前在DevOps中倡导的一包到底原则,实际上是强制消除了交付介质在不同阶段的信息差异……直到PaaS平台引入镜像概念后才解决了不同环境的信息差异", 直接支撑本卡关于DevOps本质及具体举措与信息不对称对应关系的结论。 - 原始内容:使用流水线进行自动化操作可以消除这种人为差异。