DevOps:它是什么以及它为什么重要

已发表: 2022-03-11

尽管没有万无一失的“灵丹妙药”方法来提高 IT 效率,但 DevOps 已经产生了难以忽视的结果。 顾名思义,DevOps 将软件开发和软件运营原则相结合,旨在帮助组织以更快的速度和效率开发产品。 例如,TIAA-CREF 已经看到其 400 亿美元的业务通过使用 DevOps 原则取得了重大进展。 TechBeacon 对 TIAA 首席数字官 Scott Blandford 的采访解释了 TIAA 如何从笨重的遗留软件和系统转变为“基于敏捷的 DevOps 方法”,从而将开发效率提高了四倍。 更新发布的速度要快得多,并且“随着它开始满足用户的期望,IT 已经重新获得了多年来受到侵蚀的信任。”

2017 年 DevOps 状况报告的结果表明,采用 DevOps 原则的高性能组织与不采用 DevOps 原则的组织之间存在显着差异。 根据该报告,与绩效较低的组织相比,高绩效组织的软件部署频率要高得多(频率高 46 倍)、变更提前期要快得多(快 440 倍)、软件变更失败率要低得多(低 5 倍)同行。

尽管有这些显着的好处,DevOps 仍然是一个重要的、相对较新的技术概念的典型例子,它经常被滥用或误解。 对于许多人来说,这个想法仍然很模糊,甚至 DevOps 的基本定义也难以捉摸。

这种缺乏明确性可能会对试图实施 DevOps 原则的组织和团队产生负面影响,导致战略混乱并阻碍 DevOps 应该促进的速度和效率。 正如 IBM 的 DevOps 工程师在 InfoWorld 发表的一篇文章中所说,“我们需要回答一些基本问题并确定我们试图解决的问题……如果你不知道工作实际上是如何完成的,那么你就不知道哪些问题值得解决。”

随着软件开发和运营变得更加紧密地交织在一起,并且随着公司越来越依赖云基础设施,高管和项目经理必须提高 DevOps 的流畅度,以保持竞争力并确保他们的团队充分发挥潜力。

DevOps 不应被视为另一个模糊的流行语,而应被视为具有显着改善产品和业务潜力的重要概念。 这篇文章针对的是相对非技术的读者,首先是要明确什么是 DevOps。 然后,本文将使用具体示例探讨 DevOps 原则在做得好时会是什么样子,以及为什么 DevOps 对您和您的组织很重要。

DevOps 作为一种工程师、文化和实践

什么是 DevOps? 在 Toptal 之前发表的一篇文章中,Demir Semanovic 写道:“DevOps 是一种文化和思维方式,它是整个 IT 的一部分。” 他进一步写道,DevOps 是一种使组织能够跨 IT 职能优化速度和效率的实践。

Amazon Web Services 是云基础设施领域的最大参与者,因此开发了重要的 DevOps 专业知识,它使用类似的定义,称“DevOps 是文化理念、实践和工具的结合,可提高组织交付应用程序和服务的能力高速:以比使用传统软件开发和基础设施管理流程的组织更快的速度发展和改进产品。”

“DevOps 人员基本上是那些对系统管理和软件开发都感兴趣并决定结合他们的技能为两者创建统一、更好的方法的人。”

对于已经精通相关领域的受众来说,这些都是有用的定义,但对于技术背景不太广泛的高管来说,它们可能过于抽象。 事实上,围绕 DevOps 定义的一些混淆可能源于这样一个事实,即它经常被同时称为一种工程师、一组实践和文化。 虽然 DevOps 确实包含了这些元素中的每一个,但从单独考虑它们开始是有用的。

首先介绍 DevOps 工程师的长相,Martin Chikilian 曾是 IBM 和 Hewlett Packard 的一名软件开发人员,在使用 DevOps 原则方面拥有十多年的经验,他用简单而具体的术语说:“DevOps 人基本上是那些发现兴趣的人在系统管理和软件开发方面,并决定将他们的技能结合起来,为两者创建一个统一的、更好的方法。”

