什么是 DevOps?

改善您的开发人员体验、为所有服务编制目录,并改善软件运行状况。

免费试用 Compass

改善您的开发人员体验、为所有服务编制目录,并改善软件运行状况。

什么是 DevOps?

DevOps 是一套实践工具文化理念,它能实现软件开发与 IT 团队间流程的自动化与整合。它强调团队赋能、跨团队沟通与协作以及技术自动化。

DevOps 如何运作?

DevOps 团队由开发人员和 IT 运营人员组成,双方在整个产品生命周期内协同工作,以提高软件部署的速度与质量。这是一种全新的工作模式,也是一次文化变革,对团队及其所属组织都具有深远意义。

在 DevOps 模式下,开发团队与运营团队不再处于“各自为政的孤立状态”。有时,这两个团队会合并为一个统一团队,团队内的工程师会参与应用从开发、测试到部署、运营的全生命周期工作,并掌握多领域的综合技能。

DevOps 团队借助工具实现流程的自动化与加速,从而提升工作的可靠性。一套 DevOps 工具链能够帮助团队落实重要的 DevOps 基础要素,包括持续集成、持续交付、自动化以及协作。

DevOps 的价值观有时也会应用于开发以外的其他团队。当安全团队采用 DevOps 方法时,安全管理会成为开发流程中一个主动且深度融合的环节,这种模式被称为 DevSecOps

DevOps 生命周期

由于 DevOps 的连续性,从业人员会使用无限循环来展示 DevOps 生命周期各个阶段之间的相互关系。尽管各阶段看似是按顺序推进的,但此循环象征着在整个生命周期中,需要持续开展协作并进行迭代优化。

DevOps 生命周期由八个阶段组成,它们分别代表开发(循环的左半部分)和运营(循环的右半部分)所需的流程、功能和工具。团队会在每个阶段进行协作和沟通,以保持一致性、速度和质量。

发现

构建软件是一项团队运动。为即将到来的冲刺做准备,团队必须举行研讨会,以探索、整理想法并确定其优先顺序。创意必须与战略目标保持一致,并能够对客户产生影响。敏捷开发可以帮助指导 DevOps 团队。

计划

DevOps 团队应采用敏捷开发实践来提高速度和质量。敏捷开发是一种用于项目管理和软件开发的迭代方法,可帮助团队将工作分解成更小的部分,从而提供增量价值。

构建

Git 是一个免费的开源版本控制系统。Git 可为分支、合并和重写存储库历史记录提供出色的支持,而这已为开发构建流程带来了众多极具创新且功能强大的工作流和工具。

测试

持续集成 (CI) 允许多个开发人员将各自编写的代码存储到单个共享存储库中。将代码变更内容合并时,将运行自动测试,在集成之前确保代码正确无误。合并和测试代码通常有助于开发团队确保部署后的代码质量和可预测性。

部署

通过持续部署 (CD),允许团队自动频繁地将功能发布到生产环境中。团队还可以选择部署功能标记,从而稳定、有条不紊地向用户交付新代码,而不是一次性全部交付。这种方法提高了软件开发团队的速度、生产力和可持续性。

运维

管理面向客户的端到端 IT 服务交付。这包括设计、实施、配置、部署和维护支持组织服务的所有 IT 基础架构过程中涉及的实践。

观察

快速识别并解决影响产品正常运行时间、速度和功能的事务。自动通知您团队有关变更、高风险操作或故障的信息,以便保持服务的运行。

持续反馈

DevOps 团队应对每个版本进行评估,并生成报告以改进未来版本。通过收集持续反馈,团队可以改进其流程,并采纳客户反馈以改进下一个版本。

DevOps 工具

DevOps 工具 满足 DevOps 生命周期各个关键阶段的需求。这些工具通过助力改善协作、减少上下文切换、引入自动化以及实现可观测性与监控,为 DevOps 实践提供支撑。

DevOps 工具链通常采用两种方式:一体化工具链和开放式工具链。一体化工具链提供完整的解决方案,通常不与其他第三方工具集成;而开放式工具链则支持结合各类工具进行定制化配置。这两种方式各有利弊。

开放式 DevOps 工具链的一个示例是 Atlassian 的 Open DevOps Solution,该方案以 Jira 为基础,并可与主流提供商的产品及各类 Marketplace 应用实现集成。

DevOps 有哪些优势?

在 Atlassian 的《2020 年 DevOps 趋势调查报告,99% 的受访者表示 DevOps 对其所在组织产生了积极影响。DevOps 的优势包括更快速便捷的版本发布、更高的团队效率、更强的安全性、更优质的产品,进而促成更高效的团队和更满意的客户。

速度

践行 DevOps 的团队能够更频繁地发布可交付成果,且成果的质量与稳定性更高。事实上,DORA 的《2019 年 DevOps 现状报告显示,精英团队的部署频率是低绩效团队的 208 倍,部署速度更是达到其 106 倍。持续交付能力可助力团队借助自动化工具完成软件的构建、测试与交付工作。

改进协作

