面向初学者的 DevOps 简介

DevOps 已经成为一个流行词,对很多人来说意味着很多不同的东西。

理解和定义 DevOps 到底是什么是具有挑战性的。 这就是为什么如果您了解大多数人与之相关的 DevOps 的基本概念以及它如何演变的历史,那么您就会对其有一个整体的看法。

DevOps 的起源

DevOps 是敏捷软件开发的完美示例。 DevOps 的想法来自于需要跟上不断提高的软件速度并通过敏捷方法实现它。 在过去的十年中,敏捷文化和实践的巨大进步暴露了对端到端软件交付生命周期更全面的方法的需求。

您可能想知道敏捷软件开发是什么——

敏捷开发是定义几种迭代和增量软件开发方法的广义术语。 流行的敏捷方法是 Scrum、看板、Scaled Agile Framework® (SAFe®)、精益开发和极限编程 (XP)。

所有这些敏捷方法的核心价值观和愿景都是相同的,但它们都有自己独特的方法。 所有这些方法都包含迭代和持续反馈,以成功改进和交付可扩展的软件。 所有这些方法都涉及项目和软件的持续计划、持续测试、持续集成以及其他无穷无尽的形式。

与传统的瀑布式流程不同,这些敏捷方法是轻量级的,并且具有天生的适应性。 这些敏捷方法的最大优点之一是,在协作和共同做出快速决策时,它们都专注于赋予人们权力。

图片来自 Segue

DevOps 的理想是执行扩展的敏捷开发实践,以通过构建、验证、部署和不同的交付阶段来改进软件变更的运动。 它允许跨职能团队拥有从设计到生产的软件产品的完全所有权。

DevOps 解决的挑战

部署过程——分布式应用程序通常需要将二进制文件和配置文件部署到多个服务器。 当拥有一个服务器场时,它变得更具挑战性。 弄清楚部署什么、如何部署以及在何处部署变得具有挑战性。 明显的结果是?

长时间等待将工件放入生存路线的下一个环境会导致延迟测试、生存时间等一切。

DevOps 允许软件或 Web 开发人员和 IT 运营人员在完全无可指责的协作会话中部署流程。 它将使我们能够验证什么是有效的,然后通过自动化将其提升到一个新的水平,以实现持续开发。 它还为更频繁的开发创造了途径。

DevOps 目标

它改善了利益相关者之间从计划到交付的协作,并实现了交付过程的自动化,以:

  • 提高部署频率
  • 加快最终产品的上市时间
  • 降低新版本的失败率
  • 它缩短了修复之间的前置时间
  • 提高恢复时间

常见的 DevOps 场景

在开始一个新的软件项目之前,整个软件都达到了交汇点。 该团队由开发人员、测试人员、操作人员和支持专业人员组成。 该团队制定了创建可部署的功能齐全的软件的计划。

开发人员完成后,每天都会部署新代码。 自动化测试过程可确保代码已准备好实施。 一旦代码从自动化测试过程中获得绿色信号,它就会被部署给少数用户。 对代码进行短时间的监控,以确保没有不可预见的问题并且它是稳定的。 一旦最终监控显示代码稳定,新代码就会被部署到其他用户。 规划和开发之后的大部分步骤都是在没有人为干预的情况下完成的。

DevOps 成熟度的不同阶段

DevOps 成熟度有许多不同的阶段。 以下是您必须知道的关键短语。

瀑布开发

  如何修复 Outlook 异常代码 0xc0000005(完整指南)

在持续集成之前,开发团队通常会编写大量代码,然后将来自不同团队的代码合并发布。 代码的版本是如此不同,以至于它们过去需要进行大量更改。

使用这些数量的更改需要几个月以上的时间。 这个过程不是一个富有成效的过程。

持续集成

这是一种将新开发的代码与即将发布的主要代码快速集成的做法。 在发布代码时,持续开发有助于节省大量时间。

DevOps 没有引入这个术语。 持续集成是一种来自极限编程方法的敏捷工程实践。 DevOps 采用了这种做法,因为在成功执行持续集成时需要自动化。 持续集成通常是迈向 DevOps 成熟的第一步。

从 DevOps 的角度来看,持续集成包括检查代码、将其编译为可用代码以及运行一些必要的验证测试等步骤。 ‘

持续交付

它是持续集成和第二个 DevOps 阶段的延伸。

持续交付允许您添加额外的自动化和测试,这样您不仅可以快速将代码与主代码行合并,而且还可以让代码几乎可以在无需人工干预的情况下部署。

将代码库保持在几乎可以部署的状态是一种做法。

持续部署

持续部署是持续交付的高级演进。 这种做法使我们能够在没有任何人工干预的情况下将所有方式部署到生产中。

从事持续开发的团队从不未经测试就部署任何代码。 所有新创建的代码在进入生产阶段之前都要经过自动化测试。 代码被部署给少数用户,并且有一个自动反馈循环可以在代码进入下一个级别之前监控质量和使用情况。

少数公司如 Netflix、Etsy、Amazon、Pinterest、Flicker、IMVU、Google 等在做持续开发。

价值

DevOps 高度关注通过使用不同 DevOps 工具的自动化来发展协作文化和提高效率。 要为您的软件解决方案实施 DevOps,您需要结合使用文化和工具。

DevOps 文化

DevOps 是一种特殊的文化,它有助于增强协作、减少混乱、以更好的方式处理分担责任、实施自动化、质量改进、反馈评估和提高自动化。

敏捷方法一直是交付软件的最佳整体方式。 在衡量进度时,敏捷开发团队会根据工作软件来衡量。 DevOps 文化的敏捷方法允许产品所有者、开发人员、测试人员和 UX 人员紧密合作,并牢记相同的目标。

开发运维工具

包括用于配置管理、测试和构建系统、开发应用程序、控制版本和监控的工具。 在实施持续集成、持续交付和持续部署时,它们需要不同的工具,同时它们也使用相同的工具。 随着交付链的推进,您将需要使用更多工具。

让我们了解一些流行的工具和做法。

源代码存储库——这是开发人员可以签入和更改代码的地方。 源代码存储库管理签入的各种版本的代码,以确保开发人员正在重写彼此的代码。

Git、Apache Subversion、IBM Rational、Artifactory、Nexus、Eclipse 等是一些流行的代码存储库工具。

构建服务器: – 构建服务器是用于将源代码中的代码编译成可执行代码库的自动化工具。 一些高度使用的构建服务器工具是 Jenkins、SonarQube 和 Artifactory。

配置管理——Puppet、Chef、Ansible、SaltStack、Run Deck 等,有助于管理应用程序和基础设施的配置,以保持跨环境的一致性。

虚拟基础设施——AWS、GCP 和 Azure 是提供几乎所有基础设施服务的三大公共云提供商。 它们提供 API,允许您配置基础设施并像代码一样管理它们。

结论

我希望它能让你对 DevOps 有所了解,如果这让你兴奋,那么你可以试试这个在线大师班课程。

Payal Goyal 的文章