Codebeez

Blipz on the radar 2022: samenvattingen

Thoughtworks keynote

Data Mesh-concepten in de praktijk

Tech radar begon als een intern hulpmiddel en is inmiddels uitgebreid naar de buitenwereld.

Alexandre Goedert en Roman, beiden van Thoughtworks, bespraken data mesh—een onderwerp dat sinds de publicatie van Zhamaks boek dit jaar veel aandacht heeft gekregen.

Huidig begrip van Data Mesh:

Data mesh wordt over verschillende bronnen vergelijkbaar gedefinieerd, maar met andere accenten:

  • Platformarchitectuur
  • Gedecentraliseerde data-architectuur
  • Strategische benadering van modern databeheer

Hoewel er bij diverse klanten implementatietrajecten lopen, blijven de integratiekosten hoog door aanzienlijke opstartkosten. Vendors richten zich doorgaans op technologie en architectuur in plaats van op de sociale aspecten van adoptie.

Kernconcept:

Data mesh staat voor “een sociotechnische benadering van het beheren en ontsluiten van analytische data op schaal.” Analytische data omvat temporele, historische en geaggregeerde weergaven van bedrijfsfeiten in de loop van de tijd.

Zhamaks boek, uitgebracht in maart 2022, is een natuurlijke evolutie van eerdere benaderingen. De reis van Thoughtworks laat zien dat data sinds 2007 steeds diverser is geworden, met groeiende eisen aan volume en versheid. De huidige architectuur scheidt operationele en analytische datavlakken nog steeds met ETL-pipelines en datagovernance-lagen.

Belangrijkste uitdagingen:

Datalandschappen en gebruikerseisen evolueren voortdurend:

  • Data is sinds 2005 sterk gediversifieerd
  • De vraag naar snellere datatoegang is toegenomen
  • Minder afhankelijkheid van tribal knowledge is nodig
  • Analisten moeten nauwer bij data betrokken zijn
  • Low-code-oplossingen zijn nodig om technische drempels te verlagen

Huidige valkuilen:

  • Mislukken in het schalen van bronnen
  • Mislukken in het schalen van consumers
  • Mislukken in het bootstrappen van dataproducten
  • Mislukken in het verzilveren van datagedreven waarde

Data Mesh-oplossingen:

  • Gedistribueerde domain-driven architectuur
  • Data als product
  • Self-serve data-infrastructuur
  • Federated computational governance

Team Topologies:

Enabling teams faciliteren de adoptie van self-service-platforms voor het onboarden van nieuwe teams.

Domein-dataproducten moeten zijn:

  • Vindbaar
  • Adresseerbaar
  • Zelfbeschrijvend
  • Betrouwbaar
  • Veilig
  • Interoperabel

Elk dataproduct bestaat binnen een domein met input- en outputpoorten die fungeren als modules op domeinniveau, waardoor nieuwe producten eenvoudig kunnen worden toegevoegd met bestaande patronen.

Data Lineage en Discovery:

De aanpak benadrukt eenvoudige vindbaarheid van dataproducten. Nieuwe producten kunnen worden opgezet binnen bekende domeinen, waarbij gevestigde datapatronen worden hergebruikt die creatievlakken scheiden van infrastructuurbeheer- en exploratievlakken.

Data Ethics Canvas:

Het framework balanceert data hoarding tegen data fearing—het verzamelen van ongebruikte data verspilt middelen. Door dataproducten naar infrastructuurniveaus te duwen, wordt alleen de benodigde data per domein verzameld.

Implementatiegereedheid:

Bedrijven zouden al bekend moeten zijn met microservices en domain-driven architectuur. Toch is “een datagedreven cultuur erg belangrijk over 3 verschillende pijlers”:

  • Databeschikbaarheid
  • Datatoegankelijkheid
  • Datageletterdheid-developer portal

Better than the new oil: Sustainable IT on the radar!

Tom Kennes

Tech en data zijn waardevolle producten, maar verbruiken aanzienlijke middelen. Deze presentatie vergrootte het bewustzijn over instituten en tools die IT-duurzaamheid vooruithelpen.

Cloud gebruikt groene energie, maar beperkt mogelijk de toegang van huishoudens tot duurzame bronnen.

Belangrijke bronnen:

  • SDIA - European Alliance for Sustainable IT

Efficiëntieprincipes:

Wet van Koomey: Hardware-efficiëntie verdubbelt elke 18 maanden.

Paradox van Jevons: Efficiëntiewinst in brandstofkosten wordt tenietgedaan door toegenomen verbruik.

Carbon Accounting:

EU-regelgeving verplicht bedrijven vanaf 2024 om energieverbruik te rapporteren. Betrouwbare metingen vereisen verbruiksdata op lager niveau, op CPU- of package-niveau, met RAPL (Running Average Power Limit), momenteel alleen beschikbaar op bepaalde Intel-processors.

