Azure云计算教程 - DevOps


Azure Devops介绍

在开发中的一个趋势就是尽量自动化。和人工方式相比,自动化的优势太多了:不易出错,可靠,可重复部署过程。

主要组成部分:

  • Azure Boards:类似JIRA的项目管理工具
  • Azure Pipelines:类似Github Actions的CI/CD工具
  • Azure Repos:类似Github的代码库
  • Azure Artifacts:类似Nexus的组件库

CI的四个重要组成部分:

  • 源码控制系统
  • 包的管理
  • CI本身
  • 自动化构建系统

Azure Pipelines

  • 支持多种编程语言:Python,Java,Ruby,Go,PHP,C#等
  • 可以部署到不同的环境中,包括Azure,AWS,GCP等,也包括On-premises
  • 和Azure的众多服务无缝衔接:ACR, VM等
  • 可以在不同的OS上构建:Windows, Mac, Linux

Azure Pipelines的组件:

  • Agent
  • Artifact
  • Build
  • CI
  • CD
  • Deployment Target

Azure Pipeline可以在YAML中定义,也可以使用GUI。其组成部分包括:

  • Name
  • Trigger
  • Variables
  • Job
  • Pool
  • Checkout
  • Steps

Agent & Agent pool

Agent说白了就是一台虚拟机以及运行在虚拟机上的构建程序。Agent pool中有很多用于CI/CD的agent。在同一个组织内部,agent pool中的agent可以被共享。

Agent Pool中的角色包括:

  • Reader
  • Admin
  • Service Account

可以定义private agent。

Agent又可以分为Microsoft hosted agent和Self hosted agent。

对于Microsoft hosted agent:

  • 微软在Pipeline需要时自动创建一个VM来运行pipeline
  • 这是使用Azure pipeline时默认/最简单的agent
  • 在每次构建时都会创建一个“干净”的VM
  • 在构建文件中必须自己安装依赖库
  • VM的配置是有限制的(Standard_DS2_v2, 10G存储,No GPU)

对于Self hosted agent:

  • 可以选择Azure VM或自己的虚拟机/PC
  • 其优点就是能够将配置保存在自己的VM上,同时可以灵活的控制、管理依赖库
  • 可以自己决定agent的硬件配置

关于构建时的trigger

  • CI trigger: 当更新repo时自动运行CI
  • Scheduled trigger:自动定时运行
  • Pipeline trigger:当另一个pipeline运行时会触发当前的pipeline
  • PR trigger(在branch policy中定义)

关于multiple builds

应用场景

  • 在不同版本的Python下运行单元测试
  • 在不同的OS下进行构建

文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !