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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Collegamenti correlati
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. |