他们能够维护公司拥有的服务器、网络和其他类型的基础设施系统,并通过软件开发积极地迭代和改进这些系统。 正如 Chikilian 所说的那样,“DevOps 人可以利用软件开发的基础来帮助自己和公司构建更好的工具来处理基础设施。”

正如亚马逊所说,“文化哲学的结合”是指软件开发人员使用的方法与具有基础设施或软件运营、专业知识的人使用的方法的结合。 在打破这些实践之间的传统障碍时,DevOps 文化旨在使组织能够从开发人员和基础设施专家带来的独特优势中受益。 对于孤立这些不同类型工程师的公司来说,成功实施 DevOps 原则“需要改变文化和思维方式”。 正如 Emily Dowdle 在 2016 年北欧 API 平台峰会上所描述的那样,消除障碍还有助于缓解开发人员和基础设施专家之间有时可能存在的自然摩擦,并营造一个更加友好、合作的工作环境。

简单地说,DevOps 就是将涉及容易出错的人机交互的复杂手动流程转化为可以测试、测量和轻松扩展的仪器化方法。

有了对 DevOps 实践者和文化的理解,DevOps 作为一种实践的意义就变得更加明显。 简单地说,DevOps 就是将涉及容易出错的人机交互的复杂手动流程转化为可以测试、测量和轻松扩展的仪器化方法。 例如,如果开发人员想要创建一个允许业务用户提供反馈的环境,他或她可以启动一个自动化流程,在该流程中,开发人员可以发出 DevOps 团队创建的命令(而不是交出一段代码到基础架构团队),它以一致且经过测试的方式执行相关任务,快速获得预期结果并实现协作。

DevOps 的全面定义需要了解它作为一种工程师、文化和实践的含义。 从这些角度探讨了 DevOps 的含义之后,现在深入研究成功实施后 DevOps 的样子很重要。

您的 DevOps 工具包

除了前面提到的文化转变——从一家孤立软件开发人员和基础设施专家的公司转变为一家接受他们协作的公司——公司需要了解一些对 DevOps 至关重要的具体实践和工具。 以下是此类实践中最关键的三个(尽管肯定不是唯一的):

自动化:提高效率是 DevOps 的核心,这可以通过自动化软件开发和基础设施维护中一系列相对缓慢、繁重的流程来显着实现。 亚马逊引用的一个具体例子是自动发送相对较小但频繁的软件更新的做法。 这种做法减轻了系统管理员的责任,否则他们可能不得不手动执行这些更新。 正如亚马逊指出的那样,这种做法还具有降低软件部署风险的好处,因为它使管理员能够更轻松地捕获和修复可能出现的错误。 自动化是 DevOps 的基石,对下面讨论的其他 DevOps 实践至关重要。

持续集成:从根本上讲,DevOps 是关于工程师之间以及整个团队之间的密切协作。 持续集成是指工程师在一个中心位置共享和合并代码的实践。 正如亚马逊解释的那样,“过去,团队中的开发人员可能会长时间孤立地工作,并且只会在他们的工作完成后才尝试合并他们的更改。” 通过持续集成,工程师可以更有效地协作并避免与以更零碎的方式开发和集成代码相关的瓶颈。

持续交付:持续交付是指自动交付和实施软件产品更改的实践。 换句话说,持续交付是由持续集成实现的,因为只有在代码已经存放在中心位置的情况下,对代码的更改才能有效地推送到整个系统。 自动化对于持续交付也至关重要。 事实上,前面提到的发送小而频繁的系统更新的例子也可以被认为是持续交付的例子。 持续交付使组织能够快速实施变更和改进,它使工程师能够更有效地将时间集中在其他复杂的问题上。

雇用合适的人

当然,公司需要聘请合适的工程师才能成功实施上述做法。 DevOps 工程师必须具备结合软件开发和系统基础设施专业知识的技能,而这种组合可能很难找到。

“重要的是,他们能够弥合原始代码与企业每天必须面对的挑战之间的差距——例如减少创意、交付和消费者之间的摩擦。”

Andrea Villa 是 Atlassian 的前 DevOps 工程师和 CloudReach 的系统架构师,在系统管理、信息安全和网络方面拥有 15 年的经验,他认为 DevOps 工程师需要广泛的经验和知识才能取得成功。

