<返回更多

什么是 DevOps?解读 IT 文化革命的目的和重要性

2024-01-12  今日头条  35岁职场危机
加入收藏

DevOps 将运维和开发相结合以提供持续的软件改进,可以降低复杂性并提高应用程序输出。

 

什么是 DevOps?

DevOps 是组织用来创建和交付应用程序和服务的灵活实践和流程的集合,通过使软件开发与 IT 运营保持一致和协调。

正如DevOps先驱Patrick Debois在2009年首次描述的那样,DevOps不是一种特定的技术,而是一种战术方法。通过协同工作,开发和运营团队可以消除障碍,并专注于改进他们创建、部署和持续监控软件的方式。

向 DevOps 的转变对于组织支持客户和内部利益相关者所需的不断加快的开发速度至关重要。借助云原生技术、开源解决方案和敏捷 API,团队现在可以比以往任何时候都更高效地交付和维护代码。将开发与运营以及支持运营的流程相结合,使组织能够跟上开发速度的步伐。

 

DevOps的起源

DevOps 始于 2008 年,由开发人员 Andrew Clay 和 Patrick Debois 创立。为了克服敏捷开发中的常见问题,例如随着项目时间线的扩展,协作减少,以及增量交付对长期结果的负面影响,两人提出了一种替代方案:在组合的 DevOps 管道中进行持续开发和交付。该术语在 2009 年的 DevOpsDays 之后获得了关注,并迅速成为一个新的行业流行语。

而现在 DevOps 框架不仅仅是炒作,在实践中,它最大的好处不是简单的效率提升,而是一种文化转变,从根本上改变了公司处理软件开发过程每个阶段的方式。最近,由于 Gene Kim 等行业专家的工作,DevOps 经历了更深入的演变。Gene Kim 是 Perform 2021 的主题演讲者,也是 DevOps 手册和 Phoenix Project 的作者。

 

DevOps 是如何工作的?

许多组织将开发和运维整合到一个团队中,以实现这一组合流程,按功能而不是按工作职能组织软件交付。这种方法鼓励个人发展跨职能技能,将测试和应用程序安全实践整合到无缝的交付生命周期中。

实施 DevOps 通常与持续集成 (CI) 齐头并进,在持续集成 (CI) 中,多个开发人员通常一天多次将软件更新提交到共享存储库。CI 使开发人员能够在流程的早期发现集成问题和错误,并简化代码分支和构建。

从这种整体角度来看,工程师可以在通用流程上进行协作,例如定义服务级别目标 (SLO)、测试和每个人都可以实施的质量门。一组通用的标准和目标可以简化敏捷工作流,并使团队能够采用协调的 DevOps 工具集,以便他们可以在软件交付生命周期 (SDLC) 中自动执行更多流程。

 

DevOps 生命周期

规划

这个阶段涉及定义项目的目标并制定如何实现这些目标的计划。它还包括识别可能遇到的风险和挑战。规划阶段对于确保 DevOps 过程成功至关重要。让所有利益相关者参与规划过程,包括开发人员、运营工程师和业务主管。计划应该清晰、简洁且可实现。

发展

此阶段是编写和测试代码的地方。尽可能多地自动化测试过程,以确保代码的高质量,并使用版本控制系统来跟踪代码的更改。应对代码进行单元测试,以确保其正常工作。

部署

此阶段是将代码部署到生产环境的位置。拥有一个能够自动执行部署过程并最大限度地降低错误风险的部署管道至关重要。

监测

此阶段涉及收集有关应用程序性能的数据并识别问题。有必要建立一个监控系统,可以尽快提醒团队注意任何问题。

持续改进

此阶段正在进行中,涉及不断评估DevOps流程并进行改进。对反馈持开放态度并愿意根据需要更改流程很重要。

 

DevOps的优势

在实践中,DevOps 不仅为创建、交付和维护软件提供了好处,而且为从早期概念验证到数字业务分析和客户体验的每个流程和利益相关者提供了好处。

