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