Что такое Azure Artifacts?
В этом уроке вы узнаете, как использовать Артефакты Azure для безопасного создания пакетов, которые могут использовать приложения, и управления ими.
Снова обсудите с командой, когда они решают, является ли Azure Artifacts подходящим способом размещения пакета .NET.
Мара: Мне кажется, что для нас было бы логично разместить новый пакет Models в Артефактах Azure. Мы все уже часть организации Microsoft Azure DevOps, поэтому проверка подлинности будет проще, чем попытка настроить ее в другом диспетчере пакетов.
Энди: Я изучил это перед встречей, и это кажется мне понятным. Я согласен с Марой.
Амита: Что такое Артефакты Azure?
Энди: Артефакты Azure — это репозиторий в организации Azure DevOps, где можно управлять зависимостями для базы кода. Сервис Azure Artifacts позволяет сохранять ваши артефакты и двоичные файлы. Он предоставляет контейнер, называемый фидом, для групп зависимостей. Разработчики, имеющие доступ к фиду, могут легко потреблять или публиковать пакеты.
Как создать пакет и использовать его в конвейере?
Тим: Поэтому, если я понимаю правильно, код приложения использует пакеты из NuGet уже. Мы создадим собственный пакет и разместим его в Azure Artifacts. Можете ли вы представить части и пояснить, как они будут работать вместе? Мне трудно представить себе весь процесс.
Энди: Уверенный. Давайте рассмотрим процесс создания пакета и его использования в конвейере Azure DevOps.
Энди переходит на доску.
Создание пакета
Сначала создайте проект в Azure Artifacts.
Мы можем создать проект из Azure DevOps.
Затем создайте конвейер в Azure Pipelines, который подключается к репозиторию GitHub для кода пакета. Процесс собирает код, упаковывает его и отправляет пакет программного обеспечения в Артефакты Azure.
Необходимо обновить приложение, которое использует этот пакет, чтобы указать на созданный веб-канал Артефактов Azure.
После этого обновите конвейер, создающий наше приложение. Это обновление позволяет использовать наш канал артефактов Azure для извлечения новой зависимости пакета и сборки в обычном режиме.
Обновление пакета
Тим: Что делать, если кто-то обновляет пакет?
Энди: При обновлении программного пакета с новой функцией или исправлением ошибок и выполнении тестов, чтобы убедиться, что он работает правильно, повышайте номер версии пакета. Затем зафиксируйте изменение. Конвейер пакетов видит коммит и создает новый артефакт в Azure Artifacts с новым номером версии. Не волнуйтесь, старый пакет с более низким номером версии по-прежнему существует для приложений, которые зависят от этой версии. Поэтому обычно не следует скрывать пакет.
Наше приложение может использовать эту более новую версию пакета. В этом случае мы обновим приложение, чтобы ссылаться на более новую версию и запускать тесты локально, чтобы убедиться, что эта новая версия работает с нашим приложением. Когда мы удостоверимся, что всё работает, мы отправляем изменения в приложение в поточную линию. Он создает новую версию зависимости пакета.
Амита: Это звучит как хороший план, и это поможет другой команде тоже. Он также не будет допускать смещения кода, как вы выразились. Это также поможет QA.
Включение стратегии управления версиями в конвейер сборки
При использовании конвейера сборки пакеты нуждаются в версиях, прежде чем их можно будет использовать и протестировать. Однако только после тестирования пакета можно знать его качество. Так как версии пакетов никогда не должны быть изменены, становится сложно выбрать определенную версию заранее.
Артефакты Azure связывают уровень качества с каждым пакетом в своих каналах и различают предварительные и выпускные версии. Артефакты Azure предоставляют различные представления списка пакетов и их версий, разделяющие их по уровню качества. Этот подход хорошо подходит для семантического управления версиями, что полезно для прогнозирования намерения конкретной версии. Azure Artifacts также использует дескриптор для включения дополнительных метаданных из канала Azure Artifacts. Частое использование представлений заключается в совместном использовании версий пакетов, которые были протестированы, проверены или развернуты, удерживая пакеты, которые находятся на этапе разработки и не готовы к общедоступному использованию.
Ленты в Azure Artifacts имеют три разных вида по умолчанию. Эти представления добавляются в момент создания нового веб-канала. Три представления:
- Выпуск: представление @release содержит все пакеты, которые считаются официальными выпусками.
- Предварительная версия: представление @prerelease содержит все пакеты с меткой в номере версии.
- Local: представление @local содержит все релизные и предварительные пакеты и пакеты, скачанные из внешних источников.
Вы можете использовать представления, чтобы помочь потребителям пакетов-лент фильтровать между выпущенными и не выпущенными версиями пакетов. Представления позволяют потребителю принимать сознательное решение выбирать из выпущенных пакетов или выбирать предварительные версии определенного уровня качества.
Безопасность пакетов в Azure Artifacts
Обеспечение безопасности пакетов так же важно, как обеспечение безопасности остальной части кода. Одним из аспектов безопасности пакетов является защита доступа к источникам пакетов. Фид в Azure Artifacts — это место хранения пакетов. Настройка разрешений на канал позволяет делиться вашими пакетами с любым количеством людей, в зависимости от вашего сценария.
Разрешения веб-канала
Фиды имеют четыре уровня доступа: владельцы, участники, сотрудники и читатели. Каждый уровень доступа имеет определенный набор разрешений. Например, владельцы могут добавлять к любому уровню доступа любой вид идентичности — будь то отдельные лица, команды или группы. По умолчанию служба сборки коллекции проектов является сотрудником, а ваша команда проекта — читателем.
Настройка конвейера для доступа к оценкам безопасности и лицензий
Существует несколько средств, доступных от сторонних производителей, которые помогут вам оценить рейтинг безопасности и лицензий используемых пакетов программного обеспечения.
Некоторые из этих средств сканируют пакеты, когда они включаются в конвейер сборки или CD. Во время процесса сборки средство сканирует пакеты и дает мгновенные отзывы. В процессе CD средство использует артефакты сборки и выполняет сканирование. Два примера таких инструментов: Mend Bolt и Black Duck. С помощью Azure DevOps вы используете задачи сборки для включения сканирования в конвейер.