Duurzaamheidstools:

Acties voor developers:

  • Verplaats cloudresources naar gebieden met lager verbruik
  • Gebruik het minimaal noodzakelijke aan resources
  • Gebruik Leafcloud of Blockheating
  • Verminder webpage bloat
  • Kies talen met lager verbruik—“Rust en C gebruiken 75x minder resources dan Python voor vergelijkbare code”
  • Optimaliseer de performance van je code
  • Verminder de deployfrequentie

Polars

Ritchie Vink

Polars is een vervangende library voor pandas. Vink, de auteur met een achtergrond in ML en softwareontwikkeling, ontwikkelde het via incubatie door Xomnia.

Motivatie:

Huidige DataFrame-implementaties passen 60 jaar aan RDBMS-ontwerpprincipes niet toe:

  • Bijna alle implementaties gebruiken eager evaluation zonder query-optimalisatie
  • Er treden massale, verspillende materializations op
  • Gebruikers dragen de verantwoordelijkheid voor snelle, geheugenefficiënte compute
  • Parallellisme ontbreekt
  • Pandas blijft grotendeels single-threaded

Pandas erfde NumPy-eigenaardigheden rond strings en missende data. Dask probeert te parallelliseren door CPU-kracht toe te voegen in plaats van de onderliggende problemen aan te pakken.

Polars-architectuur:

Polars fungeert als een frontend over Apache Arrow-geheugenabstracties met een gevectoriseerde parallelle query-engine.

Fundamenten:

Arrow:

  • Columnar in-memory standaard
  • Toekomst van datacommunicatie
  • Elimineert serialisatie-/deserialisatiekosten
  • Maakt gratis pointer-sharing binnen processen mogelijk
  • Arrow2 biedt een native Rust-implementatie

Rust:

  • Reference-counted garbage collection
  • COW (Copy-on-Write) met atomic reference counting
  • Geen mutable aliases (compile-time gecontroleerd)
  • Lock-free mutatie met veilig delen van references
  • Zeer snelle performance

Expression API:

Het ontwerp verkleint het API-oppervlak en ondersteunt tegelijk krachtige expressies die te optimaliseren zijn tot efficiënte execution plans—enigszins vergelijkbaar met PySpark, maar met flexibelere expressies.

Performance:

Polars behaalt de snelste performance op open-source benchmarks. Andere libraries hebben last van de GIL en overhead van stringconversie.

Toekomstige ontwikkeling:

Ondersteuning voor out-of-memory streaming is in ontwikkeling, met demonstraties die volledige CPU-benutting tonen terwijl het geheugengebruik stabiel en laag blijft.


CDK: Are we on the road to infrastructure nirvana?

Nico Krijnen

Cloud Development Kits:

CDK’s maken het mogelijk om infrastructuur te definiëren met programmeertalen in plaats van configuratiebestanden of templates. “Mensen lezen liever code dan YAML-bestanden.”

Code wordt veel vaker gelezen dan geschreven (verhouding 10:1), dus developers zouden moeten optimaliseren voor leesbaarheid. CDK’s maken compacte infrastructuurcode mogelijk die makkelijker te lezen en te wijzigen is.

Herbruikbare infrastructuurblokken:

Is infrastructuur slechts hardware? Wat kan infrastructuur leren van software engineering?

Software verandert; code die makkelijk te lezen is, is makkelijker te wijzigen. Versiebeheer en geautomatiseerde tests vormen vangnetten voor verandering.

CUPID vervangt SOLID:

  • Composable → Geoptimaliseerd voor lezers
  • Unix-filosofie → Code met één doel die samenwerkt
  • Predictable → Gedraagt zich zoals verwacht
  • Idiomatic → Voelt natuurlijk aan
  • Domain based → Code lijkt op de domeintaal en -structuur

De waarde van software ligt in het oplossen van problemen van zakelijke gebruikers. Infrastructuur voegt niet meteen bedrijfswaarde toe, dus door er minder tijd aan te besteden ontstaat meer ruimte voor het creëren van bedrijfswaarde.


Train humans instead?

Vincent van Warmerdam

Warmerdam besprak Explosion, Berlin, spaCy en Prodigy. Twee demonstraties verkenden het opnieuw doordenken van de constructie van ML-systemen.

Deel één: Detectie van creditcardfraude

Met Keras-data voor creditcardfraudedetectie in JupyterLab en pandas-visualisatie via HiPlot—een gigantische grid search-interface. Door datarijen over distributies te markeren en kleuren toe te kennen, ontstond een rudimentaire classifier. Business rules werden visueel gefilterd en met AND-operators gecombineerd, waarmee via scikit-learn-compatibiliteit een benchmarkmodel ontstond.

Deze aanpak toonde modelscores anders dan typische ML-benaderingen. In plaats van “ML soup” te creëren, levert het beter begrijpen van data generaliseerbare regels op.

