Обзор 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 AgileAzure 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 falseAzure 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: inlineScriptAzure 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 — локальная установка не требуется.
Все уроки этого курса
- Обзор Azure DevOps Services
- Создание конвейера непрерывной интеграции с Azure Pipelines
- Непрерывное развертывание в Azure
- GitHub Actions в Azure