0Pricing
Azure Fundamentals · Урок

Обзор Azure DevOps Services

Познакомьтесь с пятью службами Azure DevOps, создайте организацию и проект и подключите репозиторий кода, чтобы начать совместно отслеживать рабочие элементы и фиксации изменений.

«Обзор Azure DevOps Services» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.

Что такое Azure DevOps

Azure DevOps — это размещаемый в облаке набор инструментов разработчика от Microsoft, охватывающий весь жизненный цикл поставки программного обеспечения. Он объединяет управление проектами, управление исходным кодом, автоматизацию сборки и выпуска, управление тестированием и хранение артефактов на одной интегрированной платформе. Команды, использующие Azure DevOps, могут планировать спринты, фиксировать изменения кода, запускать автоматические сборки, выполнять развёртывание в рабочей среде и отслеживать показатели качества — всё это из одной службы с глубокой интеграцией с другими службами Azure.

Пять служб Azure DevOps

Azure DevOps включает пять служб: Azure Boards (отслеживание рабочих элементов по методологии Agile — эпики, истории, задачи и ошибки), Azure Repos (неограниченное количество репозиториев Git или устаревшая система TFVC), Azure Pipelines (автоматизация CI/CD для любого языка, платформы и облака), Azure Test Plans (ручное и исследовательское тестирование, тестовые случаи и показатели качества) и Azure Artifacts (универсальный канал пакетов для NuGet, npm, Maven, Python и образов контейнеров).

Организации и проекты

Иерархия Azure DevOps начинается с организации — контейнера верхнего уровня, связанного с Вашим клиентом Azure AD и обычно названного в честь Вашей компании. В организации Вы создаёте проекты, каждый из которых представляет программный продукт или команду. Каждый проект получает собственные Boards, Repos, Pipelines, Test Plans и Artifacts. Управление доступом, выставление счетов и параметры настраиваются на уровне организации, но для каждого проекта их можно переопределить.

# Create an Azure DevOps project via CLI
# First install the Azure DevOps extension
az extension add --name azure-devops

# Configure defaults
az devops configure --defaults organization=https://dev.azure.com/myorg

# Create a new project
az devops project create \
  --name MyProject \
  --description 'E-commerce platform' \
  --visibility private \
  --process Agile

Azure Boards: планирование по методологии Agile

Azure Boards поддерживает три шаблона процессов: Basic (простые проблемы и задачи), Agile (эпики, функции, пользовательские истории, задачи и ошибки) и Scrum (эпики, функции, элементы невыполненного списка продукта, задачи и ошибки). Рабочие элементы проходят через настраиваемые состояния. Доска Канбан визуализирует работу в процессе; невыполненные списки спринтов помогают планировать ёмкость; невыполненные списки определяют приоритет всей ещё не начатой работы. Связывайте рабочие элементы с фиксациями изменений, запросами на включение изменений и тестовыми случаями для полной прослеживаемости.

# Create a work item (User Story) via CLI
az boards work-item create \
  --title 'Add payment processing' \
  --type 'User Story' \
  --description 'As a customer I want to pay by credit card' \
  --assigned-to developer@contoso.com \
  --project MyProject

# List open work items
az boards work-item list \
  --project MyProject \
  --query "[?fields.\"System.State\"=='Active']"

Azure Repos: управление исходным кодом

Azure Repos предоставляет неограниченное количество частных репозиториев Git с политиками ветвей, рабочими процессами запросов на включение изменений и инструментами проверки кода. Политики ветвей обеспечивают контрольные точки качества в защищённых ветвях: перед слиянием требуют минимального числа проверяющих, успешной проверки сборки, связанных рабочих элементов и разрешения комментариев. Каждый репозиторий напрямую интегрируется с Azure Pipelines, автоматически запуская сборки и развёртывания при отправке изменений в ветвь или создании запроса на включение изменений.

# Clone an Azure Repos Git repository
git clone https://myorg@dev.azure.com/myorg/MyProject/_git/MyRepo

# Set branch policies via CLI
az repos policy required-reviewer create \
  --branch main \
  --branch-match-type exact \
  --project MyProject \
  --repository-id <repo-id> \
  --blocking true \
  --enabled true \
  --minimum-approver-count 2 \
  --allow-downvotes false

Azure Pipelines: автоматизация CI/CD

Azure Pipelines — это служба CI/CD, которая собирает, тестирует и развёртывает приложения, написанные на любом языке, на любой платформе — Azure, AWS, GCP или в локальной среде. Конвейеры определяются в файлах YAML, хранящихся вместе с кодом в репозитории. К основным понятиям относятся этапы (логические фазы, например Build, Test и Deploy), задания (единицы параллельного выполнения) и шаги (отдельные задачи). Azure Pipelines предоставляет 1800 бесплатных минут сборки в месяц для проектов с открытым исходным кодом.

# azure-pipelines.yml (minimal CI pipeline)
trigger:
  branches:
    include:
    - main

pool:
  vmImage: ubuntu-latest

stages:
- stage: Build
  jobs:
  - job: BuildJob
    steps:
    - task: NodeTool@0
      inputs:
        versionSpec: '18.x'
    - script: npm install && npm run build
      displayName: 'Install and Build'
    - script: npm test
      displayName: 'Run unit tests'

Azure Artifacts: управление пакетами

Azure Artifacts размещает каналы версионированных пакетов для NuGet (.NET), npm (Node.js), Maven (Java), pip (Python) и универсальных пакетов (произвольные двоичные файлы). Делитесь внутренними библиотеками между проектами или командами, не публикуя их в общедоступных реестрах. Вышестоящие источники проксируют общедоступные реестры (npmjs.com, nuget.org) через Ваш канал, предоставляя единую конечную точку для всех пакетов и возможность проверять и кэшировать зависимости.

