Поделиться через


CI/CD в Azure Databricks

Непрерывная интеграция и непрерывная поставка (CI/CD) — это процесс разработки и поставки программного обеспечения с короткими, частыми циклами посредством конвейеров автоматизации. CI/CD распространен в разработке программного обеспечения и становится все более необходимым в инженерии данных и науке о данных. Автоматив сборку, тестирование и развертывание кода, команды разработчиков могут предоставлять выпуски более надежно, чем с помощью ручных процессов.

Общие средства доступны для разработки конвейеров CI/CD, но реализации и подходы от организации к организации могут немного отличаться из-за уникальных аспектов жизненного цикла разработки программного обеспечения каждой организации. Эта страница содержит сведения о следующих подходах к CI/CD в Databricks, а также о плюсах и минусах для каждого подхода:

Обзор проектов CI/CD для проектов машинного обучения в Azure Databricks см. в статье О том, как Databricks поддерживает CI/CD для машинного обучения?.

Пакеты активов Databricks (рекомендуется)

Наборы активов Databricks — это рекомендуемый подход к CI/CD в Databricks. Используйте пакеты ресурсов Databricks, чтобы описать ресурсы Databricks, такие как задания и конвейеры в качестве исходных файлов, и объединить их вместе с другими ресурсами, чтобы обеспечить комплексное определение развертываемого проекта. Эти пакеты файлов можно управлять источником, и вы можете использовать внешнюю автоматизацию CI/CD, например Github Actions для активации развертываний.

Плюсы Минусы
  • Включает в себя множество функций, таких как пользовательские шаблоны пакетов, для обеспечения согласованности и рекомендаций по всей организации.
  • Полная поддержка развертывания файлов кода и конфигурации для многих ресурсов Databricks.
  • Для создания пакета требуется некоторые знания о синтаксисе конфигурации пакета .
  • Не гарантируется, что папка развертывания пакета соответствует фиксации на удаленном Git-репозитории. Папка рабочего пакета может быть случайно изменена в рабочей области.
  • Для активации развертывания при слиянии требуются внешние конвейеры CI/CD, такие как GitHub Actions.

Рабочая папка Git

Если вы еще не готовы к внедрению пакетов ресурсов Databricks, но хотите, чтобы ваш код был управляемым источником, можно настроить рабочую папку Git. Затем используйте внешние средства CI/CD, такие как GitHub Actions, чтобы извлечь папку Git при слиянии или если у вас нет доступа к внешним конвейерам CI/CD, создайте запланированное задание для извлечения в папку Git в рабочей области.

Плюсы Минусы
  • Поддерживает упрощенное, простое развертывание для команд, которые не приняли пакеты ресурсов Databricks.
  • Поддерживает CI/CD для рабочих пространств, использующих внешние оркестраторы, такие как Airflow.
  • Рабочая папка Git может быть случайно изменена.
  • Только файлы кода, такие как записные книжки и черновики панелей мониторинга, находятся в системе контроля версий. Конфигурации заданий, выполняющих ресурсы в папке Git и конфигурациях для панелей мониторинга публикации, не находятся в системе управления версиями.
  • Требуется внешние конвейеры CI/CD, такие как действия Github, для активации развертываний при слиянии.

Git с заданиями

Если для заданий требуется только CI/CD, Git с заданиями позволяет настроить некоторые типы заданий для использования удаленного репозитория Git в качестве источника. При запуске задания Databricks создаёт моментальный снимок удаленного репозитория и гарантирует, что всё задание выполняется на той же версии кода.

Плюсы Минусы
  • Легкий и может быть полностью создан в пользовательском интерфейсе.
  • Для выполнения последнего кода не требуется внешний конвейер CI/CD, например GitHub Actions.
  • Гарантирует, что рабочие задания выполняют удаленный код без локальных изменений, предотвращая непреднамеренные изменения в рабочем задании.
  • Поддерживает только ограниченные рабочие задачи.
  • Только файлы кода, такие как записные книжки и другие файлы, управляются системой контроля версий. Конфигурации заданий, такие как последовательности задач, вычисления и расписания, не управляются источником, что делает этот подход менее подходящим для развертываний в нескольких средах.
  • Требуется подключение Git во время выполнения. Задание завершится ошибкой, если подключение к Git прервано.

Другие рекомендации CI/CD

Независимо от выбранного подхода CI/CD используйте федерацию удостоверений рабочей нагрузки для проверки подлинности CI/CD. Федерация удостоверений рабочей нагрузки устраняет необходимость секретов Databricks, что делает его наиболее безопасным способом проверки подлинности в Databricks. См. сведения о проверке подлинности доступа к Azure Databricks с помощью федерации токенов OAuth.

Databricks также рекомендует использовать поставщик Databricks Terraform для управления рабочими областями Databricks и связанной облачной инфраструктурой.

Для других рекомендаций по CI/CD см. Лучшие практики и рекомендуемые рабочие процессы CI/CD на Databricks.

Дополнительные сведения об управлении жизненным циклом ресурсов и данных Azure Databricks см. в следующей документации по средствам CI/CD и конвейера данных.

Площадь Используйте эти инструменты, когда вы хотите…
Пакеты активов Databricks Программное определение, развертывание и запуск заданий Lakeflow, Декларативных конвейеров Lakeflow и MLOps Stacks с помощью рекомендаций и рабочих процессов CI/CD.
Провайдер Databricks для Terraform Предоставление и управление рабочими областями и инфраструктурой Databricks с помощью Terraform.
Рабочие процессы CI/CD с Git и папками Databricks Git Используйте папки GitHub и Databricks Git для управления версиями и рабочих процессов CI/CD.
Проверка подлинности с помощью Azure DevOps в Azure Databricks Проверка подлинности с помощью Azure DevOps.
Использование учетной записи службы Microsoft Entra для автоматизации с папками Git в Azure Databricks Используйте сервис-принципал MS Entra для аутентификации доступа к папкам Databricks Git.
Непрерывная интеграция и развертывание в Azure Databricks с помощью Azure DevOps Разработка конвейера CI/CD для Azure Databricks, использующего Azure DevOps.
Действия GitHub Включите действие GitHub, разработанное для Azure Databricks, в рабочий процесс CI/CD.
CI/CD с Jenkins на Azure Databricks Разработать конвейер CI/CD для Azure Databricks с использованием Jenkins.
Оркестрация заданий Lakeflow с Apache Airflow Администрировать и планировать конвейеры данных, использующие Apache Airflow.
Сервисные принципалы для CI/CD С системами CI/CD используйте служебные учетные записи вместо пользователей.