对于开发团队来说,目标是将创建代码的过程识别为一个持续的循环,而不是一条直线。与运营团队合作或集成开发有助于将敏捷开发原则(基于优先级的快速、小规模的改进)应用于整个软件生命周期。这包括初始设计、概念验证、测试、部署和最终修订。

随着客户需求和最高管理层期望的提高,这种方法尤为重要。负责尽快生产和部署软件的开发团队现在能够做到这一点。与此同时,可以理解的是,运营团队担心快速代码实现的影响,以及将代码可靠、大规模地投入使用所需的更改。

对于运营而言,协作式部署方法可以将敏捷流程从软件扩展到平台和基础架构中,以分析 IT 环境中所有层的详细信息和上下文。通过将设计思维应用于交付系统,运营团队可以将重点从管理基础设施转移到提供出色的用户体验上。

实际上,这种开发和运营工作旨在通过将软件开发原则应用于 IT 的各个方面来利用而不是限制开发对运营的影响,同时保持对标准化和安全性的运营关注。

 

DevOps的挑战

以下是组织在采用 DevOps 时可能面临的一些挑战:

 

如何采用 DevOps

通过打破软件开发和 IT 运营团队之间的孤岛,DevOps 可以帮助组织更快、更可靠地交付软件,例如:

从小型试点项目开始。

获得所有利益相关者的支持。

使用正确的工具。

衡量和改进。

要有耐心。

 

DevOps 中的实践

持续集成

持续交付

微服务

基础架构即代码

监测

自动化

协作

 

什么是DevOps最佳实践?

在整个组织中集成学科、工具和流程需要规划和协调。以下是组织可以遵循的一些最佳实践,以使 DevOps 在企业范围内取得成功。

利用 AI 增强 DevOps 管道

DevOps 管道的每个阶段都需要进行一定数量的分析,以推动决策、响应和自动化。

例如,基于 AI 的精确分析可以推动是否发布软件的决策,一旦软件投入生产,就指示发布是否按预期运行。或者,在失败的测试运行期间,AI 可以提供确切的根本原因,直至底层代码的详细信息,以便开发人员可以快速解决和修复错误。

准确可靠地分析数据并提供明确答案的能力使团队能够在整个软件交付生命周期中实现流程自动化。可靠的 AI 驱动型答案对于快速事件响应和自动修复至关重要,因此团队可以了解故障或错误背后的背景。

这种用于 IT 运营的人工智能 (AIOps) 正在成为一种普遍的做法,尤其是在组织采用云原生基础设施的情况下。

左移服务级别目标 (SLO)

为确保开发团队和 SRE 在相同的成功标准上保持一致,他们应根据预生产环境评估生产 SLO。通过使用生产级标准将质量保证扩展到包括预防、检测和可恢复性,团队可以交付满足用户要求、降低错误率并提高整体可靠性和弹性的软件。更重要的是,在预生产中修复错误的成本远低于生产中。

持续的质量思维使团队能够构建整个 SDLC 以进行测试。这意味着测试生命周期的所有层。它还意味着开发和维护可靠的测试数据和测试环境,开发人员、SRE 和 IT 运营团队可以在开发和交付的每个阶段使用这些数据和测试环境。

自动评估预生产 SLO 的一种方法是建立质量门。质量门可帮助团队确定服务是否符合所有预定义的质量标准。质量门采用关键服务级别指标 (SLI) 或监控指标,并根据设置的质量标准对其进行评估。仅当服务达到或超过质量标准时,代码才会进入生命周期的下一阶段。

自动执行所有 DevOps 流程

自动化 DevOps 管道允许更快、更频繁地部署迭代的增量软件更新。它在开发和运营团队之间提供了更紧密的反馈循环,因此他们可以将更多时间花在创新上,而不是执行手动流程。

自动化可以帮助团队将 DevOps 从灯塔项目扩展到整个 IT 资产的基本实践。DevOps 自动化通常会敲响持续集成、持续交付 (CI/CD) 的钟声,但自动化这些基础流程可以远远超出开发代码的范围。更高级的组织寻求自动化 DevOps 生命周期的所有阶段,包括基础架构预配、部署、监控、测试、修复等。

