From Ad-Hoc Scripts to Orchestrated Pipelines: Architecting a Resilient ELT Framework for Developer Productivity Metrics
Dit artikel beschrijft de migratie van onbetrouwbare ad-hoc scripts naar een robuust ELT-framework met DAG-orchestration en Medallion-architectuur om de betrouwbaarheid van DevOps-metriekdashboards te waarborgen en organisatorisch vertrouwen te herstellen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een dashboard hebt in je auto dat je vertelt hoe snel je rijdt, hoeveel brandstof je verbruikt en of er een lekke band is. Dat klinkt handig, toch? Maar wat als dat dashboard soms "0 km/u" aangeeft, niet omdat je stilstaat, maar omdat de sensor kapot is en het signaal kwijtraakt? Dan denk je misschien: "Oh, ik ben gewoon even gestopt," terwijl je eigenlijk vastzit in de file.
Dit is precies het probleem dat Yuvraj Agrawal en Pallav Jain bij Adobe hadden met hun Developer Productivity Dashboards. Deze dashboards moeten laten zien hoe goed software-ontwikkelaars werken (bijvoorbeeld: hoe vaak wordt er nieuwe software uitgebracht?). Maar hun oude systeem was zo onbetrouwbaar dat het soms "stil" faalde, waardoor leidinggevenden dachten dat er niets gebeurde, terwijl er juist een groot probleem was.
Hier is hoe ze dit oplosten, vertaald naar een simpel verhaal:
1. Het Oude Probleem: De "Stille Kraker"
Vroeger draaiden ze simpele scripts (zoals een wekker die elke ochtend afgaat) om data op te halen.
- Het probleem: Als die wekker faalde (bijvoorbeeld omdat de website van de leverancier even niet bereikbaar was), deed het script niets. Het gaf geen foutmelding. Het systeem dacht: "Oké, er is geen data, dus er is vandaag niets gebeurd."
- De analogie: Dit noemen ze een "Phantom Zero" (Spook-Nul). Het is alsof je postbode een brief niet bezorgt omdat de deur dicht zit, en hij denkt: "Geen brief, dus er is geen post." Je krijgt dus een briefje met "0 post" in je brievenbus, terwijl er eigenlijk een belangrijk pakketje in had moeten zitten.
2. De Oplossing: Een Strikte Productielijn (ELT & Medallion)
Ze bouwden een nieuw systeem, vergelijkbaar met een superstrakke fabriek in plaats van een losse werkplaats. Ze gebruiken een Medallion Architectuur (Goud, Zilver, Brons).
- Brons (De Ruwe Grondstof): Alles wat ze binnenkrijgen van de bronnen (Jira, GitHub, Jenkins) wordt direct opgeslagen, precies zoals het is. Geen filteren, geen aanpassen.
- Analogie: Dit is de ruwe grondstof die de fabriek binnenkomt. Als er een steen in de aardappels zit, wordt die nu nog niet verwijderd. We bewaren het gewoon voor het geval we later moeten kijken wat er misging.
- Zilver (De Schoonmaak): Hier wordt de data schoongemaakt en gestandaardiseerd. Verschillende tijdszones worden omgezet, en namen worden gecorrigeerd (zodat "J. Doe" op GitHub dezelfde persoon is als "jane.doe" in Jira).
- Analogie: Dit is de wasmachine en strijkijzer. De aardappels worden geschild, de kleding wordt gestreken. Alles ziet er netjes en uniform uit.
- Goud (De Kant-en-Klare Maaltijd): Hier worden de uiteindelijke cijfers berekend voor het dashboard.
- Analogie: Dit is de fijn afgewerkte maaltijd die op het bord ligt, klaar om opgegeten te worden door de managers.
Waarom is dit beter?
Als de definitie van een cijfer verandert (bijvoorbeeld: "Wat telt als een mislukte release?"), hoeven ze niet alles opnieuw op te halen bij de bronnen (wat vaak duur en traag is). Ze kunnen gewoon de "Zilver"-data opnieuw berekenen naar "Goud". Het is alsof je een recept aanpast voor de maaltijd, zonder opnieuw naar de boer te hoeven gaan voor de groenten.
3. De Regisseur: Geen Wekker meer, maar een Chef
In plaats van scripts die op een vast tijdstip draaien (zoals een wekker), gebruiken ze een Orchestrator (Apache Airflow). Dit werkt als een Chef in een restaurant.
- De Chef (DAG): De Chef kijkt niet naar de klok, maar naar de staat van de keuken.
- Vroeger: "Het is 13:00, zet de soep op het vuur!" (Zelfs als de groenten nog niet zijn aangeleverd).
- Nu: "Ik maak pas soep als de groenten (Brons) zijn aangeleverd én schoongemaakt (Zilver) zijn."
- De "Harde Poort": Als de groenten niet aankomen, stopt de Chef de hele lijn. Hij maakt geen soep van niets. Dit voorkomt dat er "Spook-Nul" cijfers in het dashboard belanden.
4. De Alarmbel: Van "Kijken" naar "Klinken"
Vroeger moesten mensen zelf naar het dashboard kijken om te zien of er iets mis was (een "Pull"-model). Dat is als wachten tot je buurman je belt als er brand is.
- Nieuw systeem: Ze gebruiken Change Streams. Dit is alsof je een slimme rookmelder hebt die direct piept zodra er een vlammetje ontstaat.
- Zodra er een nieuw cijfer in het systeem wordt geschreven, krijgt het alarmsysteem direct een seintje. Als er iets mis is, wordt er direct gebeld, zonder dat iemand hoeft te wachten tot de volgende "kijkbeurt".
5. Wat hebben ze geleerd? (De Lessen)
- Bewaar de ruwe data: Als er iets misgaat, kun je terug naar de "Brons"-laag om het opnieuw te doen, zonder opnieuw bij de bron te hoeven vragen.
- Waarschuwing bij "Niks": Het gevaarlijkste is niet dat het systeem crasht, maar dat het werkt terwijl er niets gebeurt. Ze hebben een alarm ingesteld dat piept als er plotseling 90% minder data binnenkomt dan normaal.
- Geen vaste sleutels: Ze gebruiken geen vaste wachtwoorden in hun code (want die verlopen), maar halen ze dynamisch op, zoals een hotel dat elke ochtend een nieuwe sleutelkaart maakt.
Conclusie
Kortom: Adobe is overgestapt van een losse verzameling simpele scripts (die vaak stil faalden) naar een strakke, geautomatiseerde productielijn.
- Vroeger: "Hopelijk werkt het wel."
- Nu: "Als het niet perfect werkt, stopt het systeem en waarschuwt het direct."
Dit zorgt ervoor dat managers de cijfers op hun dashboard vertrouwen. En als je niet vertrouwt op je dashboard, gebruik je het niet, en dan heb je het helemaal niet nodig.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.