Klantcase · Actium
Actium: een Databricks-platform gebouwd voor de lange termijn
Actium, een woningcorporatie in Assen, draaide al een tijd op Databricks, maar het platform was duur, kwetsbaar en lastig uit te breiden geworden. Wij bouwden het opnieuw op, en goed: een medaillonarchitectuur, alles in Databricks Asset Bundles, en CI/CD-pijplijnen waarin elke wijziging gekoppeld is aan een user story en beoordeeld wordt door het eigen team van Actium.
Een echt klantproject. Bestandsnamen, werkruimtes en de voorbeeldwijziging in de demo's zijn illustratief.
Een platform dat per ongeluk groeide
Actium is een Nederlandse woningcorporatie in Assen, in Drenthe, verantwoordelijk voor duizenden woningen en de huurders die erin wonen. Het dataplatform draaide op Databricks en voedde de rapportage over woningen, huurcontracten, huren en onderhoud.
Het platform werkte, maar was organisch gegroeid. Notebooks werden direct in de werkruimte aangepast, jobs met de hand ingesteld, en er was geen plek die zei wat er in productie draaide of waarom. Elke nieuwe vraag werd bovenop de vorige gebouwd. Het resultaat was een platform dat meer kostte dan nodig, vaker brak dan nodig, en waar niemand graag aankwam.
Opnieuw ontworpen, vanaf de basis
Het platform had geen nieuwe technologie nodig, maar structuur. Wij ontwierpen het opnieuw volgens de principes van de medaillonarchitectuur: ruwe data in brons, opgeschoonde en gecontroleerde data in zilver, data klaar voor gebruik in goud, met een duidelijke grens tussen elke laag.
Wij herstructureerden de datamodellen zodat ze passen bij hoe Actium echt werkt, rond woningen, huurders, contracten en reparaties, in plaats van bij hoe de oorspronkelijke opzet toevallig gegroeid was. En wij bouwden de pijplijnen opnieuw met onderhoudbaarheid als uitgangspunt: leesbare code, gedocumenteerde transformaties, en niets wat maar één persoon begrijpt.
Alles als code, in één bundle
De grootste verandering was voor de organisatie onzichtbaar. Wij brachten het hele platform onder in Databricks Asset Bundles. Een bundle is een project in Git dat alles beschrijft wat Databricks nodig heeft: de code, de jobs en pijplijnen die die code draaien, de planning, de rekenkracht en de omgevingen waarnaar het uitrolt. Eén configuratiebestand, databricks.yml, houdt het bij elkaar.
Dat verandert hoe een platform beheerd wordt. Er wordt niets meer in de werkruimte bij elkaar geklikt; de bundle is de enige bron van waarheid. Dezelfde bundle rolt uit naar een ontwikkel-, een acceptatie- en een productieomgeving, en alleen de instellingen per omgeving verschillen. Klik hieronder door de bundle, en wissel van omgeving om te zien wat er verandert.
Het hart van de bundle. Het geeft de bundle een naam, neemt de resources op, en legt de omgevingen vast: welke werkruimte, catalogus en identiteit elke omgeving gebruikt.
- Werkruimte
- actium-dev.azuredatabricks.net
- Catalogus
- dev_actium
- Planning
- Gepauzeerd, met de hand gestart
- Draait als
- De ontwikkelaar
Elke wijziging gekoppeld en beoordeeld
Bovenop de bundles zetten wij CI/CD-pijplijnen op in Azure DevOps. Elke wijziging begint als user story op het bord. Het werk gebeurt op een eigen branch, en de pull request is aan die story gekoppeld, zodat iedereen kan zien waarom een regel code veranderd is. Automatische controles valideren de bundle en draaien de tests, het eigen team van Actium beoordeelt de wijziging, en pas daarna wordt die samengevoegd en uitgerold, eerst naar acceptatie en dan naar productie.
Vergelijk hieronder de twee manieren van werken. Klik op een stap om te zien wat er gebeurt.
De pull request is gekoppeld aan de user story. Een branch policy weigert een pull request zonder koppeling.
Elke wijziging heeft een reden, een test en een beoordelaar, en dezelfde bundle gaat van acceptatie naar productie.
Samenwerken, zonder te wachten
De pull requests deden meer dan het platform beschermen. Omdat elke wijziging haar eigen story, tests en uitleg meedraagt, kon het team van Actium ons werk beoordelen wanneer het hun uitkwam, en konden wij hun feedback oppakken zonder overleg ertussen. De samenwerking verliep soepel, bijna zonder dat we elkaar hoefden te spreken.
Natuurlijk hielden wij wel regelmatig contact. Maar die gesprekken konden gaan over prioriteiten en richting, niet over wat er waar veranderd was.
Overgezet zonder onderbreking
Wij brachten de bestaande workloads stap voor stap over naar het nieuwe platform, lieten oud en nieuw naast elkaar draaien en vergeleken de resultaten tot ze overeenkwamen. De dagelijkse rapportage bleef de hele tijd draaien, en de organisatie merkte de overstap niet.
Kost minder, breekt minder
Het resultaat is een Databricks-platform dat minder kost om te draaien, minder vaak breekt, en dat het eigen team van Actium met vertrouwen kan uitbreiden. Elk onderdeel staat in code, elke wijziging heeft een reden, en een nieuwe pijplijn is een pull request, geen project.
Wat wij opleverden
- Een Databricks-platform dat vanaf de basis opnieuw is ontworpen volgens de medaillonarchitectuur, met een duidelijke scheiding tussen ruwe, opgeschoonde en gebruiksklare data.
- Datamodellen die passen bij hoe Actium werkt, niet bij hoe de oorspronkelijke opzet gegroeid was.
- Pijplijnen opnieuw gebouwd voor onderhoudbaarheid: leesbare code en gedocumenteerde transformaties.
- Het hele platform in Databricks Asset Bundles, uitgerold naar ontwikkeling, acceptatie en productie vanuit één bron.
- CI/CD-pijplijnen in Azure DevOps waarin elke pull request gekoppeld is aan een user story, automatisch getest wordt en beoordeeld door het team van Actium.
- Bestaande workloads overgezet naar het nieuwe platform zonder de dagelijkse gang van zaken te onderbreken.
Is uw platform kwetsbaar geworden?
Wij bouwen dataplatforms opnieuw op, zodat uw eigen team ze met vertrouwen kan beheren en uitbreiden.