Phase 7 : Planifier l'approche Infrastructure as Code
Dans cette phase, vous concevez votre stratégie d'infrastructure en tant que code (IaC) pour automatiser le déploiement et la gestion des ressources Databricks.
Les outils d'infrastructure en tant que code sont le moyen recommandé de lancer et de gérer les Databricks Workspace. Chaque cloud dispose de son propre outil IaC, et il existe également plusieurs outils cloud-agnostic.
Choisissez des outils d'Infrastructure en tant que code
Terraform (recommandé pour l'infrastructure lakehouse)
Terraform est un outil IaC tiers qui bénéficie d'un large soutien dans de nombreux secteurs d'activité. C'est l'outil IaC tiers le plus populaire, avec un fournisseur Terraform officiellement pris en charge par Databricks. La documentation du fournisseur Terraform sur terraform.io fournit des exemples et des conseils pour vous aider à start rapidement.
Fonctionnalités Terraform
- Gérer les ressources du compte Databricks (par exemple, les workspaces, les réseaux, les configurations de stockage).
- Gérez les ressources du workspace (par exemple, les clusters, les jobs, les notebooks, les ressources de Unity Catalog).
- Agnostique du cloud : fonctionne sur AWS, Azure et GCP avec le même langage.
- Grand écosystème avec des modules et les meilleures pratiques.
- Support officiel de Databricks.
Modèles de déploiement Terraform
- Infrastructure au niveau du compte : Workspace, réseaux, informations d'identification de stockage, metastores.
- Configuration au niveau du Workspace : stratégies de clusters, pools d'instances, paramètres du workspace.
- **Unity Catalog ressources** : catalogues, schémas, emplacements externes, identifiants de stockage.
- Notebooks et repositories : Déployez des notebooks et des repositories Git dans des workspaces.
- Secrets : Gérez les secrets dans les Secret Scope Databricks.
Bonnes pratiques pour Terraform
- Utilisez les modules Terraform pour créer des modèles réutilisables pour votre organisation.
- Stockez l’état Terraform dans des backends distants (par exemple, S3, Azure Blob Storage, GCS) avec verrouillage d’état.
- Utilisez les Terraform Workspace ou des fichiers d'état distincts pour isoler les environnements (par exemple, dev, staging, prod).
- Utilisez les variables Terraform et les fichiers
tfvarspour paramétrer les configurations. - Activez l'examen du plan dans les pipelines CI/CD avant d'appliquer les modifications.
- Balisez toutes les ressources de manière cohérente pour l'attribution des coûts et la gouvernance.
- Documenter les modules et gérer un registre de modules.
- Utilisez les exemples officiels du fournisseur Databricks Terraform comme points de départ.
Pour la documentation et les exemples du fournisseur Terraform, consultez le Registre Terraform Databricks.
Declarative Automation Bundles (recommandé pour les ressources de données et d'IA)
Declarative Automation Bundles est un outil d'Infrastructure-as-Code propriétaire de Databricks qui permet un packaging et un déploiement cohérents des ressources de données et d'IA. Il offre un support officiel et une intégration avec les espaces de travail Databricks.
Capacités des Declarative Automation Bundles
- Déployez les Jobs, les pipelines et les Notebooks.
- Déployer et gérer des modèles ML.
- Gérer le déploiement sur les environnements (par exemple, dev, staging, prod).
- Intégration du contrôle des sources avec Git.
- Intégration CI/CD avec GitHub Actions, Azure DevOps, GitLab CI.
- Modélisation pour les modèles courants.
Cas d'utilisation des Declarative Automation Bundles
- Déployer des workflows de data engineering et des LakeFlow Pipelines.
- Déployer les workflows de Machine Learning et les Endpoints de mise en service de modèles.
- Déployer des Notebook et des query SQL.
- Gérer les configurations spécifiques à l'environnement.
- Automatiser la promotion de dev à staging à production.
Bonnes pratiques pour les Declarative Automation Bundles
- Utilisez les Declarative Automation Bundles pour les charges de travail de données et d'IA (par exemple, les jobs, les pipelines, les modèles).
- Utilisez Terraform pour les Ressources d'infrastructure (par exemple, les Workspaces, les réseaux, Unity Catalog).
- Utilisez les Templates Declarative Automation Bundles pour les cas d'utilisation courants.
- Intégrer aux pipelines CI/CD pour des déploiements automatisés.
- Utilisez des configurations spécifiques à l’environnement pour le développement, la préproduction et la production.
- Gérer les définitions de bundle en Git.
Pour la documentation sur les Declarative Automation Bundles, consultez Que sont les Declarative Automation Bundles ?.
Outils d'infrastructure cloud natif en tant que code
Chaque fournisseur de cloud offre des outils IaC natifs pour la gestion des Ressources cloud. Ces outils peuvent compléter Terraform pour l'infrastructure cloud spécifique.
AWS CloudFormation
AWS utilise des Template AWS CloudFormation pour automatiser la création, la mise à jour et la suppression des ressources cloud telles que les compartiments S3, les rôles IAM et les VPC.
Fonctionnalités CloudFormation
- Gérer l'infrastructure AWS (par exemple, les VPC, les compartiments S3, les rôles IAM).
- Définir des ressources personnalisées à l’aide des fonctions AWS Lambda.
- Auparavant utilisé pour encapsuler les appels d'API de compte Databricks.
Limites de CloudFormation
- Bien que cette méthode ait été utilisée par le passé pour lancer un Workspace depuis la console de compte Databricks, elle n'est plus la méthode préférée pour lancer un Workspace Databricks.
- Utilisez plutôt Terraform pour la gestion du workspace Databricks.
Bonne pratique : Utilisez CloudFormation pour l'infrastructure AWS (par exemple, des VPC, S3, IAM), mais utilisez Terraform pour les ressources Databricks.
Approche de conception du déploiement
Configuration de l'abonnement et du compte
Avant d’exécuter toute automatisation ou de créer manuellement un workspace, la première étape consiste à s’abonner à Databricks auprès de votre fournisseur cloud.
Abonnement AWS
Il existe deux façons de démarrer avec Databricks sur AWS :
Vous n'avez pas de compte AWS
La configuration express vous permet de start à utiliser Databricks sans accès préalable au fournisseur de cloud. Inscrivez-vous et start à utiliser Databricks immédiatement. La configuration express vous offre un Workspace Serverless et des crédits d'Essai gratuit que vous pouvez utiliser pour start à explorer la plateforme Databricks. Une fois vos crédits d'essai gratuit utilisés ou expirés, vous ne pourrez plus utiliser Databricks tant que vous n'aurez pas effectué une mise à niveau en ajoutant un mode de paiement. Vous pouvez ensuite créer des Workspaces supplémentaires dans votre compte.
Vous souhaitez utiliser votre compte AWS existant
Vous pouvez vous inscrire à un essai de Databricks de deux manières (votre inscription détermine la manière dont la facturation est gérée après la fin de l'essai gratuit) :
- S'inscrire via Databricks : Une fois que vos crédits d'essai gratuit sont épuisés ou ont expiré, vous devez saisir un mode de paiement pour continuer à utiliser Databricks.
- Inscrivez-vous via AWS Marketplace : Une fois vos crédits d'essai gratuit utilisés ou expirés, vous serez facturé par AWS et gérerez la facturation dans votre console AWS.
Dans le cadre du processus d'intégration après l'abonnement, un premier workspace est créé pour l'essai.
Déploiements en production
Après la mise à niveau de votre abonnement, vous pouvez utiliser la console de votre compte Databricks pour configurer votre compte Databricks et créer un Workspace. Pour les configurations de production, utilisez des installations automatisées telles que Terraform.
Amorcer avec le workspace administratif
La première étape avant d'exécuter toute automatisation ou de créer manuellement un Workspace consiste à créer un Workspace dans chaque région requise, utilisé uniquement à des fins administratives (aucun utilisateur de plateforme de données ne devrait y avoir accès).
Principales raisons de la création d'un Workspace d'administration
- APIs Unity Catalog : Les APIs Unity Catalog sont principalement des APIs du workspace — pour créer des catalogues, des emplacements, et ainsi de suite, un workspace est requis.
- Tâches administratives : Utilisées pour exécuter des tableaux de bord à l'aide de tables système, exécuter le Security Analysis Tool (SAT) et d'autres opérations administratives.
- Automation hub : Emplacement central pour l'exécution de Terraform, des Declarative Automation Bundles et d'autres outils d'automatisation.
Bonnes pratiques pour les Workspace administratifs
- Créez un Workspace administratif par région.
- Restreignez l'accès aux administrateurs de plateforme uniquement.
- Utilisez ce workspace pour la gestion de Unity Catalog et les requêtes de tables système.
- Déployez les outils d'automatisation (par exemple, Declarative Automation Bundles, exécutables Terraform) dans ce Workspace.
- Documentez l'objectif et les restrictions d'accès.
Concevoir des modèles de déploiement
Modèle 1 : modèle de déploiement de Workspace
Créez des modules Terraform pour les modèles de déploiement de Workspace courants cartographiés aux personas et cas d'utilisation.
Exemples de modèles de workspace
- Workspace Data Engineering : compute classique, Virtual Private Cloud (VPC) géré par le client, Lakeflow Pipelines activés.
- Workspace analytique : compute Serverless, SQL Warehouses, intégrations BI.
- ML Workspace : clusters GPU, runtime ML, MLflow activé.
- Workspace de production : haute disponibilité, Link privé, clés gérées par le client.
Avantages
- Déploiements cohérents entre les environnements.
- Réduction des erreurs de configuration.
- Provisionnement plus rapide de nouveaux workspaces.
- Séparation nette des préoccupations par profil.
Modèle 2 : Modèle de promotion de l'environnement
Créez des modèles pour la promotion des charges de travail du développement à la préproduction, puis à la production.
Workflow de promotion d'environnement
- Développement : Déployer dans un workspace de développement à l'aide de Declarative Automation Bundles avec une configuration de développement
- Mise en scène : Promouvoir vers un Workspace de staging, exécuter les tests d'intégration
- Production : Promouvoir vers le Workspace de production après approbation
Bonnes pratiques
- Utilisez les Declarative Automation Bundles pour les configurations spécifiques à l'environnement.
- Automatisez la promotion par le biais des pipelines CI/CD.
- Exiger des barrières d'approbation pour les déploiements de production.
- Testez en préproduction avant la promotion en production.
Modèle 3 : modèle de modules réutilisables
Créez une bibliothèque de modules Terraform comme blocs de construction pour les modèles courants.
Exemples de modules
- Module Workspace : Déploie le Workspace avec le réseau, le stockage et l'attachement Unity Catalog.
- Module de catalogue Unity Catalog : Crée un catalogue avec des schémas et des autorisations.
- **Module de règles de clusters** : Définit les règles de clusters pour différentes équipes ou cas d'utilisation.
- Module réseau : Crée un Virtual Private Cloud (VPC)/VNet avec des sous-réseaux, un NAT et des règles de pare-feu.
Avantages
- Réduit la duplication de code.
- Établit les normes organisationnelles.
- Simplifie la maintenance et les mises à jour.
- Permet le libre-service pour les équipes.
Recommandations relatives à l’infrastructure en tant que code
Recommandations
- Utilisez un outil IaC pour lancer un Workspace et une infrastructure dans la mesure du possible.
- Utilisez Terraform pour les ressources d'infrastructure (par exemple, les workspaces, les réseaux, Unity Catalog, le stockage).
- Utilisez les Declarative Automation Bundles pour les charges de travail de données et d'IA (par exemple, les Jobs, les pipelines, les Notebooks, les modèles).
- Utilisez les modèles existants disponibles pour chaque cloud (exemples de fournisseur Terraform).
- Créez un Workspace administratif dans chaque région requise.
- Créez des modules Terraform réutilisables mappés aux personas et aux cas d'utilisation.
- Stocker l'état IaC dans des backends distants avec verrouillage d'état.
- Intégrer les déploiements IaC avec les pipelines CI/CD.
- Documentez les modèles de déploiement et l'utilisation des modules.
- Utilisez un étiquetage cohérent sur toutes les Ressources.
Évitez ces modèles
- Ne créez pas manuellement de Workspace en production (utilisez l'IaC pour la répétabilité).
- Ne stockez pas l'état Terraform localement (utilisez des backends distants).
- Ne déployez pas sans examen du plan (activez l’approbation du plan dans CI/CD).
- Ne mélangez pas l'IaC et la configuration manuelle (choisissez une approche).
- Évitez de créer des workspaces uniques avec des configurations spécifiques.
Résultats de la phase 7
Après avoir terminé la phase 7, vous devriez avoir :
- Stratégie d'outils IaC sélectionnée (Terraform pour l'infrastructure, Declarative Automation Bundles pour les charges de travail).
- Utilisation d'outils IaC cloud natifs définie (par exemple, CloudFormation, ARM/Bicep).
- Approche prévue pour la configuration de l'abonnement et du compte.
- Conception de l'Administrative Workspace définie (un par région).
- Modèles de déploiement conçus (par exemple, modèles de workspace, promotion d'environnement, modules réutilisables).
- Bibliothèque de modules Terraform prévue (par exemple, modules workspace, Unity Catalog, réseau, politique de cluster).
- Stratégie d'intégration CI/CD définie pour les déploiements IaC.
- Stratégie de gestion de l'atat distant conçue (par exemple, S3, Azure Blob, GCS).
- Normes d'étiquetage et de dénomination définies pour les Ressources gérées par IaC.
Phase suivante : Phase 8 : Concevoir la configuration du compute
Guide d'implémentation : Pour des instructions étape par étape sur la mise en œuvre de votre stratégie IaC, consultez le fournisseur Databricks Terraform et Que sont les Declarative Automation Bundles ?.