Framework:

  • Data → Rules → Labels
  • Labels → ML → Rules

Het visualiseren van verschillen tussen modellen en rule-based systemen laat zien wat modellen daadwerkelijk toevoegen.

Deel twee: Human-in-the-loop learning

In plaats van ML-modellen te blackboxen, leer je ze interactief aan. Mensen kunnen modellen tijdens het trainen wegsturen van ethisch of oneerlijk gedrag.

Metrics alleen lijken ontoereikend—de daadwerkelijke voorspellingen tellen zwaarder. Hoe zou het systeem kunnen falen? Datakwaliteit is cruciaal.

Demonstratie-aanpak:

Het verbeteren van niet-optimale embeddings van pretrained image-modellen: dimensionaliteit reduceren via PCA of UMAP om clusters te maken die klasseselectie mogelijk maken en het labelen versnellen.

Met de Prodigy-server: begin met een pretrained model, annoteer data visueel, train een dense layer op pretrained representaties gericht op specifieke taken (bijv. catclassificatie) en visualiseer vervolgens deze getrainde layer op domeinrelevantie.

Kernprincipes:

  1. Annoteer je eigen data
  2. Bouw voort op relatief eenvoudige trucs
  3. Construeer systemen die dit proces faciliteren
  4. Gebruik trucs voor het begrijpen en testen van data
  5. Beschouw interactiviteit als een design pattern

OSINT tips and tricks

Alwin Peppels, Cyberseals

Verkenning van open-source intelligence rond IoT, RF, AV en sloten.

Technieken:

  • Data verrijken
  • Search by exclusion
  • Verschillen monitoren

Tools en methoden:

Maltego combineert het verrijken van entity-data. Google Query-operators richten zich nauwkeurig op specifieke content. Queries op bestandsextensies binnen gerichte domeinen versmallen de resultaten. Google Lens matcht objecten op afbeeldingen losjes en geolokaliseert ze.

Overheidsregisters:

KVK: Informatie over bedrijfseigenaren; eigenaren gebruiken vaak persoonlijke gegevens voor de eerste registratie, zonder zakelijk adres.

Kadaster: Gecombineerd met KVK-data levert het verjaardagen en woningwaarden op.

RDW: Huidige en eerdere informatie over voertuigbezit met geschatte waarden. Afbeeldingen maken het gokken van kentekens mogelijk; gevalideerd tegen RDW-databases levert dat weer nieuwe beeldzoekopdrachten op.

Ongebruikelijke databronnen:

Data breaches:

COMB bracht 3,2 miljard e-mails en wachtwoorden vrij. Data breaches met tot wel 100GB aan data met wachtwoorden, e-mails, gender en taalinformatie zijn vindbaar.

Datalekkage:

Shodan voert IPv4-poortscans uit; onbeveiligde apparaten dumpen screenshots (camera’s, IoT-apparaten). Privédata in het dagelijks leven—zoals het volgen van post—lekt informatie van verzender naar ontvanger.

Het afschermen van mobiele nummers verschilt per site (PayPal, LastPass). Als een sudoku gecombineerd worden de weinige onbekende cijfers raadbaar. Wachtwoord-vergeten-interfaces onthullen soms het wel of niet bestaan van een e-mailadres, wat enumeratie helpt. Vriendsuggesties van Facebook en LinkedIn onthullen telefoonnummers uit contactlijsten.


Keynote 2: Perimeter security is dead

Lechner

Technologie verandert in de loop van de tijd; soms veranderen principes ook.

Het perimeter-concept:

Een perimeter is een gesloten muur rond resources (zoals een kasteel) met een poort voor legale toegang.

Evolutie:

Mainframes: De fysieke perimeter was de ruimte waarin het mainframe stond. Er bestonden terminals, waardoor fysieke beveiliging belangrijk was.

Client-servernetwerken: TCP/IP-netwerken werden later met internet verbonden, wat firewalls vereiste om in- en uitgaand verkeer te filteren—een digitale perimeterbeveiligingsaanpak.

Gedeelde intranet-applicaties: Applicaties verhuisden van lokale desktops naar externe datacenters. VPN gecombineerd met intelligente firewalls beveiligde de connectiviteit.

Huidige situatie: Thuiswerkmodellen leiden al het verkeer via VPN’s met platform-as-a-service, wat enorm volume en diversiteit creëert. Eerdere aanvallen lieten zien dat het filteren van dergelijke packetvolumes lastig is. Perimeters trekken rond complexe cloudservices, kantoorcomputers, externe medewerkers en software-updateservices is onpraktisch.

Alternatieven:

Zero Trust-ontwerp:

  • Vertrouw nooit; verifieer altijd
  • Pas least privilege toe
  • Ga uit van een breach

Applicatiebeveiliging:

  • Versleutel netwerkverkeer
  • Onderhoud backups
Blog