Partager via


Que sont les packs de ressources Databricks ?

Les packs de ressources Databricks (DAB) sont des outils qui facilitent l’adoption des meilleures pratiques en matière de génie logiciel, notamment le contrôle de code source, la révision du code, les tests, et la livraison et l’intégration continue (CI/CD), pour vos projets de données et d’IA. Les bundles permettent de décrire des ressources Databricks telles que des travaux, des pipelines et des notebooks en tant que fichiers sources. Ces fichiers sources fournissent une définition de bout en bout d’un projet, notamment la façon dont il doit être structuré, testé et déployé, ce qui facilite la collaboration sur des projets pendant le développement actif.

Les packs permettent d’inclure des métadonnées en même temps que les fichiers sources de votre projet. Lorsque vous déployez un projet à l’aide de regroupements, ces métadonnées sont utilisées pour approvisionner l’infrastructure et d’autres ressources. La collection de fichiers sources et de métadonnées de votre projet est ensuite déployée en tant que regroupement unique dans votre environnement cible. Un pack se compose des parties suivantes :

  • Configurations requises de l’infrastructure cloud et de l’espace de travail
  • Des fichiers sources, tels que des notebooks et des fichiers Python, qui incluent la logique métier
  • Des définitions et des paramètres pour des ressources Databricks, tels que des travaux Azure Databricks, des pipelines Delta Live Tables, des points de terminaison Service de modèle, des expériences MLflow et des modèles inscrits MLflow
  • Des tests unitaires et d’intégration

Le diagramme suivant fournit une vue générale d’un pipeline de développement et CI/CD avec des bundles :

Vue d’ensemble des bundles de ressources Databricks

Quand dois-je utiliser les regroupements de ressources Databricks ?

Les regroupements de ressources Databricks sont une approche IaC (Infrastructure-as-code) pour gérer vos projets Databricks. Utilisez-les lorsque vous souhaitez gérer des projets complexes où plusieurs contributeurs et automatisations sont essentiels, et l’intégration et le déploiement continus (CI/CD) sont requis. Étant donné que les regroupements sont définis et gérés par le biais de modèles et de fichiers YAML que vous créez et gérez en même temps que le code source, ils correspondent aux scénarios où IaC est une approche appropriée.

Voici quelques-uns des meilleurs scénarios pour les bundles :

  • Développez des données, analyses et projets ML dans un environnement basé sur l’équipe. Les packs peuvent vous permettre de vous organiser et de gérer efficacement divers fichiers sources. Ils garantissent une collaboration harmonieuse et des processus simplifiés.
  • Itérez plus rapidement sur des problèmes ML. Gérez des ressources de pipeline ML (telles que des formations et des travaux d’inférence par lots) en utilisant des projets ML qui suivent les meilleures pratiques de production dès le début.
  • Définissez des normes d’organisation pour de nouveaux projets en créant des modèles de pack personnalisés qui incluent des autorisations, des principaux de service et des configurations CI/CD par défaut.
  • Conformité réglementaire : dans les sections où la conformité réglementaire est une préoccupation significative, les packs peuvent permettre de conserver un travail d’infrastructure et un historique du code avec version. Cela facilite la gouvernance et permet de veiller à ce que les normes de conformité nécessaires soient satisfaites.

Comment fonctionnent les regroupements de ressources Databricks ?

Les métadonnées de regroupement sont définies à l’aide de fichiers YAML qui spécifient les artefacts, les ressources et la configuration d’un projet Databricks. Vous pouvez créer ce fichier YAML manuellement ou en générer un à l’aide d’un modèle de regroupement. Vous pouvez ensuite utiliser l’interface CLI Databricks pour valider, déployer et exécuter des regroupements à l’aide de ces fichiers YAML regroupés. Vous pouvez exécuter des projets regroupés à partir d’IDE, de terminaux ou directement dans Databricks. Cet article utilise le kit SDK Databricks CLI.

Vous pouvez créer des regroupements manuellement ou sur la base d’un modèle. L’interface CLI Databricks fournit des modèles par défaut pour des cas d’usage simples, mais pour des travaux plus spécifiques ou complexes, vous pouvez créer des modèles de pack personnalisés pour implémenter les meilleures pratiques de votre équipe et maintenir une cohérence des configurations courantes.

Pour plus d’informations sur la configuration YAML utilisée pour exprimer les packs de ressources Databricks, consultez Configuration des packs de ressources Databricks.

Configurer votre environnement pour utiliser des packs

Utilisez l’interface CLI Databricks pour déployer facilement des packs à partir de la ligne de commande. Pour installer l’interface CLI Databricks, consultez Installer ou mettre à jour l’interface CLI Databricks.

Les packs de ressources Databricks sont disponibles dans Databricks CLI version 0.218.0 et versions ultérieures. Pour trouver la version de l’interface CLI Databricks installée, exécutez la commande suivante :

databricks --version

Après avoir installé l’interface CLI Databricks, vérifiez que vos espaces de travail Databricks distants sont configurés correctement. Les regroupements nécessitent que la fonctionnalité de fichiers d’espace de travail soit activée, car elle prend en charge l’utilisation de fichiers autres que les notebooks Databricks, tels que les fichiers .py et .yml. Si vous utilisez Databricks Runtime version 11.3 LTS ou une version ultérieure, cette fonctionnalité doit être activée par défaut.