采用云原生架构

为了发挥DevOps的潜力,速度和敏捷性是关键。采用云原生技术和架构是更快、更灵活、更大规模地交付更多、更丰富功能的最佳方式。这些技术包括基于容器的计算解决方案(如 Kube.NETes)和无服务器平台即服务 (PaaS)(如 AWS Lambda、google Cloud Platform 和 Azure Functions)。在这些环境中,软件在不可变的容器中运行,根据需要使用资源,这种设置非常适合可以轻松编排和自动化的基础结构模式。

云原生技术使团队能够更轻松地将敏捷软件开发实践应用于基础架构管理。这包括自动执行关键任务,例如版本控制、单元测试、持续交付、运营功能和问题修复。

集成 DevSecOps 的安全实践

云原生技术的多样性和灵活性也使得保护应用程序免受漏洞侵害更具挑战性。如前所述,将应用程序安全和漏洞评估集成到 DevOps 工作流中是一种最佳实践,它将 AI 驱动的分析和自动化的优势扩展到保护应用程序。

通过自动化应用程序安全测试以在运行时持续分析应用程序、库和代码,团队可以消除安全盲点和误报警报。将与安全相关的 SLO、测试和质量门添加到交付生命周期的所有阶段,使团队能够培养一种安全思维,从而消除另一个孤岛并产生更安全的软件。

采用平台驱动的自助服务流程方法

要实现广泛的DevOps成功,需要一种平台方法,使组织更容易实现结构性变革,从而优化团队的工作方式。一个关键目标是建立自助服务流程,用于管理不同类型的测试、监控、警报、CI/CD 工作流、内部基础架构和开发环境以及公有云基础架构。当团队能够访问可靠的数据和分析,并且个人拥有更多的自主权来依赖自己的知识和经验时,组织可以将 DevOps 的价值扩展到整个企业。

通过利用 AI 和自动化的单一平台中自助访问 API、工具、服务和支持,团队拥有单一可靠的知识和协调来源。这使团队能够集成和简化其 DevOps 工具链和流程,从而减少维护基础架构的时间,将更多时间用于创新。

 

DevOps 如何实现企业转型

成功的 DevOps 计划具有实验、风险和信任的文化,在这种文化中,所有成员之间的持续反馈都受到欢迎和利用。但是,仅靠文化还不足以改变企业的努力;团队还需要正确的技术和 DevOps 软件来完成工作。

随着工具和技术的激增,一项关键功能是可观察性:能够检测和监视来自整个云原生环境的遥测数据。这包括指标、日志、分布式跟踪,以及来自用户体验和最新开源标准的数据,用于衡量应用程序及其支持基础设施在每个开发阶段的运行状况。

根据 Gartner 最近的一份报告,领导者应该在预生产期间考虑解决方案,以最大限度地了解应用程序性能、服务可用性和整体环境健康状况。

在DevOps工作中加入更多规则的推动力也正在形成:“DevSecOps”团队寻求将安全测试集成到交付和部署管道中,而“BizDevOps”则努力从用户体验的角度了解应用程序性能。

 

什么是DevOps中的可观测性?

DevOps 将开发和运营结合到一个统一的框架中,打破了孤岛并促进了整个生命周期的协作。在此环境中,SRE 可以实施确保软件系统的可用性、延迟、性能和弹性的操作,而 CI/CD 实践可以提供一致性良好的自动化开发、测试、交付和部署。

 

可观测性如何缩小 DevOps 差距

什么是 DevOps?这是一种文化和战术上的转变,通过将团队合作与技术相结合来简化软件交付、标准化测试和质量关口以及自动化流程和事件响应,从而缩小开发工作与运营义务之间的差距。借助最佳实践和 AI 驱动的软件智能平台来管理整个 DevOps 工具链,团队可以最大限度地提高效率、降低错误率并实现持续交付预期。

关键词:DevOps      点击(7)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多DevOps相关>>>