Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
CI/CD (kontinuální integrace a průběžné doručování) se stala základním kamenem moderní přípravy a analýzy dat, protože zajišťuje integraci, testování a spolehlivé nasazování změn kódu. Databricks rozpoznává, že můžete mít různé požadavky CI/CD tvarované podle předvoleb organizace, stávajících pracovních postupů a konkrétního technologického prostředí a poskytuje flexibilní architekturu, která podporuje různé možnosti CI/CD.
Tato stránka popisuje doporučené pracovní postupy CI/CD, které vám pomůžou navrhovat a vytvářet robustní a přizpůsobené kanály CI/CD, které odpovídají vašim jedinečným potřebám a omezením. Díky využití těchto přehledů můžete urychlit iniciativy přípravy a analýzy dat, zlepšit kvalitu kódu a snížit riziko selhání nasazení.
Základní principy CI/CD
Efektivní kanály CI/CD sdílejí základní principy bez ohledu na specifika implementace. Následující univerzální osvědčené postupy se vztahují napříč předvolbami organizace, vývojářskými pracovními postupy a cloudovými prostředími a zajišťují konzistenci napříč různými implementacemi, ať už váš tým upřednostňuje pracovní postupy vývoje a infrastruktury jako kódu. Adoptujte tyto principy jako mantinely a přizpůsobte si specifika technologickému zásobníku a procesům vaší organizace.
- Správa verzí – vše
- Ukládejte poznámkové bloky, skripty, definice infrastruktury (IaC) a konfigurace úloh v Gitu.
- Použijte strategie větvení, jako je Gitflow, které jsou v souladu se standardním vývojovým, přípravným a produkčním prostředím nasazení.
- Automatizace testování
- Implementujte testy jednotek pro obchodní logiku pomocí knihoven, jako je pytest pro Python a ScalaTest pro Scala .
- Ověřte funkčnost poznámkového bloku a pracovního postupu pomocí nástrojů, jako je Databricks CLI bundle validate.
- Pro pracovní postupy a datové kanály, jako je chispa pro datové rámce Sparku, použijte integrační testy.
- Použití infrastruktury jako kódu (IaC)
- Definujte clustery, úlohy a konfigurace pracovních prostorů pomocí deklarativních balíčků automation YAML nebo Terraform.
- Parametrizace namísto pevně zakódovaného nastavení specifického pro prostředí, jako je velikost clusteru a tajné kódy.
- Izolace prostředí
- Udržujte samostatné pracovní prostory pro vývoj, přípravu a produkci.
- Pro správu verzí modelů napříč prostředími použijte registr modelů MLflow .
- Zvolte nástroje, které odpovídají vašemu cloudovému ekosystému:
- Azure: Balíčky Azure DevOps a deklarativní automatizace, nebo Terraform.
- AWS: GitHub Actions a deklarativní balíčky automatizace nebo Terraform.
- GCP: Cloud Build a deklarativní balíčky automatizace nebo Terraform.
- Monitorování a automatizace vrácení zpět
- Sledování úspěšnosti nasazení, výkonu úloh a pokrytí testů
- Implementujte automatizované mechanismy vrácení zpět pro neúspěšná nasazení.
- Sjednocení správy prostředků
- Sada deklarativní automatizace slouží k nasazení kódu, úloh a infrastruktury jako jedné jednotky. Vyhněte se izolované správě poznámkových bloků, knihoven a pracovních postupů.
Note
Databricks doporučuje federaci identit úloh pro ověřování CI/CD. Federace identit úloh eliminuje potřebu tajných kódů Databricks, což z něj dělá nejbezpečnější způsob ověřování automatizovaných toků do Databricks. Viz Jak povolit federaci identit úloh v CI/CD.
Deklarativní balíčky automatizace pro CI/CD
Deklarativní balíčky automatizace (dříve Označované jako Sady prostředků Databricks) nabízejí výkonný, jednotný přístup ke správě kódu, pracovních postupů a infrastruktury v ekosystému Databricks a doporučuje se pro vaše kanály CI/CD. Spojením těchto prvků do jedné jednotky definované YAML zjednoduší nasazení a zajistí konzistenci ve všech prostředích. Pro uživatele, kteří jsou zvyklí na tradiční pracovní postupy CI/CD, ale přijetí balíčků může vyžadovat posun v myšlení.
Vývojáři v Javě jsou například zvyklí vytvářet JAR soubory pomocí Mavenu nebo Gradle, spouštět jednotkové testy pomocí JUnit a integrovat tyto kroky do procesů CI/CD. Podobně vývojáři Pythonu často zabalují kód do wheel balíčků a testují pomocí pytestu, zatímco vývojáři SQL se zaměřují na ověřování dotazů a správu notebooků. Díky sadám se tyto pracovní postupy konvergují do strukturovanějšího a preskriptivnějšího formátu, který zdůrazňuje sdružování kódu a infrastruktury pro bezproblémové nasazení.
V následujících částech se dozvíte, jak můžou vývojáři přizpůsobit své pracovní postupy, aby efektivně využívali sady prostředků.
Pokud chcete rychle začít pracovat s deklarativními automatizačními sadami, vyzkoušejte kurz: Vývoj úlohy pomocí deklarativních automatizačních sad nebo vývoj potrubí s deklarativními automatizačními sadami.
Správa zdrojového kódu
Balíčky umožňují snadno obsahovat vše – zdrojový kód, artefakty sestavení a konfigurační soubory – a najít je ve stejném úložišti zdrojového kódu, ale můžete také oddělit konfigurační soubory sady od souborů souvisejících s kódem. Volba závisí na pracovním postupu vašeho týmu, složitosti projektu a požadavcích NA CI/CD, ale kvůli zjednodušení pracovních postupů a sdílení osvědčených postupů doporučuje Databricks použít jedno úložiště pro konfiguraci kódu i sady.
Kromě toho Databricks doporučuje strategii větvení založené na kmeni, která minimalizuje konflikty při slučování a zajišťuje, aby hlavní větev byla vždy v nasaditelném stavu a vždy používala artefakty s verzí, jako jsou hodnoty hash potvrzení Gitu, při nahrávání do Databricks nebo externího úložiště, aby se zajistila sledovatelnost a vrácení zpět.
Další informace o těchto osvědčených postupech najdete v tématu Správa zdrojového kódu.
Pracovní postup CI/CD s balíčky
Doporučený jednoduchý pracovní postup využívající balíčky deklarativní automatizace je následující:
- Kompilace a testování kódu
- Aktivuje se u žádosti o přijetí změn nebo potvrzení do hlavní větve.
- Zkompilujte kód a spusťte testy jednotek.
- Vystupte verzovaný soubor, například
my-app-1.0.jar.
- Nahrajte a uložte kompilovaný soubor, například SOUBOR JAR, do svazku katalogu Unity Databricks.
- Uložte kompilovaný soubor do svazku katalogu Unity Databricks nebo do úložiště artefaktů, jako je AWS S3 nebo Azure Blob Storage.
- Použijte schéma správy verzí svázané s potvrzením hodnot hash Gitu nebo sémantickou správou verzí, například
dbfs:/mnt/artifacts/my-app-${{ github.sha }}.jar.
- Ověření sady
- Spusťte
databricks bundle validate, abyste se ujistili, žedatabricks.ymlkonfigurace je správná. - Tento krok zajistí, že se v rané fázi zachytí chybné konfigurace, například chybějící knihovny.
- Spusťte
- Nasazení sady
- Použijte
databricks bundle deployk nasazení sady do přípravného nebo produkčního prostředí. - Odkaz na nahranou kompilovanou knihovnu v souboru
databricks.yml. Informace o odkazování na knihovny naleznete v tématu závislosti knihovny pro deklarativní automatizační balíčky.
- Použijte
CI/CD pro strojové učení
Projekty strojového učení představují v porovnání s tradičním vývojem softwaru jedinečné výzvy CI/CD. Při implementaci CI/CD pro projekty ML budete pravděpodobně muset zvážit následující:
- Koordinace s více týmy: Odborníci na data, technici a týmy MLOps často používají různé nástroje a pracovní postupy. Databricks tyto procesy sjednocuje s MLflow pro sledování experimentů, openSharing pro zásady správného řízení dat a sady deklarativní automatizace pro infrastrukturu jako kód.
- Správa verzí dat a modelů: Kanály ML vyžadují sledování nejen kódu, ale také trénování schémat dat, distribuce funkcí a artefaktů modelu. Delta Lake poskytuje transakce ACID a časové cesty pro správu verzí dat, zatímco registr modelů MLflow zpracovává rodokmen modelu.
- Reprodukovatelnost napříč prostředími: Modely ML závisí na konkrétních kombinacích dat, kódu a infrastruktury. Deklarativní balíčky automatizace zajišťují atomické nasazení těchto komponent napříč vývojovými, přípravnými a produkčními prostředími s definicemi YAML.
- Průběžné přetrénování a monitorování: Modely degradují kvůli datovému driftu. Úlohy Lakeflow umožňují automatizované přetrénování pipeline, zatímco MLflow se integruje s nástroji Prometheus a Databricks pro monitorování kvality dat a sledování výkonu.
Zásobníky MLOps pro CI/CD ML
Databricks řeší složitost CI/CD ML prostřednictvím zásobníků MLOps, což je architektura na úrovni produkce, která kombinuje balíčky deklarativní automatizace, předem nakonfigurované pracovní postupy CI/CD a modulární šablony projektů ML. Tyto technologické balíky vynucují osvědčené postupy a zároveň umožňují flexibilitu pro spolupráci s více týmy napříč rolemi datového inženýrství, datové vědy a MLOps.
| Team | Responsibilities | Ukázkové komponenty sady | Ukázkové artefakty |
|---|---|---|---|
| Datoví architekti | Vytváření kanálů ETL, vynucení kvality dat | YAML deklarativní kanály Lakeflow Spark, zásady clusteru |
etl_pipeline.yml, feature_store_job.yml |
| Datoví vědci | Vývoj logiky trénování modelů, ověření metrik | Projekty MLflow, pracovní postupy založené na poznámkových blocích |
train_model.yml, batch_inference_job.yml |
| Technici MLOps | Orchestrace nasazení, monitorování procesů | Proměnné prostředí, řídicí panely monitorování |
databricks.yml, lakehouse_monitoring.yml |
Spolupráce CI/CD ML může vypadat takto:
- Datoví inženýři potvrdí změny datového toku ETL do svazku, spustí automatizované ověřování schématu a přípravné nasazení.
- Datoví vědci odesílali kód ML, který spouští testy jednotek a nasazuje do přípravného pracovního prostoru pro testování integrace.
- Technici MLOps kontrolují metriky ověřování a propagují ověřené modely do produkčního prostředí pomocí registru MLflow.
Podrobnosti o implementaci najdete tady:
- Sada zásobníků MLOps: Podrobné pokyny pro inicializaci a nasazení sady
- Úložiště MLOps Stacks Na GitHubu: Předkonfigurované šablony pro trénování, odvozování a CI/CD.
Díky sladění týmů se standardizovanými sadami a zásobníky MLOps můžou organizace zjednodušit spolupráci a současně udržovat auditovatelnost v rámci životního cyklu ML.
CI/CD pro vývojáře SQL
Vývojáři SQL využívající Databricks SQL ke správě streamovaných tabulek a materializovaných zobrazení můžou využívat integraci Gitu a kanály CI/CD ke zjednodušení svých pracovních postupů a udržování vysoce kvalitních kanálů. Díky zavedení podpory Gitu pro dotazy se vývojáři SQL můžou soustředit na psaní dotazů a zároveň využívat Git ke správě verzí svých .sql souborů, což umožňuje spolupráci a automatizaci bez nutnosti hlubších odborných znalostí infrastruktury. Editor SQL navíc umožňuje bezproblémovou spolupráci v reálném čase a integruje se s pracovními postupy Gitu.
Pro pracovní postupy zaměřené na SQL:
Soubory SQL správy verzí
- Ukládání .sql souborů v úložištích Git pomocí složek Databricks Git nebo externích poskytovatelů Gitu, například GitHubu, Azure DevOps.
- Ke správě změn specifických pro prostředí použijte větve (například vývoj, příprava, produkční prostředí).
Integrujte
.sqlsoubory do CI/CD kanálů pro automatizaci procesu nasazení:- Ověřte změny syntaxe a schématu během žádostí o přijetí změn.
- Nasaďte
.sqlsoubory do pracovních postupů nebo úloh SQL Databricks.
Parametrizace pro izolaci prostředí
Pomocí proměnných v
.sqlsouborech můžete dynamicky odkazovat na prostředky specifické pro prostředí, jako jsou cesty k datům nebo názvy tabulek:CREATE OR REFRESH STREAMING TABLE ${env}_sales_ingest AS SELECT * FROM read_files('s3://${env}-sales-data')
Plánování a monitorování aktualizací
- Pomocí úloh SQL v úloze Databricks můžete naplánovat aktualizace tabulek a materializovaných zobrazení (
REFRESH MATERIALIZED VIEW view_name). - Monitorujte historii aktualizací pomocí systémových tabulek.
- Pomocí úloh SQL v úloze Databricks můžete naplánovat aktualizace tabulek a materializovaných zobrazení (
Pracovní postup může být:
- Vývoj: Místně nebo v editoru SQL Databricks můžete psát a testovat
.sqlskripty a pak je zapsat do větve Gitu. - Ověření: Během žádosti o přijetí změn ověřte kompatibilitu syntaxe a schématu pomocí automatizovaných kontrol CI.
- Nasazení: Při sloučení nasaďte skripty .sql do cílového prostředí pomocí kanálů CI/CD, například GitHub Actions nebo Azure Pipelines.
- Monitorování: Pomocí řídicích panelů a upozornění Databricks můžete sledovat výkon dotazů a aktuálnost dat.
CI/CD pro vývojáře řídicích panelů
Databricks podporuje integraci řídicích panelů do pracovních postupů CI/CD pomocí deklarativních balíčků automatizace. Tato funkce umožňuje vývojářům řídicího panelu:
- Řídicí panely správy verzí, které zajišťují auditovatelnost a zjednodušuje spolupráci mezi týmy.
- Automatizujte nasazení řídicích panelů společně s úlohami a procesy napříč prostředími pro komplexní sladění.
- Omezte ruční chyby a zajistěte, aby se aktualizace v různých prostředích používaly konzistentně.
- Při dodržování osvědčených postupů CI/CD udržujte vysoce kvalitní analytické pracovní postupy.
Pro řídicí panely v CI/CD:
databricks bundle generatePomocí příkazu exportujte existující řídicí panely jako soubory JSON a vygenerujte konfiguraci YAML, která ho zahrnuje do sady:resources: dashboards: sales_dashboard: display_name: 'Sales Dashboard' file_path: ./dashboards/sales_dashboard.lvdash.json warehouse_id: ${var.warehouse_id}Uložte tyto
.lvdash.jsonsoubory do úložišť Git, abyste mohli efektivně sledovat změny a spolupracovat.Automaticky nasaďte dashboardy v CI/CD procesech pomocí
databricks bundle deploy. Například krok GitHub Actions pro nasazení:name: Deploy Dashboard run: databricks bundle deploy --target=prod env: DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}Pomocí proměnných můžete například
${var.warehouse_id}parametrizovat konfigurace, jako jsou SQL Warehouse nebo zdroje dat, a zajistit tak bezproblémové nasazení napříč vývojovými, přípravovými a produkčními prostředími.bundle generate --watchPomocí této možnosti můžete průběžně synchronizovat soubory JSON místního řídicího panelu se změnami provedenými v uživatelském rozhraní Databricks. Pokud dojde k nesrovnalostem, pomocí flagu--forceběhem nasazení přepište vzdálené řídicí panely místními verzemi.
Informace o řídicích panelech v balíčcích naleznete v dashboard resource. Podrobnosti o příkazech sady najdete bundle ve skupině příkazů.