Azure DevOps介绍
Azure DevOps是一个包含所有内容的软件包,提供涵盖整个SDLC或App开发生命周期的广泛服务。
技术吸收有时会发生。发现一种新的工作方式或方法的主要原因是减少了人力。作为人类,我们的努力始终追求卓越,以提高生产率并简化流程。我们在日常生活中使用各种工具,软件和应用程序来管理我们的事物。但是即使是软件应用程序开发部署需要一些工具链,可将您的源代码保存在云上的私有存储库中,跟踪任务列表,生成报告,可以进行敏捷计划,提供集成的测试解决方案,这将有助于部署过程,而Azure DevOps – Microsoft的软件即服务(SaaS)平台应运而生。Azure DevOps的发布时间约为2018年,因此它并不是技术界的新手。可以使用2006年启动的Visual Studio Team系统跟踪其起源。
什么是Azure DevOps?
Azure DevOps是一个包含所有内容的软件包,提供涵盖整个SDLC或App开发生命周期的广泛服务。让我们看一下Azure DevOps的一些重要功能:
-
Azure板:允许工作项跟踪,敏捷计划,Power BI可视化以及类似的其他报告工具。
-
Azure管道:定义CI / CD-持续集成和持续部署过程,并支持容器和Kubernetes。
-
Azure存储库:为云托管的专用存储库提供全面支持。
-
Azure工件:程序包管理支持来自私有或公共来源的Maven,npm,NuGet和Python程序包提要。
-
Azure测试计划:提供测试计划的集成计划和调查。
-
Azure DevOps是Microsoft提供的功能丰富的成熟模型,可让企业同时管理多个任务。
什么是Azure Pipeline?
Azure Pipeline是一组自动化的过程,可帮助开发人员在其他计算平台上编译,生成和部署代码。它是一种持续交付工具,类似于开源Jenkins或CodeShip。该管道的唯一目标是无需人工干预,所有更改都将自动执行。每当有人处理该过程时,在执行相同的重复无聊任务时都可能会出现人为错误,但是有了自动化,它在配置后便可以无缝运行。
管道通常分为以下几类:
-
源代码控制
-
构建工具
-
包创建
-
配置管理
-
监控方式
Azure Pipelines可以与许多应用程序类型一起使用,例如Java,Go,Python,JavaScript,Node.js,.Net,C ++和XCode。若要使用Azure Pipelines,您将需要附带一个源控件,并且Azure Pipelines支持各种源控件,例如GitHub,Azure Repos,Bitbucket,Subversion等。
Azure管道基于持续测试,构建和部署CI / CD管道的强大基础。他们还通过测试代码并将代码部署到所需的目标来自动执行连续交付。
持续集成(CI)
持续集成有助于在开发周期的早期阶段发现错误和问题,而更轻松,更快速地修复错误。开发人员可以在版本控制的存储库中检查其代码,检入其代码以测试并定位错误。主要好处是:
-
较小的更改更易于与大代码合并。
-
大团队更容易了解每个团队的工作。
-
查找错误,更易于修复。
-
持续的代码编译和测试。
-
使集成过程平稳可提高生产率。
连续交付(CD)
持续交付可帮助开发人员可靠,快速地交付新功能,修复错误并配置更改。连续交付管道按配置提供例行交付,也可以按需提供。主要好处是:
-
降低发布中的风险。
-
更快地提供错误修复和问题。
-
交付在任何规模上都是可行的。
-
Azure管道提供YAML语法和经典界面来设置CI-CD管道。
使用YAML语法定义管道
管道取决于代码的版本,相似的代码将具有相似的分支结构。您可以设置触发器以在接受任何拉取请求时启动该过程。您可以触发构建过程并确定与现有代码库集成的问题。
azure-pipelines.yml可用于在应用程序的YAML文件中添加管道。
这些是高级步骤:
-
配置Azure管道以使用您的存储库。
-
编辑YAML文件以指定您的构建。
-
将代码推送到特定分支以触发该过程。
-
使用经典接口定义管道
用户可以使用经典的用户界面编辑器在Azure DevOps门户中定义管道。他们还可以为诸如构建和测试代码的活动定义“构建管道”,然后发布工件。此外,他们还可以定义“发布管道”以使用这些工件并将它们部署在目标中。
这些是高级步骤:
-
配置Azure管道以使用您的存储库。
-
使用Azure DevOps Web门户定义构建和发布管道。
-
将您的代码推送到特定分支以触发该过程。
在这里,我们看到了以两种方式定义管道的高级步骤。在跳转到创建新管道之前,让我们看看在Azure管道中要使用的一些术语。
Azure DevOps管道的关键组件
-
触发器启动要运行的管道。
-
管道可以具有多个阶段。管道可以部署到单个或多个环境。
-
可以指定一个阶段来管理管道中的作业,并且每个阶段都有各种作业。
-
每个作业都在一个代理上运行。作业也可能没有代理人。
-
每个代理运行一个可能包含多个步骤的作业。
-
步骤可以是脚本或任务之类的任何东西,它是管道的紧凑部分。
-
任务是预先打包的脚本,其作用类似于发布构建工件或调用REST API。
-
运行会发布一堆称为工件的文件或捆绑包。
Agents
代理程序是一种具有已安装的代理程序软件的计算体系结构,当代理程序附带的作业运行时,该软件将运行一组步骤。有关此组件的详细信息,请检查构建和发布代理。
Approvals
它指定了可以执行部署之前所需的一组验证。它用于管理对生产环境的部署。配置检查后,管道将暂停并停止,然后再开始部署过程。只有选中并成功完成所有取消选中选项,他们才会重新启动该过程。有关任何信息,请访问定义批准和检查。
Artifacts
它是由构建管道发布的软件包或文件的捆绑包。了解有关Azure Pipelines中的工件的更多信息。
Deployment group
它是安装了代理的一系列目标计算机。使用部署组可以轻松地为机器中的管道设置部署目标。查看有关部署组的更多信息。
Environment
当一大堆不同的资源聚集在一起并部署应用程序时,则称为环境。它可以是虚拟机,容器,Web应用程序或任何服务的集合。
Job
该阶段包含许多作业,每个作业都在一个代理上运行。作业定义了要执行的一组步骤的执行边界。
Pipeline
管道是CI / CD流程的一部分,其中有很多阶段。您可以将其想象为一种顺序形式的工作流,在其中测试,构建和部署应用程序。
Run
运行命令用于在管道中实现任何功能。它收集与当前正在运行的步骤链接的日志,并且当前已实现测试结果。在运行过程中,Azure Pipelines将首先评估管道,然后将运行转移到各种代理。作业将由每个代理执行。详细了解 管道运行顺序。
Script
脚本可以是在管道中运行代码的Bash,命令行或PowerShell。
Stage
在管道中,存在一个用于监视性能的逻辑边界,称为“阶段”。
Task
任务是捆绑了一对输入的捆绑脚本或方法。
摘要
在Azure DevOps Pipelines的整个讨论中,我们了解了它们能够提供的各种服务,以简化总体操作并优化每个流程。此过程将使用健壮且可扩展的Azure平台将所有工作流均等地划分为可管理的格式,以使用持续集成和连续部署方法在管道中部署解决方案。