Partager via


CI/CD avec dossiers Git Databricks (Repos)

Les dossiers Git Databricks peuvent être utilisés dans vos flux CI/CD. En configurant les dossiers Git Databricks dans l’espace de travail, vous pouvez utiliser le contrôle de code source pour travailler dans les référentiels Git et les intégrer à vos flux de travail d’ingénierie des données. Pour obtenir une vue d’ensemble plus complète de CI/CD avec Azure Databricks, consultez CI/CD sur Azure Databricks.

Flux d’utilisation

La plupart du travail dans le développement d’automatisation pour les dossiers Git est dans la configuration initiale de vos dossiers et dans la compréhension de l’API REST Azure Databricks Repos que vous utilisez pour automatiser les opérations Git à partir de travaux Azure Databricks. Avant de commencer à créer votre automatisation et à configurer des dossiers, passez en revue les référentiels Git distants que vous allez incorporer dans vos flux d’automatisation et sélectionnez ceux qui conviennent aux différentes étapes de votre automatisation, notamment le développement, l’intégration, la préproduction et la production.

  • Flux d’administration : pour les flux de production, un administrateur d’espace de travail Azure Databricks configure des dossiers de niveau supérieur dans votre espace de travail pour héberger les dossiers git de production. L’administrateur clone un dépôt et une branche Git lors de leur création, et peut donner à ces dossiers des noms explicites tels que « Production », « Test » ou « Préproduction » qui correspondent à l’objectif des référentiels Git distants dans vos flux de développement. Pour plus d’informations, consultez le dossier Git de production.
  • Flux utilisateur : un utilisateur peut créer un dossier Git à l'emplacement /Workspace/Users/<email>/ en se basant sur un dépôt Git distant. Un utilisateur crée une branche locale qui lui est propre afin de travailler sur les modifications qu’il validera et enverra au référentiel distant. Pour plus d’informations sur la collaboration dans des dossiers Git spécifiques à l’utilisateur, consultez Collaborer à l’aide de dossiers Git.
  • Flux de fusion : les utilisateurs peuvent créer des pull requests (PRs) après avoir poussé à partir d’un dossier Git. Lorsque la demande de tirage (pull request) est fusionnée, l’automatisation peut extraire les changements dans les dossiers Git de production à l’aide de l’API Azure Databricks Repos.

Collaborer à l’aide de dossiers Git

Vous pouvez facilement collaborer avec d’autres utilisateurs à l’aide de dossiers Git, extraire des mises à jour et envoyer des modifications directement à partir de l’interface utilisateur Azure Databricks. Par exemple, utilisez une branche de fonctionnalité ou de développement pour agréger les modifications apportées à plusieurs branches.

Le flux suivant décrit comment collaborer à l’aide d’une branche de fonctionnalité :

  1. Clonez votre dépôt Git existant dans votre espace de travail Databricks.
  2. Utilisez l’interface utilisateur des dossiers Git pour créer une branche de fonctionnalité à partir de la branche principale. Vous pouvez créer et utiliser plusieurs branches de fonctionnalité pour accomplir votre travail.
  3. Apportez vos modifications aux notebooks Azure Databricks et à d’autres fichiers du dépôt.
  4. Validez et envoyez (push) vos modifications au dépôt Git distant.
  5. Les contributeurs peuvent désormais cloner le dépôt Git dans leur propre dossier utilisateur.
    1. En travaillant sur une nouvelle branche, un collègue apporte des modifications aux notebooks et à d’autres fichiers du dossier Git.
    2. Le contributeur valide et pousse ses modifications vers le dépôt Git distant.
  6. Lorsque vous ou d’autres contributeurs êtes prêts à fusionner votre code, créez une demande de tirage sur le site web du fournisseur Git. Passez en revue votre code avec votre équipe avant de fusionner les modifications apportées à la branche de déploiement.

Remarque

Databricks recommande que chaque développeur travaille sur sa propre branche. Pour plus d’informations sur la résolution des conflits de fusion, consultez Résoudre les conflits de fusion.

Choisir une approche CI/CD

Databricks recommande d’utiliser des bundles de ressources Databricks pour empaqueter et déployer vos flux de travail CI/CD. Si vous préférez déployer uniquement du code contrôlé par la source dans l’espace de travail, vous pouvez configurer un dossier Git de production. Pour obtenir une vue d’ensemble plus complète de CI/CD avec Azure Databricks, consultez CI/CD sur Azure Databricks.

Conseil / Astuce

Définissez des ressources telles que des tâches et des pipelines dans des fichiers source à l’aide de lots, puis créez, déployez et gérez ces lots dans les dossiers Git de l’espace de travail. Consultez Collaborer sur les offres groupées dans l’espace de travail.

Dossier Git de production

Les dossiers Git de production servent un objectif différent des dossiers Git au niveau de l’utilisateur situés dans votre dossier utilisateur dans /Workspace/Users/. Les dossiers Git au niveau de l’utilisateur fonctionnent comme des validations locales, où les utilisateurs développent et envoient des modifications de code. En revanche, les dossiers Git de production sont créés par les administrateurs Databricks en dehors des dossiers utilisateur et contiennent des branches de déploiement de production. Les dossiers Git de production contiennent le code source des processus automatisés et ne doivent être mis à jour que de manière automatique lorsque des pull requests (PR) sont fusionnées dans les branches de déploiement. Pour les dossiers Git de production, limitez l’accès utilisateur à l’exécution uniquement et autorisez uniquement les administrateurs et les principaux de service Azure Databricks à modifier.

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

Pour créer un dossier de production Git :

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

  2. Obtenez un principal de service et configurez des informations d’identification Git pour que le principal de service accède à ce référentiel Git.

  3. Créez un dossier Git Azure Databricks pour le dépôt Git et la branche dans un sous-dossier situé sous le Workspace dédié à un projet, une équipe et une phase de développement.

  4. Sélectionnez Partager après avoir sélectionné le dossier ou Partager (Autorisations) en cliquant avec le bouton droit sur le dossier sous l’arborescence de l’espace de travail . Configurez le dossier Git avec les autorisations suivantes :

    • Définir Peut être exécuté pour tous les utilisateurs de projet
    • Définissez Peut exécuter pour tous les comptes de principal de service Azure Databricks qui exécuteront l’automatisation pour lui.
    • Si c’est le cas pour votre projet, définissez Can View pour tous les utilisateurs de l’espace de travail afin d’encourager la découverte et le partage.

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

  5. Sélectionnez Ajouter.

  6. Configurez les mises à jour automatisées des dossiers Git Databricks. Vous pouvez utiliser l’automatisation pour synchroniser un dossier Git de production avec la branche distante en effectuant l’une des opérations suivantes :

    • Utilisez des outils CI/CD externes tels que GitHub Actions pour extraire les dernières validations dans un répertoire Git de production lorsqu'une pull request est fusionnée dans la branche de déploiement. Pour obtenir un exemple Github Actions, consultez Exécuter un flux de travail CI/CD qui met à jour un dossier Git de production.
    • Si vous ne pouvez pas accéder aux outils CI/CD externes, créez un travail planifié pour mettre à jour un dossier Git dans votre espace de travail avec la branche distante. Programmez un notebook simple avec le code suivant afin qu’il s’exécute régulièrement :
    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 Azure Databricks Repos, consultez la documentation de l’API REST Databricks pour Repos.