“为了有效,今天的 DevOps 工程师需要具有开发人员背景,并拥有广泛的系统管理知识和网络知识,”Villa 说。 “重要的是,他们能够弥合原始代码与企业每天必须面对的挑战之间的差距——例如减少创意、交付和消费者之间的摩擦。”

成为一名优秀的 DevOps 工程师显然说起来容易做起来难,找到这样的工程师也同样困难。 尽管如此,了解 DevOps 实践背后的工具可以使您的组织能够更准确地围绕寻找合适的人才并成功实施这些实践来定制招聘实践。

为什么 DevOps 真的很重要

使用 DevOps 实践会带来一系列好处,其中一些好处——包括更高的效率、安全性和组织协作——已经被阐明。 2017 年 DevOps 状况报告量化了这种效率提升,报告称采用 DevOps 实践的高绩效组织在计划外工作和返工上花费的时间减少了 21%,在新工作上花费的时间增加了 44%。

然而,更一般地说,成功实施 DevOps 实践可以通过提高关键领域的效率和执行力,从而对您的公司产生深远的影响。

Fredrik Haard 是一位拥有超过 12 年 DevOps 经验的工程师,曾在麦肯锡和 Wondersign 担任高级云架构师,他更充分地阐述了这一点。

“优秀的 DevOps 工程师必须是组织的拥护者并承担责任——所有可能没有被组织优先考虑的领域,例如数据安全、灾难恢复、缓解和审计,”哈德说。 “你在 DevOps 中做出的选择会对公司产生持久的影响。”

Microsoft 通过在其 Cloud + Enterprise 工程组中实施 DevOps 实践也看到了这些积极影响。 微软解释说,为了提供最佳结果,“我们需要工程和运营部门在从设计到生产部署的整个开发生命周期中紧密合作。” 通过转变为 DevOps 文化并使用 DevOps 实践,Microsoft 能够比以前更快地扩展并向客户提供高质量的服务。

解决这些问题并提高效率本身就很好,但它们最终是实现更根本目标的一种手段:生产令人惊叹的产品并产生更大的利润和客户满意度。

DevOps 工程师可以有效地充当公司的内部突击队,帮助解决各种各样的问题,尽管这些问题可能平淡无奇或不为人知,但对于公司的正常运作绝对至关重要。

解决这些问题并提高效率本身就很好,但它们最终是实现更根本目标的一种手段:生产令人惊叹的产品并产生更大的利润和客户满意度。 DevOps 之所以真正重要的最重要原因可能是它可以使组织最大化这些指标中的每一个。

用 DevOps 面对未来

2015 年,Andreessen Horowitz 的合伙人 Scott Weiss 表示,DevOps “不仅仅是一种方法论。 它是现代程序员必备的技能——并且越来越多地成为它自己的部门。”

这已被证明是正确的,因为包括亚马逊、微软和谷歌在内的一系列科技公司已经建立了 DevOps 团队,并投入了大量资源来建立该领域的专业知识。 Weiss 和其他主要科技公司认为 DevOps 不仅仅是一种昙花一现的时尚,而是未来软件的关键组成部分。

随着行业越来越依赖云基础设施,DevOps 将继续变得尤为重要。 在 2017 年的一份报告中,Gartner Research 预测,到 2020 年,云服务市场将以每年 15% 以上的速度增长。用美元来衡量这一增长,福布斯最近发表的一篇文章表明,云计算市场将从大约 2600 亿美元增长从 2017 年到 2020 年大约 4110 亿美元。DevOps 可以对贵公司成功将系统迁移到云的速度产生巨大影响。 在 Toptal,我们从一开始就使用 DevOps——它是我们作为一家高速增长的云公司成功不可或缺的一部分。

正如云服务市场正在快速增长一样,DevOps 的重要性也是如此。 无论是在能源、医疗保健还是高等教育领域,您的公司都需要发展 DevOps 专业知识。 了解 DevOps 是什么、它是如何实现的以及它为什么如此重要,是您考虑使用这一关键实践向前迈出的重要的第一步。