# Publish an npm package to Azure Artifacts
npm install -g vsts-npm-auth
vsts-npm-auth -config .npmrc

# .npmrc file:
# registry=https://pkgs.dev.azure.com/myorg/MyProject/_packaging/MyFeed/npm/registry/

# Publish
npm publish --registry https://pkgs.dev.azure.com/myorg/MyProject/_packaging/MyFeed/npm/registry/

Агенты конвейеров: Microsoft или собственные

Конвейеры выполняются на агентах — виртуальных машинах или контейнерах, которые запускают задания конвейеров. Агенты, размещённые Microsoft, — это полностью управляемые предварительно настроенные виртуальные машины (Ubuntu, Windows, macOS), предоставляемые Microsoft; настройка не требуется. Собственные агенты работают в Вашей инфраструктуре (локально или на виртуальных машинах Azure), предоставляя Вам контроль над окружением, предустановленными инструментами и доступом к частным сетям. Используйте собственные агенты, если сборкам требуется доступ к VNet, специализированному оборудованию или более быстрый запуск, чем могут обеспечить облачные виртуальные машины.

# Register a self-hosted agent on a Linux VM
# 1. Download the agent package
curl -O https://vstsagentpackage.azureedge.net/agent/3.x/vsts-agent-linux-x64-3.x.x.tar.gz
mkdir myagent && tar xzf vsts-agent-linux-x64-3.x.x.tar.gz -C myagent && cd myagent

# 2. Configure the agent
./config.sh --url https://dev.azure.com/myorg --auth pat --token <PAT>

# 3. Run as a service
sudo ./svc.sh install && sudo ./svc.sh start

Среды и утверждения

Среды в Azure Pipelines представляют целевые объекты развертывания (разработка, промежуточная среда, рабочая среда) и отслеживают историю развертываний. К средам можно привязать утверждения и контрольные условия — для развертывания в рабочую среду требуется ручное подтверждение менеджера выпуска. Другие проверки включают ограничения по рабочим часам (развертывать можно только с 09:00 до 17:00), таймеры ожидания и проверки оповещений Azure Monitor (не выполнять развертывание при наличии активных критических оповещений). Это обеспечивает командам контроль над развертываниями в рабочую среду с высоким риском.

# YAML: deployment job targeting an environment with approval
- stage: DeployProd
  jobs:
  - deployment: DeployToProduction
    environment:
      name: Production       # Requires manual approval in Azure DevOps portal
      resourceType: VirtualMachine
    strategy:
      runOnce:
        deploy:
          steps:
          - task: AzureWebApp@1
            inputs:
              appName: myapp-prod
              package: '$(Pipeline.Workspace)/drop/app.zip'

Подключения к службам

Подключения к службам хранят аутентифицированные подключения к внешним службам (подпискам Azure, GitHub, Docker Hub, SonarQube и кластерам Kubernetes), чтобы конвейеры могли использовать их без встраивания учетных данных в YAML. Подключение к службе Azure Resource Manager использует субъект-службу или управляемое удостоверение для развертывания ресурсов Azure. Все учетные данные шифруются и ограничиваются областью проекта или конвейера, что предотвращает раскрытие учетных данных в журналах конвейера.

# Create an Azure Resource Manager service connection via CLI
az devops service-endpoint azurerm create \
  --azure-rm-service-principal-id '<AppId>' \
  --azure-rm-subscription-id '<SubId>' \
  --azure-rm-subscription-name 'MySubscription' \
  --azure-rm-tenant-id '<TenantId>' \
  --name 'AzureProductionSC' \
  --project MyProject

# Use in pipeline YAML
# - task: AzureCLI@2
#   inputs:
#     azureSubscription: 'AzureProductionSC'
#     scriptType: bash
#     scriptLocation: inlineScript

Azure DevOps и GitHub

Microsoft владеет и Azure DevOps, и GitHub, и обе платформы поддерживают CI/CD. Azure DevOps предпочитают на предприятиях, активно использующих инструменты Microsoft и нуждающихся в Azure Boards, Test Plans или Artifacts. GitHub предпочитают для проектов с открытым исходным кодом, рабочих процессов, ориентированных на разработчиков, и случаев, когда команды уже используют репозитории GitHub. GitHub Actions — это платформа CI/CD GitHub. Azure Pipelines интегрируется и с Azure Repos, и с GitHub — репозитории GitHub можно использовать вместе с Azure Boards и Artifacts.

Быстрая проверка

Проверьте свое понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.

Итоги урока

В этом уроке Вы узнали, что Azure DevOps предоставляет пять интегрированных служб для планирования (Boards), управления исходным кодом (Repos), CI/CD (Pipelines), тестирования (Test Plans) и управления пакетами (Artifacts); среды с утверждениями ограничивают развертывания с высоким риском, а подключения к службам безопасно хранят учетные данные внешних служб для использования конвейерами. Далее мы рассмотрим создание конвейера CI с помощью Azure Pipelines.

Часто задаваемые вопросы

Урок «Обзор Azure DevOps Services» бесплатный?

Да — полный текст урока «Обзор Azure DevOps Services» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.

Чему я научусь в уроке «Обзор Azure DevOps Services»?

Познакомьтесь с пятью службами Azure DevOps, создайте организацию и проект и подключите репозиторий кода, чтобы начать совместно отслеживать рабочие элементы и фиксации изменений. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Azure Fundamentals?

Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Обзор Azure DevOps Services»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Azure Fundamentals?

Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Обзор Azure DevOps Services
  2. Создание конвейера непрерывной интеграции с Azure Pipelines
  3. Непрерывное развертывание в Azure
  4. GitHub Actions в Azure
← Назад к Azure Fundamentals