Sådan industrialiserer I Databricks med Declarative Automation Bundles og Lakeflow

Manuelle notebooks og jobs fungerer fint i starten. Men når pipelines bliver forretningskritiske, skaber Lakeflow Jobs og Declarative Automation Bundles det fundament, der gør platformen skalerbar, robust og nem at drifte.

Skrevet af: Yucheng Fu
Consultant

Mange virksomheder baserer beslutninger og processer på data pipelines, der driftes manuelt med scripts, notebooks og løst sammenhængende jobs. Det fungerer fint i starten. Data-teamet kender virksomhedens data og arbejdsgange og ved, hvor de skal kigge, når noget fejler.


Når pipeline-landskabet vokser, bliver ændringer gradvist dyrere. Et fejlkonfigureret job i produktion kan betyde forsinkede rapporter, manglende dataleverancer til forretningen og flere timers fejlsøgning på tværs af miljøer.

Databricks understøtter begge tilgange - manuelle tasks og jobs, og en fuldt struktureret opsætning med graph-orkestrering på tværs af miljøer. Men hvornår er manuelle pipelines nok, og hvornår skal man skifte til et mere struktureret setup?

Hvad er Databricks?

Databricks er en platform til at bygge og drive dataplatforme i enterprise-skala - fra dataopsamling og transformation til analytics og AI.

Virksomheder bruger den som det centrale lag, der forsyner forretningen med data til rapportering, automatisering og AI-produkter. Platformen er de facto-standard i mange store organisationer og kører typisk på Azure, AWS eller GCP.

Lakeflow Jobs og Declarative Automation Bundles

Lakeflow Jobs er Databricks' orkestreringslag til data- og AI-workloads. Et job består af én eller flere tasks - notebooks, Python-scripts, SQL-queries eller eksterne integrationer - koblet som en Directed Acyclic Graph (DAG).


Rækkefølge, parallel udførelse og fejlhåndtering beskrives eksplicit i jobbet. Retry policies og alarmer er en del af opsætningen, så teamet ikke skal beslutte reaktionen i øjeblikket - særligt relevant når pipelines understøtter forretningskritiske processer.

En Directed Acyclic Graph er en grafstruktur, hvor noder repræsenterer tasks og kanter repræsenterer afhængigheder. "Acyclic" betyder ingen cirkulære afhængigheder - tasks køres altid i en defineret rækkefølge uden at vente på sig selv.

Declarative Automation Bundles (DAB) gør det muligt at definere hele Databricks-projektet som kode – jobs, compute, adgangsrettigheder og miljøkonfigurationer samlet i en central databricks.yml-fil. DABs er Databricks’ pendant til Infrastructure-as-Code (IaC), som man kender det fra Bicep eller Terraform i Microsoft Azure.


Bundlen beskriver targets for dev, test og prod, så samme projektstruktur kan deployes på tværs af miljøer med de forskelle, der hører til hvert miljø. Det gør bundlen til den autoritative kilde til, hvad der kører i produktion - og til hvad der har ændret sig, når noget fejler.

Databricks

IaC er en tilgang, hvor infrastruktur og konfiguration beskrives som kode frem for at blive sat op manuelt. Det giver versionsstyring, reproducerbarhed og mulighed for CI/CD-integration på infrastrukturniveau. Kendte IaC-værktøjer er Terraform og Bicep - DABs er Databricks' tilsvarende implementering for pipeline-projekter.

Hvornår bundles og jobs giver mening

Det afgørende spørgsmål er sjældent antallet af pipelines. Det er, hvor mange mennesker, miljøer og forretningsprocesser de understøtter.

Når flere udviklere arbejder på de samme pipelines, når produktion bliver forretningskritisk, eller når compliance-krav øges, begynder gevinsten ved Lakeflow Jobs og DABs typisk at overstige omkostningen ved at indføre dem. Konkret anbefaler vi skiftet, når:

Et mønster, vi jævnligt ser:

Teamet sætter bundlen op, deployer manuelt fra en lokal maskine og betragter opgaven som løst. Det første tegn på, at det ikke holder, kommer typisk første gang noget fejler i produktion, og ingen kan svare på, hvad der er ændret siden sidst.


Vores anbefaling er at starte simpelt: manuelle notebooks og jobs er det rigtige udgangspunkt, når man prototyper, eksperimenterer, eller når pipelinen er enkel og overskuelig for hele teamet.


At gøre deployment til et pipeline-step i Azure DevOps eller GitHub Actions kræver, at teamet aftaler en branching-model og en deploy-strategi på tværs af miljøer. Det er der, gevinsten sidder: alle ved, hvad der kører, og ingen deployer manuelt til produktion.


Teams, der springer dette trin over og deployer manuelt, ender typisk med en bundle, der lever i én persons lokale miljø - og som ingen tør røre, fordi historikken mangler.

Er I klar til DABs?

Hvis I kan svare ja til 3 eller flere af disse punkt, så vil DABs og Lakeflow Jobs typisk skabe mere værdi end manuel administration.

Næste skridt

Immeo har vi bygget moderne dataplatforme og data pipelines på Databricks med både DAB og Lakeflow Jobs som grundlag for pipeline-opsætningen. På 60 minutter kortlægger vi tre ting: hvem der deployer til produktion i dag, om development og produktion faktisk opfører sig ens, og hvor I har mest at vinde ved at skifte til CI/CD.

Vil du vide mere?

kontakt
Sebastian Kim Villekjær Principal

+45 2543 7432

skv@immeo.dk

SKV - portræt
breaker