Condividi tramite


Che cos'è CI/CD in Azure Databricks?

Questo articolo è un'introduzione a CI/CD in Databricks. L'integrazione continua e il recapito continuo (CI/CD) si riferisce al processo di sviluppo e distribuzione di software in brevi cicli frequenti tramite l'uso di pipeline di automazione. CI/CD è comune allo sviluppo di software e sta diventando sempre più necessario per l'ingegneria dei dati e l'analisi scientifica dei dati. Automatizzando la compilazione, il test e la distribuzione del codice, i team di sviluppo sono in grado di distribuire versioni in modo più affidabile rispetto ai processi manuali ancora comuni ai team di data engineering e data science.

Azure Databricks consiglia di usare i bundle di asset di Databricks per CI/CD, che consentono lo sviluppo e la distribuzione di progetti complessi di dati, analisi e Machine Learning per la piattaforma Azure Databricks. I bundle consentono di gestire facilmente molte configurazioni personalizzate e automatizzare compilazioni, test e distribuzioni dei progetti nelle aree di lavoro di sviluppo, gestione temporanea e produzione di Azure Databricks.

Per una panoramica di CI/CD per i progetti di Machine Learning in Azure Databricks, vedere Come Databricks supporta CI/CD per Machine Learning?

Che cos'è in una pipeline CI/CD in Azure Databricks?

È possibile usare i bundle di asset di Databricks per definire e gestire a livello di codice l'implementazione CI/CD di Azure Databricks, che in genere include:

  • Notebook: i notebook di Azure Databricks sono spesso una parte fondamentale dei flussi di lavoro di data engineering e data science. È possibile usare il controllo della versione per i notebook e convalidarli e testarli come parte di una pipeline CI/CD. È possibile eseguire test automatizzati sui notebook per verificare se funzionano come previsto.
  • Librerie: gestire le dipendenze della libreria necessarie per eseguire il codice distribuito. Usare il controllo della versione nelle librerie e includerli nei test e nella convalida automatizzati.
  • Flussi di lavoro: i processi di Databricks sono costituiti da processi che consentono di pianificare ed eseguire attività automatizzate usando notebook o processi Spark.
  • Pipeline di dati: è anche possibile includere pipeline di dati in automazione CI/CD, usando tabelle live Delta, il framework in Databricks per dichiarare le pipeline di dati.
  • Infrastruttura: la configurazione dell'infrastruttura include definizioni e informazioni di provisioning per cluster, aree di lavoro e archiviazione per gli ambienti di destinazione. Le modifiche all'infrastruttura possono essere convalidate e testate come parte di una pipeline CI/CD, assicurandosi che siano coerenti e senza errori.

Passaggi per CI/CD in Azure Databricks

Un flusso tipico per una pipeline CI/CD di Azure Databricks include i passaggi seguenti:

  1. Store: archiviare il codice e i notebook di Azure Databricks in un sistema di controllo della versione come Git. In questo modo è possibile tenere traccia delle modifiche nel tempo e collaborare con altri membri del team. Vedere Le tecniche CI/CD con le cartelle Git di Git e Databricks (Repos) e le impostazioni Git del bundle.
  2. Codice: sviluppare codice e unit test in un notebook di Azure Databricks nell'area di lavoro o in locale usando un IDE esterno. Azure Databricks offre un'estensione di Visual Studio Code che semplifica lo sviluppo e la distribuzione delle modifiche nelle aree di lavoro di Azure Databricks.
  3. Compilazione: usare le impostazioni dei bundle di asset di Databricks per compilare automaticamente determinati artefatti durante le distribuzioni. Vedere artefatti. Pylint è stato esteso con il plug-in pylint di Databricks Labs per applicare gli standard di codifica e rilevare i bug nei notebook e nel codice dell'applicazione di Databricks.
  4. Distribuire: distribuire le modifiche nell'area di lavoro di Azure Databricks usando i bundle di asset di Databricks insieme a strumenti come Azure DevOps, Jenkins o GitHub Actions. Vedere Modalità di distribuzione del bundle di asset di Databricks.
  5. Test: sviluppare ed eseguire test automatizzati per convalidare le modifiche del codice usando strumenti come pytest. Per testare le integrazioni con le API dell'area di lavoro, il plug-in pytest di Databricks Labs consente di creare oggetti dell'area di lavoro e di pulirli al termine dei test.
  6. Esegui: usare l'interfaccia della riga di comando di Databricks insieme ai bundle di asset di Databricks per automatizzare le esecuzioni nelle aree di lavoro di Azure Databricks. Vedere Eseguire un processo o una pipeline.
  7. Monitoraggio: monitorare le prestazioni del codice e dei flussi di lavoro in Azure Databricks usando strumenti come Monitoraggio di Azure o Datadog. Ciò consente di identificare e risolvere eventuali problemi che si verificano nell'ambiente di produzione.
  8. Iterazione: eseguire iterazioni piccole e frequenti per migliorare e aggiornare il progetto di data engineering o data science. Le piccole modifiche sono più facili da eseguire con il rollback rispetto a quelle di grandi dimensioni.

Per altre informazioni sulla gestione del ciclo di vita degli asset e dei dati di Azure Databricks, vedere la documentazione seguente sugli strumenti ci/CD e pipeline di dati.

Area Usa questi strumenti quando vuoi...
Bundle di asset di Databricks Definire, distribuire ed eseguire processi di Azure Databricks a livello di codice, pipeline di tabelle live delta e stack MLOps usando procedure consigliate e flussi di lavoro CI/CD.
Provider Databricks Terraform Effettuare il provisioning e gestire l'infrastruttura e le risorse di Databricks usando Terraform.
Flussi di lavoro CI/CD con le cartelle Git di Git e Databricks Usare le cartelle GitHub e Databricks per il controllo del codice sorgente e i flussi di lavoro CI/CD.
Eseguire l'autenticazione con Azure DevOps in Databricks Eseguire l'autenticazione con Azure DevOps.
Usare un'entità servizio Microsoft Entra per autenticare l'accesso alle cartelle Git di Azure Databricks Usare un'entità servizio MS Entra per autenticare l'accesso alle cartelle Git di Databricks.
Integrazione e distribuzione continue in Azure Databricks con Azure DevOps Sviluppare una pipeline CI/CD per Azure Databricks che usa Azure DevOps.
Integrazione e recapito continui con GitHub Actions Sviluppare un flusso di lavoro CI/CD in GitHub che usa GitHub Actions sviluppato per Azure Databricks.
CI/CD con Jenkins in Azure Databricks Sviluppare una pipeline CI/CD per Azure Databricks che usa Jenkins.
Orchestrare i processi di Azure Databricks con Apache Airflow Gestire e pianificare una pipeline di dati che usa Apache Airflow.
Entità servizio per CI/CD Usare le entità servizio, anziché gli utenti, con sistemi CI/CD.