DevOps 的基础是开发人员和运营团队之间的协作文化,他们会分担责任,协调工作。此举可以提高团队的效率,并省去工作交接和编写专为其运行环境而设计的代码的时间。

快速部署

通过提高发布的频率和速度,DevOps 团队可以快速地改进产品。快速发布新功能和修复缺陷有助于获得竞争优势。

质量和可靠性

持续集成和持续交付等实践可确保变更正常运行且安全无误,从而提高软件产品的质量。监控则有助于团队实时了解性能。

安全性

DevSecOps 将安全环节融入持续集成、持续交付与持续部署管道中,成为开发流程中一个主动且集成的组成部分。通过在敏捷开发和 DevOps 工作流中集成主动式安全审核与安全测试,安全防护被内置到产品本身之中。

采用 DevOps 会面临哪些挑战?

积习难改。长期处于各自为政工作模式的团队,在为推行 DevOps 实践而调整团队架构时,可能会举步维艰,甚至产生抵触情绪。有些团队错误地认为,仅靠引入新工具就能实现 DevOps 的采用。但实际上,DevOps 是人员、工具与文化三者的结合。DevOps 团队的每一位成员都必须洞悉从创意构思、开发构建到最终用户体验的完整价值流。这就要求团队打破部门壁垒,以便在整个产品生命周期中开展协同工作。

Devops 不是任何一个个人的工作,而是每个人的工作。

Robert Krohn

Atlassian DevOps 工程主管

从传统基础架构转向使用基础架构即代码 (IaC) 和微服务,能够加快开发与创新的速度,但同时也会带来更高的运营工作量,形成不小的挑战。最佳做法是先搭建起一套坚实的自动化、配置管理及持续交付实践基础,以此来减轻相关负担。

过度依赖工具,反而会让团队忽视 DevOps 的必要根基:团队与组织架构。应在确立架构后,再梳理流程、搭建团队,最后才是匹配相应的工具。

如何采用 DevOps

采用 DevOps,首先需要致力于评估组织当前所使用的各类团队、工具及流程,并酌情对其进行调整或裁汰。这意味着要搭建起必要的基础架构,以赋予团队足够的自主权,使其能够自主完成产品的构建、部署与管理,无需过度依赖外部团队。

DevOps 文化

DevOps 文化是指团队接纳全新的工作模式,开展更深度的协作与沟通。它将人员、流程与工具进行协同整合,共同聚焦于更统一的客户需求。跨学科团队需要对产品的全生命周期承担责任。

持续学习

DevOps 推行出色的组织,往往是那些鼓励实践探索与适度承担风险的地方。在这样的组织里,跳出固有思维模式是常态,而失败也被视作学习与改进过程中必然存在的一部分。

敏捷开发

敏捷方法在软件行业极为广泛受欢迎,它能赋予团队与生俱来的灵活性、条理性,以及应对变化的能力。DevOps 则是一种推动软件构建者与维护者协同合作的文化变革。当敏捷与 DevOps 结合使用时,能够为团队带来极高的效率与可靠性。

DevOps 实践

持续集成

持续集成是一种自动化整合代码变更至软件项目中的实践。它能让开发人员频繁地将代码变更合并到执行构建与测试的中央存储库。这有助于 DevOps 团队更快速地解决缺陷、提升软件质量,并缩短新软件更新的验证与发布时间。

持续交付

持续交付以持续集成为基础,通过自动将代码变更部署至测试/生产环境来实现扩展。它遵循持续交付管道,将自动化构建、测试与部署环节编排为一套发布工作流。

情境意识

对于组织中的每一位成员而言,能够获取高效、快速开展工作所需的数据至关重要。团队成员需要收到部署管道故障的警报(无论是系统故障还是测试失败导致的问题),同时也需要获取生产环境中运行应用的健康状态与性能表现的实时更新。指标、日志、追踪记录、监控以及警报都是为团队开展工作提供依据的关键反馈来源。

自动化

自动化是 DevOps 最重要的实践之一,因为它能助力团队以更快的速度完成高质量软件的开发与部署流程。借助自动化技术,仅需将代码变更推送至源代码存储库这一简单操作,就能触发构建、测试与部署流程,从而大幅缩短这些步骤的耗时。

基础架构即代码

Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.

微服务

Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.

监控

Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.

开始使用 DevOps。

开启 DevOps 实践最简单的方法是,确定一个小型价值流(例如一个小型支撑应用或服务),并着手尝试部分 DevOps 实践。与软件开发工作一样,相比试图一次性推动整个组织转移到全新工作模式,联合一小部分利益相关者,针对单个价值流推进转型要容易得多。

Atlassian 提供了 Open DevOps Solution,该方案可依托 Atlassian 自有工具及其他第三方工具,实现端到端的 DevOps 流程。以 Jira 为核心支柱,团队既可以使用 Atlassian 产品,也能将自己青睐的产品接入这一开放式工具链。Atlassian 生态系统拥有丰富的集成功能与加载项,支持团队根据自身需求定制专属工具链。

务必查阅我们的 DevOps 教程,其内容涵盖自动化测试安全可观察性功能标记持续交付

为您推荐

DevOps 博客

寻找答案,建立联系