DevOps 教程 - 简介

DevOps 中包含许多不同的阶段、概念和组成部分,本 DevOps 教程是了解 DevOps 的本质及其如何帮助改进软件交付过程的好方法。

了解 DevOps

开始本 DevOps 教程时,我们将先介绍一些基本定义,帮助你理解 DevOps 的本质及其如何与整个软件开发过程相关。

  • DevOps 是一种软件开发实践,可促进开发与操作之间的协作,从而更快、更可靠地交付软件。DevOps 通常被称作一种文化,它将人员、流程和方法连接在一起来提供持续价值。

    详细了解 DevOps

  • 软件开发过程可采用大量手动操作,但这会导致大量代码错误。开发团队和运营团队可能常常信息不同步,而这可能会拖慢软件交付速度,辜负企业利益干系人的期望。DevOps 在软件开发、部署和维护所涉的全部任务中都可提高效率。

    将开发和运营连接起来可增强可视性、使需求更为准确、改善沟通并加快上市。

  • DevOps 弥合了开发与操作之间的差距,使得软件开发和部署间效率显著。DevOps 非常注重自动化,有助于减少错误总数。

  • DevOps 的理念是肩负项目各个方面的端到端责任。与更为传统的软件开发方法不同,DevOps 弥合了开发团队与运营团队之间的差距 - 这种彼此连接时常缺乏,从而可能严重阻碍软件交付过程。

    DevOps 为软件开发和发布提供了一个全面的框架,将开发团队和运营团队连接在一起 - 两者缺少连接可能会给软件交付带来挑战并导致效率低下。

  • 尽管 DevOps 和敏捷都是软件开发实践,但两者的侧重略有不同。DevOps 是注重为参与软件开发、部署和维护的所有利益干系人创造高效率的一种文化。而敏捷是一个精实生产过程,可帮助提供软件开发生产框架。敏捷通常特定于开发团队,而 DevOps 涵盖了所有参与软件生产和维护的利益干系人。DevOps 和敏捷可结合使用以创建高效的软件开发环境。

    详细了解 DevOps 与敏捷

请通过这些任务加深你的 DevOps 学习

本 DevOps 教程中的每个部分都包含一些任务,可帮助练习如何构建 DevOps。请花一些时间回答以下问题:

  • 软件开发和部署期间遇到过哪些挑战?请列举一些。
  • 开发和部署软件时,希望在哪些方面提高效率?

DevOps 实践的基础知识

本 DevOps 手册的下一部分是理解 DevOps 实践中采用的主要概念。本部分将帮助解释和阐明其主要组成部分。

  • 敏捷开发常用于软件团队,是一种与精实生产相关的交付方法。开发在短期增量冲刺 (sprint) 中完成。尽管与 DevOps 不同,但这两种方法并不相互排斥 - 敏捷实践和工具可帮助提高开发团队的效率,为整个 DevOps 文化做出贡献。

    开始使用 Azure Boards 进行敏捷规划

  • 在团队合作情况下,版本控制是实现准确、高效软件开发的关键部分。版本控制系统(如 Git)会拍摄文件的快照,让你永远都能随时退回到任何版本。版本控制系统让你能够确信你不会与正在进行的更改出现冲突。

    开始将版本控制和 Azure Repos 结合使用

  • 持续集成是代码完成并提交到系统时发生的自动生成和测试的过程。代码提交之后,它就执行提供验证的自动化流程,然后仅将已测试和已验证的代码提交到通常称为主分支、干线或主干的主源代码中。持续集成将此过程自动化,显著提高了效率。在将任何代码与主分支合并之前,及早确认出所有 bug。

    开始使用 Azure Pipelines 实现持续集成

  • 持续交付是 DevOps 中的基本实践,可确保快速、可靠地交付软件。尽管该过程与 DevOps 的总体概念类似,但持续交付是一个框架,在这里,代码的每个组件在完成时都经过测试、验证和提交,从而能够随时交付软件。持续集成是一个过程,是持续交付的组成部分。

    开始使用 Azure Pipelines 实现持续交付

  • 无论是在本地还是在云中,资源的预配和配置都是环境操作的关键部分。通过流程自动化并使用提供基础结构声明性定义的工具(例如,基于文本的定义文件),团队能够以可靠的、可重复的方式部署和配置资源。可通过版本控制将基于文本的定义文件作为代码进行管理,从而实现复杂环境的轻松回退、重新创建和删除。Terraform 或 Ansible 等方法是实现基础结构即代码的常见解决方案。

    使用 Terraform 在 Azure 上创建基础结构

    详细了解如何在 Azure 中使用 Ansible

  • DevOps 不仅涵盖软件性能等通过交付产生的软件开发和维护责任。在 DevOps 的整个流程中,创建了一个反馈循环,这最终提供了既能帮助改进未来的项目又能验证软件部署决策的数据点。监视和日志记录是支持验证性学习的关键部分,而后者对整体计划提供支持,从而始终致力于提高软件开发和交付过程的效率。

    了解如何使用 Azure Monitor 收集和分析遥测数据

  • 在整个生命周期中,反馈和遥测数据会收集用来提供信息帮助对下一周期作出决策。此信息被称为验证性学习。验证性学习有助于深入了解新的方法来降低每个周期所耗的时间。然后,收集到的数据用于寻找方法来增强自动化、改进流程并为提高部署速度和效率做好准备。

请通过这些任务加深你的 DevOps 学习

你现已了解 DevOps 实践中的关键概念,请花一些时间回答以下问题:

  • 开发过程中哪些部分需手动操作?哪些部分可从自动化中获益?
  • 是否有机会在团队构建过程中引入持续集成?
  • 团队目前如何管理基础结构?流程是否可重复且可靠?能否使用基础结构即代码改进流程?
  • 哪些遥测数据有助于为工作提供信息?
  • 还有哪些数据点可为验证性学习提供支持?

构建 DevOps 文化

本 DevOps 教程的下一部分将介绍如何构建 DevOps 文化。准备将 DevOps 引入业务时,可能会遇到与当前软件交付方法之间存在差异这一问题。

建立新文化并非一蹴而就,也并非购买一套新工具那么简单。要团队能够学会和使用 DevOps,可能需要改变当前的团队结构、工作流和习惯。

了解 Microsoft 如何构建 DevOps 文化

请通过这些任务加深你的 DevOps 学习

在你考虑在贵公司构建 DevOps 文化时,请花点时间回答以下问题:

  • DevOps 有助于在软件开发、交付和维护期间协调所有利益干系人:在贵组织,这包括谁?创建一个包含所有将共事的人员的清单。
  • 可通过哪些方法增强开发与操作之间的沟通?集思广益构想一些对策,增强利益干系人之间的合作。

DevOps 视频

观看这些视频,更深入地了解本手册之外的 DevOps 信息。了解如何将 DevOps 完全集成到软件开发过程中。

Azure DevOps 简介

与 Donovan Brown 一起浏览 Azure DevOps 的特色和功能。

利用 Azure Pipelines 生成和部署代码

了解 Azure Pipelines 为何是管理代码持续集成和持续部署 (CI/CD) 的绝佳工具。

有关将 Azure 和 HashiCorp Terraform 结合使用的简介

请学习此 DevOps 速览教程,了解如何设置和配置 Terraform 来使其将 Azure 基础结构作为代码进行管理。

开始使用 Azure DevOps

通过一组新式开发服务更高效可靠地交付软件。利用所有 DevOps 功能,或选择适合你的功能,更智能地规划、更好地协作、更快地交付。