Authentification

Azure Databricks fournit plusieurs méthodes d’authentification :

  • Pour les scénarios d’authentification avec assistance, comme des workflows manuels où vous utilisez votre navigateur web pour vous connecter à votre espace de travail Azure Databricks cible (quand vous y êtes invité par l’interface CLI Databricks), utilisez l’authentification d’utilisateur à machine (U2M) OAuth. Cette méthode est idéale pour expérimenter les tutoriels de prise en main des packs de ressources Databricks ou pour le développement rapide de packs.
  • Pour les scénarios d’authentification sans assistance, Comme des workflows entièrement automatisés dans lesquels vous n’avez pas la possibilité d’utiliser votre navigateur web pour vous connecter à votre espace de travail Azure Databricks cible à ce moment-là, utilisez l’authentification de machine à machine (M2M) OAuth. Cette méthode nécessite l’utilisation de principaux de service Azure Databricks et est idéale pour utiliser des packs Databricks avec des systèmes CI/CD comme GitHub.

Pour l’authentification U2M OAuth, procédez comme suit :

  1. Utilisez l’interface CLI Databricks pour lancer la gestion des jetons OAuth localement en exécutant la commande suivante pour chaque espace de travail cible.

    Dans la commande suivante, remplacez <workspace-url> par votre URL d’espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. L’interface CLI Databricks vous invite à enregistrer les informations que vous avez entrées en tant que profil de configuration Azure Databricks. Appuyez sur Enter pour accepter le nom de profil suggéré, ou entrez le nom d’un profil nouveau ou existant. Tout profil existant portant le même nom est remplacé par les informations que vous avez entrées. Vous pouvez utiliser des profils pour changer rapidement de contexte d’authentification entre plusieurs espaces de travail.

    Pour obtenir la liste des profils existants, dans un autre terminal ou une autre invite de commandes, utilisez l’interface CLI Databricks pour exécuter la commande databricks auth profiles. Pour voir les paramètres existants d’un profil spécifique, exécutez la commande databricks auth env --profile <profile-name>.

  3. Dans votre navigateur web, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  4. Pour voir la valeur du jeton OAuth actuel d’un profil et l’horodatage de l’expiration à venir du jeton, exécutez une des commandes suivantes :

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si vous avez plusieurs profils avec la même valeur pour --host, il peut être nécessaire de spécifier les options --host et -p ensemble pour permettre à l’interface CLI Databricks de trouver les informations du jeton OAuth correspondant.

Vous pouvez utiliser le nom de ce profil de configuration de la manière suivante chaque fois que vous validez, déployez, exécutez ou détruisez des packs :

  • Avec l’option de ligne de commande -p <profile-name>, ajoutée aux commandes databricks bundle validate, databricks bundle deploy, databricks bundle run ou databricks bundle destroy. Consultez Développement des bundles de ressources Databricks.
  • Comme valeur du mappage du profile dans le mappage du workspace de plus haut niveau du fichier de configuration du pack (bien que Databricks vous recommande d’utiliser le mappage du host défini sur l’URL de l’espace de travail Azure Databricks au lieu du mappage du profile, car il rend vos fichiers de configuration de pack plus portables). Consultez la couverture du mappage de profile dans un espace de travail.
  • Si le nom du profil de configuration est DEFAULT, il est utilisé par défaut lorsque l’option de ligne de commande -p <profile-name> ou le mappage profile (ou host) n’est pas spécifié.

Pour l’authentification M2M OAuth, procédez comme suit :

  1. Suivez les instructions de configuration de l’authentification OAuth M2M. Consultez Authentifier l’accès à Azure Databricks avec un principal de service à l’aide d’OAuth (OAuth M2M).

  2. Installez l’interface CLI Databricks sur la ressource de calcul cible de l’une des manières suivantes :

  3. Définissez les variables d’environnement suivantes sur la ressource de calcul comme suit :

    • DATABRICKS_HOST, défini sur l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
    • DATABRICKS_CLIENT_ID, définie sur la valeur de l’ID d’application du principal de service Azure Databricks.
    • DATABRICKS_CLIENT_SECRET, définie sur la valeur du Secret OAuth du principal de service Azure Databricks.

    Pour définir ces variables d’environnement, consultez la documentation du système d’exploitation de votre ressource de calcul cible ou de votre système CI/CD.

Développer votre premier pack de ressources Databricks

Le moyen le plus rapide de démarrer le développement de pack consiste à utiliser un modèle de projet de pack. Créez votre premier projet de pack à l’aide de la commande de pack init de l’interface CLI Databricks. Cette commande présente un choix de modèles de pack par défaut fournis par Databricks et pose une série de questions pour initialiser des variables de projet.

databricks bundle init

La création de votre pack est la première étape du cycle de vie d’un pack. La deuxième étape consiste à développer votre pack, un élément clé qui définit les paramètres et les ressources du pack dans les fichiers de configuration des ressources et databricks.yml. Pour obtenir des informations sur la configuration du pack, consultez Configuration du pack de ressources Databricks.

Conseil

Vous trouverez des exemples de configurations de packs dans Exemples de configurations de packs et le référentiel d’exemples de packs dans GitHub.

Étapes suivantes