Microsoft AZ-400: Управление пакетами и артефактами — Руководство по подготовке

Часть Microsoft DevOps Engineer Expert AZ-400 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Microsoft, или пройдите тесты на время на ExamRoll.io.

Обзор

Управление пакетами — это основа для воспроизводимых сборок, надежных развертываний и безопасных цепочек поставок в Azure DevOps. Azure Artifacts централизует хранение пакетов и управление ими в различных экосистемах — NuGet, npm, Maven, Gradle и универсальные пакеты — обеспечивая при этом кеширование из вышестоящих публичных реестров и предоставляя гранулярный контроль для продвижения, хранения и разрешений. В сочетании с автоматизацией семантического версионирования и инструментами для обеспечения безопасности и соответствия требованиям, это позволяет стандартизировать процессы создания, обнаружения, утверждения и использования внутренних и внешних зависимостей в любом масштабе.

Основные концепции Azure Artifacts

Веб-канал (feed) — это единица хранения и контроля доступа для пакетов. Команды обычно организуют веб-каналы по продуктам, платформам или границам доверия (например, один веб-канал для всех публичных OSS-зависимостей через вышестоящие источники, один для общих внутренних библиотек и по одному на каждый продукт). Веб-каналы поддерживают несколько типов пакетов, каждый со своими клиентскими инструментами.

Представления (views) реализуют модель поэтапного продвижения в рамках одного веб-канала:

Вышестоящие источники (upstream sources) подключают веб-канал к публичным реестрам (NuGet.org, npmjs.com, Maven Central). Когда они включены, разработчики разрешают публичные зависимости через ваш веб-канал. Azure Artifacts прозрачно проксирует и кеширует точные версии, которые используются, повышая надежность, обеспечивая работу в изолированных сценариях и позволяя позже «заморозить» поставки, отключив загрузку новых версий из вышестоящих источников. Вы можете определять, какие вышестоящие источники включены для каждого веб-канала в соответствии с политиками.

Политики хранения (retention) применяются для снижения затрат на хранение, сохраняя при этом только важное. Определите политики для хранения последних N версий каждого пакета, сохранения только версий, продвинутых в представление release, и автоматического удаления старых предварительных версий. Закрепляйте (pin) определенные версии, чтобы исключить их из очистки (например, те, что встроены в долгоживущую ветку продукта). Согласуйте окна хранения с требованиями аудита и отката, чтобы сбалансировать отслеживаемость и затраты на хранение.

Разрешения веб-канала следуют принципу наименьших привилегий:

Управление экосистемами пакетов

NuGet (dotnet/C#)

undefined

или

undefined

, затем

undefined

или

undefined

в эндпоинт вашего веб-канала. Используйте задачи NuGet в Azure Pipelines и продвигайте в представления prerelease/release при прохождении контроля качества.

undefined

, указав URI источника веб-канала (опционально с привязкой к представлению). Восстанавливайте через

undefined

или задачу NuGet Restore.

npm (JavaScript/TypeScript)

undefined

. Области естественным образом сопоставляются с разрешениями веб-канала и позволяют ограничивать использование между проектами.

undefined

,

undefined

и опционально

undefined

для конфигураций с несколькими реестрами. В CI используйте задачу npm Authenticate для внедрения временного токена аутентификации. Для локальной разработки —

undefined

с PAT.

Maven и Gradle (Java/Kotlin)

undefined

в

undefined

, указывающий на ваш веб-канал, и запись server в

undefined

с учетными данными (PAT или service connection). Используйте

undefined

или задачу Maven в Azure Pipelines.

undefined

и настройте

undefined

, затем опубликуйте с помощью

undefined

.

undefined

в Gradle или

undefined

в

undefined

для Maven. Используйте

undefined

для сборок в разработке и продвигайте релизные версии в представление release для стабильных потребителей.

Универсальные пакеты (бинарные данные, скрипты, модели)

undefined

). Аутентифицируйтесь через service connection Azure DevOps или вошедшего в систему пользователя.

Контроль безопасности и соответствия требованиям

Сканирование на уязвимости должно выполняться при коммите и во время сборки. Интегрируйте инструменты, которые выявляют зависимости с известными уязвимостями и предоставляют рекомендации по их обновлению. Во многих средах Azure DevOps SonarQube используется как часть стратегии quality gate для выявления проблем, включая правила, обнаруживающие риски в зависимостях; его можно дополнить специализированными SCA-инструментами (например, Snyk, Mend/WhiteSource или Black Duck) для более полного охвата CVE в различных экосистемах. Для .NET дополнительные сигналы могут предоставить команды dotnet list package --vulnerable и для npm — npm audit; для Java в качестве шага сборки можно добавить OWASP Dependency-Check.

Соблюдение лицензионных требований обеспечивается путем сканирования SBOM или манифестов на соответствие утвержденному списку разрешенных лицензий. Black Duck часто добавляют в Azure Pipelines для блокировки сборок при обнаружении запрещенных лицензий. Храните отчеты о сканировании как артефакты конвейера и прикрепляйте их к релизам для возможности аудита.

Разрешенные/заблокированные пакеты лучше всего реализовывать через политики, а не через разовые исключения:

Аудит и управление выигрывают от использования централизованных фидов с кэшированием из upstream-источников: вы получаете единую точку контроля для входящих пакетов, неизменяемую историю и согласованное происхождение для генерации SBOM.

Автоматизация версионирования и экономика хранения

Семантическое версионирование проще всего поддерживать с помощью автоматизации:

Управление хранением и затратами требует проактивной политики:

Особенности upstream-источников:

### Сценарий практической задачи

Компании Adobe необходимо стандартизировать управление пакетами в нескольких облаках и для разных языков, одновременно снижая количество сбоев из-за нестабильности публичных реестров и обеспечивая соблюдение политик лицензирования. Команды публикуют внутренние артефакты NuGet, npm и Maven, а также используют общие кросс-языковые инструменты CLI.

  1. Создание централизованных каналов и вышестоящих источников (upstreams)
  1. Настройка потребления клиентами через представления (views)
  1. Внедрение публикации с семантическим версионированием
  1. Обеспечение безопасности аутентифицированных каналов и удобства для разработчиков
  1. Применение политик по уязвимостям и лицензированию
  1. Контроль входящего трафика и его заморозка при необходимости
  1. Применение политик хранения и закрепления (pinning)
  1. Делегирование доступа по принципу наименьших привилегий
  1. Использование универсальных пакетов (Universal packages) для кросс-языковых инструментов
  1. Измерение и итеративное улучшение

Мониторинг · Все домены · Agile-планирование и управление работой

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Microsoft →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт