Partager via


CI/CD avec les dossiers Git de Databricks

Utilisez les dossiers Git Databricks dans vos flux CI/CD pour conserver le travail dans le contrôle de code source et l’intégrer à vos flux de travail d’ingénierie des données. Pour une vue d’ensemble plus large de CI/CD avec Azure Databricks, consultez CI/CD sur Azure Databricks.

Flux d’utilisation

L'automatisation des dossiers Git se concentre sur la configuration initiale des dossiers et sur l’API REST Azure Databricks Repos pour automatiser les opérations Git depuis des tâches Azure Databricks. Avant de créer l’automatisation :

  • Passez en revue les référentiels Git distants que vous utiliserez.
  • Choisissez les dépôts et branches appropriés pour chaque étape (développement, intégration, préproduction, production).

Il existe trois flux principaux :

  • Flux d’administration : un administrateur d’espace de travail Azure Databricks crée des dossiers de niveau supérieur pour héberger des dossiers Git de production. L’administrateur clone un référentiel et une branche lors de la création de chaque dossier et peut les nommer à des fins (par exemple, « Production », « Test » ou « Préproduction »). Consultez Créer un dossier Git de production.
  • Flux utilisateur : un utilisateur crée un dossier Git depuis /Workspace/Users/<email>/ un référentiel distant, travaille sur une branche à son nom spécifique, et pousse des commits vers le dépôt distant. Consultez Collaborer à l’aide de dossiers Git.
  • Flux de fusion : après avoir envoyé (push) à partir d’un dossier Git, les utilisateurs ouvrent des pull requests (PR). Lorsqu'une pull request est fusionnée, l'automatisation peut extraire et appliquer les modifications aux dossiers Git de production à l'aide de l'API Azure Databricks Repos.

Collaborer à l’aide de dossiers Git

Collaborez avec d’autres personnes en extrayant et en transmettant des modifications à partir de l’interface utilisateur Azure Databricks. Un modèle courant consiste à utiliser une branche de développement ou de fonctionnalité pour agréger le travail.

Pour collaborer sur une branche de fonctionnalité :

  1. Clonez votre dépôt Git existant dans votre espace de travail Databricks.
  2. Dans l’interface utilisateur des dossiers Git, créez une branche de fonctionnalité à partir de la branche principale. Vous pouvez utiliser plusieurs branches de fonctionnalités en fonction des besoins.
  3. Modifiez les notebooks Azure Databricks et d’autres fichiers dans le dépôt.
  4. Validez et envoyez vos modifications au référentiel distant.
  5. D’autres contributeurs peuvent cloner le référentiel dans leur propre dossier utilisateur. Ils travaillent sur une branche, modifient les blocs-notes et les fichiers dans le dossier Git, puis valident et envoyent (push ) à distance.
  6. Lorsque vous êtes prêt, créez une pull request sur votre fournisseur Git, passez-la en revue avec votre équipe et fusionnez-la dans la branche de déploiement.

Remarque

Databricks recommande que chaque développeur travaille sur sa propre branche. Pour résoudre les conflits de fusion, consultez Résoudre les conflits de fusion.

Choisir une approche CI/CD

Databricks recommande des bundles de ressources Databricks pour empaqueter et déployer des flux de travail CI/CD. Si vous préférez déployer uniquement du code dans l’espace de travail, vous pouvez utiliser un dossier Git de production à la place. Pour obtenir une vue d’ensemble plus large de CI/CD, consultez CI/CD sur Azure Databricks.

Conseil / Astuce

Définissez des ressources telles que des travaux et des pipelines dans le code source à l'aide de lots, puis créez, déployez et gérez-les dans les dossiers Git de l’espace de travail. Consultez Collaborer sur les offres groupées dans l’espace de travail.

Créer un dossier Git de production

Les dossiers Git de production sont différents des dossiers Git au niveau de l’utilisateur sous /Workspace/Users/. Les dossiers au niveau de l'utilisateur sont des copies locales où les utilisateurs développent et publient des modifications. Les dossiers Git de production sont créés par les administrateurs en dehors des dossiers utilisateur, contiennent des branches de déploiement et sont la source des flux de travail automatisés. Elles doivent être mises à jour uniquement de manière automatisée lorsque les pull requests sont fusionnées dans les branches de déploiement. Restreindre les dossiers Git de production à un accès en lecture seule pour la plupart des utilisateurs. Autorisez uniquement les administrateurs et les principaux de service Azure Databricks à les modifier.

Dossiers de production Git mappés à la branche principale sur un référentiel distant.

Pour créer un dossier Git de production :

  1. Choisissez le référentiel Git et la branche pour le déploiement.

  2. Créez ou utilisez un principal de service et configurez des informations d’identification Git afin qu’elle puisse accéder à ce référentiel.

  3. Créez un dossier Git pour le dépôt et la branche Azure Databricks dans un sous-dossier sous Espace de travail (par exemple, par projet, équipe ou étape).

  4. Sélectionnez le dossier, puis partagez (ou cliquez avec le bouton droit sur Partager (Autorisations) dans l’arborescence de l’espace de travail.

  5. Attribuer des niveaux d’autorisations :

    • Peut s’exécuter pour les utilisateurs de projet qui doivent exécuter des flux de travail.
    • Peut s’exécuter pour n’importe quel principal de service Azure Databricks qui exécute l’automatisation sur ce dossier.
    • Optionnellement, les utilisateurs de l’espace de travail peuvent activer 'Afficher' pour faciliter la découverte et le partage.

    Boîte de dialogue modale pour le dossier Git partagé.

  6. Cliquez sur Ajouter.

  7. Conservez le dossier Git de production synchronisé avec la branche distante à l’aide de l’une des options suivantes :

    • CI/CD externe : utilisez des outils tels que GitHub Actions pour extraire les derniers commits lorsqu'une pull request est fusionnée dans la branche de déploiement. Pour obtenir un exemple, consultez Exécuter un flux de travail CI/CD qui met à jour un dossier Git.
    • Travail planifié : si ci/CD externe n’est pas disponible, exécutez un travail planifié qui met à jour le dossier Git. Utilisez un bloc-notes simple qui s’exécute selon une planification :
    from databricks.sdk import WorkspaceClient
    w = WorkspaceClient()
    w.repos.update(w.workspace.get_status(path="<git-folder-workspace-full-path>").object_id, branch="<branch-name>")
    

Pour plus d’informations sur l’automatisation avec l’API Repos, consultez la documentation de l’API REST Databricks pour Repos.