俗话说,如果你问 10 个人关于 DevOps 的问题,你会得到 12 个答案。这是围绕 DevOps 的意见和期望多样化的结果——更不用说其实践的差异了。
为了解读围绕 DevOps 的悖论,我们采访了最了解它的人——业内顶尖的实践者。这些人经验丰富,了解技术的来龙去脉,并且实践 DevOps 多年。他们的观点应该鼓励、激发和引发你对 DevOps 的思考。
DevOps 对你意味着什么?
让我们从基础知识开始。我们不是在寻找教科书式的答案,而是想知道专家怎么说。
简而言之,专家们说 DevOps 关乎原则、实践和工具。
Ann Marie Fred,IBM 数字业务集团商务平台的 DevOps 负责人说:“对我而言,DevOps 是一套旨在使团队在设计、开发、交付和运营软件方面更有效的原则和实践。”
红帽高级 DevOps 布道师 Daniel Oh 表示:“总的来说,DevOps 对于企业发展当前与应用开发、IT 运营和安全协议相关的基于 IT 的流程和工具非常具有吸引力。”
Tactec Strategic Solutions 创始人 Brent Reed 谈到了利益相关者的持续改进。“DevOps 对我来说是一种工作方式,它包含一种心态,这种心态允许持续改进运营绩效,成熟到组织绩效,最终让利益相关者感到满意。”
许多专家还强调文化。Ann Marie 说:“它也关乎持续改进和学习。它既关乎人和文化,也关乎工具和技术。”
对美国保险专员协会 (NAIC) 的首席架构师兼 DevOps 负责人 Dan Barker 而言,“DevOps 主要关乎文化。……它将精益、公正文化和持续学习等几个独立领域结合在一起。我认为文化是最关键,也是最难执行的。”
Atos 的 DevOps 负责人 Chris Baynham-Hughes 说:“[DevOps] 实践是通过组织内文化、流程和工具的演变而采用的。关键重点是文化变革,DevOps 文化的关键原则是协作、实验、快速反馈和持续改进。”
云架构师 Geoff Purdy 谈到了敏捷性和反馈,“缩短和放大反馈循环。我们希望团队在几分钟而不是几周内获得反馈。”
但最终,Daniel 通过解释开源和开放文化如何使他“以简单快捷的方式”实现目标来一针见血。“在 DevOps 计划中,对我来说最重要的是开放文化,而不是有用的工具、多种解决方案。”
你发现哪些 DevOps 实践有效?
专家引用的最有效的实践是普遍存在但又分散的。
根据 Ann Marie 的说法,“一些最强大的[实践]是敏捷项目管理;打破跨职能、自主团队之间的孤岛;完全自动化的持续交付;用于零停机时间的蓝绿部署;开发人员设置自己的监控和警报;无责事后分析;自动化安全性和合规性。”
Chris 说:“特别的突破是同理心协作;持续改进;开放式领导;缩短与业务的距离;从垂直孤岛转变为水平、跨职能的产品团队;工作可视化;影响映射;莫比乌斯环;缩短反馈循环;自动化(从环境到 CI/CD)。”
Brent 支持“发展一种学习文化,包括 TDD [测试驱动开发] 和 BDD [行为驱动开发],捕获故事并自动化从设计、构建和测试到实施和生产的事件序列,并具有持续集成和交付管道。一种先失败的测试方法,自动化集成和交付流程的能力,并在整个生命周期中包含快速反馈。”
Geoff 强调自动化配置。“选择一个的话,自动化配置对我的团队非常有效。更具体地说,是从版本化的基础设施即代码代码库进行自动化配置。”
Dan 使用乐趣。“我们做了很多不同的事情来创建 DevOps 文化。我们举办有免费食物的‘午餐学习’活动,鼓励大家一起来学习;我们买书并分组学习。”
你如何激励你的团队实现 DevOps 目标?
Daniel 强调“重要的自动化。为了最大限度地减少 DevOps 计划中多个团队的反对意见,您应该鼓励您的团队提高开发、测试和 IT 运营的自动化能力,以及新的流程和程序。例如,Linux 容器是实现 DevOps 自动化能力的关键工具。”
Geoff 同意,他说:“自动化繁琐的工作。是否有您讨厌做的任务?太好了。如果可能,将它们从工作中剔除。否则,就自动化它们。它可以防止工作变得枯燥和Routine,因为工作不断发展。”
Dan、Ann Marie 和 Brent 强调团队激励。
Dan 说:“在 NAIC,我们有一个很棒的奖励系统来鼓励特定的行为。我们有多个级别的奖励,其中两个可以由任何人颁发给任何人。我们还会在团队完成重要事情后向他们颁发奖励,但我们经常奖励个人贡献者。”
根据 Ann Marie 的说法,“我的团队中最大的动力是看到其他人的成功。我们每周都会互相回放,其中一部分是分享我们从尝试新工具或实践中学到的东西。当团队对他们正在做的事情充满热情并愿意帮助其他人入门时,更多的团队将很快加入。”
Brent 同意。“让每个人都接受教育并在相同的知识基线上是必不可少的……评估什么有助于团队实现[目标]以及它需要与产品负责人和用户一起交付什么是我想开始做的第一件事。”
Chris 建议采用双管齐下的方法。“制定团队同意的、可实现的且重要的每周小目标,并且[在这些目标中],他们可以看到他们在正在做的功能工作之外的进展。庆祝胜利并可视化取得的进展。”
DevOps 和敏捷如何协同工作?
这是一个重要的问题,因为 DevOps 和敏捷都是现代软件开发的基石。
DevOps 是一种软件开发过程,侧重于沟通和协作,以促进快速应用程序和产品部署,而敏捷是一种开发方法,涉及持续开发、持续迭代和持续测试,以实现可预测和高质量的可交付成果。
那么,它们是如何相关的呢?让我们问问专家。
在 Brent 看来,“DevOps != 敏捷,其次敏捷 != Scrum。……支持 DevOps 策略和目标的敏捷工具和工作方式是它们如何结合在一起的。”
Chris 说,“敏捷对我来说是 DevOps 的基本组成部分。当然,我们可以谈论如何在非敏捷环境中采用 DevOps 文化,但最终,提高软件工程方式的敏捷性是衡量组织内 DevOps 采用成熟度的关键指标。”
Dan 将 DevOps 与更大的 敏捷宣言 联系起来。“我从不谈论敏捷而不参考敏捷宣言,以便设定基线。有许多不关注宣言的实现方式。当你阅读宣言时,他们实际上从开发的角度描述了 DevOps。因此,将敏捷融入 DevOps 文化非常容易,因为敏捷专注于沟通、协作、变更灵活性和快速投入生产。”
Geoff 认为“DevOps 是敏捷的众多实现方式之一。敏捷本质上是一组原则,而 DevOps 是一种体现这些原则的文化、流程和工具链。”
Ann Marie 简洁地说“敏捷是 DevOps 的先决条件。DevOps 使敏捷更有效。”
DevOps 是否从开源中受益?
所有参与者都对这个问题表示热烈的“是”,然后解释了他们看到的益处。
Ann Marie 说:“我们得以站在巨人的肩膀上,并在已有的基础上构建。开源维护软件的模型,包括拉取请求和代码审查,也非常适合 DevOps 团队。”
Chris 同意 DevOps “无疑”从开源中受益。“从工程和工具方面(例如,Ansible),到流程和人员方面,通过行业内故事的分享和开放领导社区。”
Geoff 引用的一个好处是“基层采用。没有人需要为免费(如啤酒)软件签署采购申请。团队找到了满足他们需求的工具,可以自由(如自由)修改,[然后]在其基础上构建,并将增强功能贡献回更大的社区。冲洗,重复。”
Daniel 说,开源向 DevOps 展示了“您可以采用新变化并克服挑战的更好方法,就像开源软件开发人员正在做的那样”。
Brent 同意。“DevOps 在很多方面都受益于开源。一种方式是使用这些工具来了解它们如何帮助加速 DevOps 目标和策略。教育开发和运营人员了解自动化、虚拟化和容器化、自动扩展以及许多在不引入使 DevOps 更容易的技术推动因素的情况下难以实现的品质等关键事项。”
Dan 指出了 DevOps 和开源之间双向的共生关系。“做得好的开源需要 DevOps 文化。大多数开源项目都具有非常开放的沟通结构,几乎没有隐晦之处。这实际上是 DevOps 实践者了解他们可以带入自己组织的哪些内容的一个很好的学习机会。此外,能够使用来自与您自己的组织相似的社区的工具只会鼓励您自己的文化发展。我喜欢以 GitLab 为例来说明这种共生关系。当我将 [GitLab] 引入一家公司时,我们得到了一个很棒的工具,但我真正购买的是他们独特的文化。这通过我们与他们的互动以及我们回馈的能力带来了巨大的价值。他们的工具也为 DevOps 组织提供了很多东西,但他们的文化启发了我引入它的公司。”
现在我们的 DevOps 专家已经权衡了利弊,请在评论中分享您对 DevOps 意味着什么以及我们提出的其他问题的看法。
2 条评论