Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Непрерывная интеграция и непрерывная поставка (CI/CD) — это процесс разработки и поставки программного обеспечения с короткими, частыми циклами посредством конвейеров автоматизации. CI/CD распространен в разработке программного обеспечения и становится всё более необходимым в области инженерии данных и науки о данных. Автоматив сборку, тестирование и развертывание кода, команды разработчиков обеспечивают выпуски более надежно, чем с помощью ручных процессов.
Databricks предоставляет средства для разработки конвейеров CI/CD, которые поддерживают подходы, которые могут немного отличаться от организации от организации из-за уникальных аспектов жизненного цикла разработки программного обеспечения каждой организации. Эта страница содержит сведения о доступных средствах для конвейеров CI/CD в Databricks. Дополнительные сведения о рекомендациях и лучших практиках по CI/CD см. в разделе Лучшие практики и рекомендуемые рабочие процессы CI/CD в Databricks.
Обзор проектов CI/CD для проектов машинного обучения в Azure Databricks см. в статье О том, как Databricks поддерживает CI/CD для машинного обучения?.
Поток высокого уровня
Обычно конвейер CI/CD в Azure Databricks выглядит следующим образом:
-
Версия. Сохраните код и записные книжки Azure Databricks в системе управления версиями, например Git. Это позволяет отслеживать изменения с течением времени и сотрудничать с другими участниками команды.
- Отдельные пользователи используют папку Git для создания и тестирования изменений перед фиксацией их в репозиторий Git. См. CI/CD с каталогами Databricks Git.
- При необходимости настройте параметры пакета Git.
-
Код. Разработка тестов кода и модульных тестов в записной книжке Azure Databricks в рабочей области или локально с помощью интегрированной среды разработки.
- Используйте редактор Конвейеров Lakeflow для разработки конвейеров в рабочей области.
- Используйте расширение Databricks Visual Studio Code для разработки и развертывания локальных изменений в рабочих областях Azure Databricks.
-
Сборка. Используйте параметры пакетов ресурсов Databricks для автоматического создания определенных артефактов во время развертывания.
- Настройте сопоставление артефактов конфигурации пакета.
- Pylint, расширенный с использованием плагина Databricks Labs pylint, помогает соблюдать стандарты кодирования и обнаруживать ошибки в записных книжках и коде приложений.
-
Развертывание. Развертывание изменений в рабочей области Azure Databricks с помощью пакетов ресурсов Databricks с такими инструментами, как Azure DevOps, GitHub Actions или Jenkins.
- Настройте развертывания с помощью режимов развертывания пакета.
- Дополнительные сведения об использовании Azure DevOps и Databricks см. в статье Об непрерывной интеграции и доставке в Azure Databricks с помощью Azure DevOps.
- Примеры Databricks GitHub Actions см. в разделе GitHub Actions.
-
Тест. Разработка и запуск автоматических тестов для проверки изменений кода.
- Используйте инструменты, такие как pytest, чтобы протестировать интеграции.
-
Запуск. Используйте интерфейс командной строки Databricks с пакетами ресурсов Databricks для автоматизации выполнения в рабочих областях Azure Databricks.
- Запустите ресурсы пакета, используя databricks bundle run.
- Мониторинг. Мониторинг производительности рабочих нагрузок кода и рабочей среды в Azure Databricks с помощью таких средств, как мониторинг заданий. Это помогает выявлять и устранять любые проблемы, возникающие в рабочей среде.
Доступные средства
Следующие средства поддерживают основные принципы CI/CD: создавайте версии всех файлов и унифицируйте управление ресурсами, определите инфраструктуру как код, изолируйте среды, автоматизируйте тестирование и мониторинг, а также автоматизацию откатов.
| Площадь | Используйте эти инструменты, когда вы хотите… |
|---|---|
| Пакеты активов Databricks | Программно определяйте, развертывайте и запускайте ресурсы, такие как задания Lakeflow, декларативные конвейеры Lakeflow Spark и стеки MLOps, используя передовые методы и потоки CI/CD. |
| Провайдер Databricks для Terraform | Предоставление и управление рабочими областями и инфраструктурой Databricks с помощью Terraform. |
| Непрерывная интеграция и развертывание в Azure Databricks с помощью Azure DevOps | Разработка конвейера CI/CD для Azure Databricks, использующего Azure DevOps. |
| Проверка подлинности с помощью Azure DevOps в 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. |
| Проверка подлинности доступа к Azure Databricks с помощью федерации токенов OAuth | Используйте федерацию идентификационных данных рабочих нагрузок для аутентификации CI/CD, которая устраняет необходимость использования секретов Databricks, делая его наиболее безопасным способом для аутентификации в Databricks. |
Пакеты активов Databricks
Наборы активов Databricks — это рекомендуемый подход к CI/CD в Databricks. Используйте пакеты ресурсов Databricks, чтобы описать ресурсы Databricks, такие как задания и конвейеры в качестве исходных файлов, и объединить их вместе с другими ресурсами, чтобы обеспечить комплексное определение развертываемого проекта. Эти пакеты файлов можно управлять источником, и вы можете использовать внешнюю автоматизацию CI/CD, например Github Actions для активации развертываний.
Пакеты включают множество функций, таких как пользовательские шаблоны для обеспечения согласованности и рекомендаций по всей организации, а также комплексной поддержки развертывания файлов кода и конфигурации для многих ресурсов Databricks. Для разработки пакета требуются некоторые знания о синтаксисе конфигурации пакета.
Для получения рекомендаций по использованию пакетов в CI/CD см. Лучшие практики и рекомендуемые рабочие процессы CI/CD на Databricks.
Другие инструменты для контроля версий
В качестве альтернативы полному применению CI/CD с наборами активов Databricks, Databricks предлагает только управление версиями и развертывание файлов кода и записных книжек.
Папка Git: папки Git можно использовать для отражения состояния удаленного репозитория Git. Вы можете создать папку Git для рабочей среды для управления исходными файлами и записными книжками. Затем вручную извлеките папку Git в последнее состояние или используйте внешние средства CI/CD, такие как GitHub Actions, чтобы извлечь папку Git при слиянии. Используйте этот подход, если у вас нет доступа к внешним конвейерам CI/CD.
Этот подход подходит для внешних оркестраторов, таких как Airflow, но обратите внимание, что только файлы кода, такие как блокноты и черновики информационных панелей, находятся в системе управления версиями. Конфигурации заданий или конвейеров, которые используют активы в папке Git, и конфигурации для публикации панелей мониторинга не находятся в системе управления версиями.
Git с заданиями: Git с заданиями позволяет настроить некоторые типы заданий для использования удаленного репозитория Git в качестве источника для файлов кода. При начале выполнения задания Databricks делает моментальный снимок репозитория и выполняет все задачи на этой версии. Этот подход поддерживает только ограниченные рабочие задачи, а только файлы кода (записные книжки и другие файлы) управляются системой контроля версий. Конфигурации заданий, такие как последовательности задач, параметры вычислений и расписания, не управляются источником, что делает этот подход менее подходящим для развертываний в нескольких средах, между рабочими областями.