DataOps i praksis

19.06.2023 | 5 min lesetid
Emneknagg: #dataops

I praksis kan man si at DataOps er delt inn i automatisering, kontinuerlige leveranser, kvalitetsstyring og samarbeid. Vi ser på hva dette egentlig betyr.

De fire hovedområdene i DataOps

Automatisering

Automatisering er en viktig del av DataOps og brukes på mange områder for å forbedre effektivitet og redusere risiko for feil:

  1. Datainnsamling og datatransformasjon: Automatiserte skript og verktøy kan hente data fra forskjellige kilder, identifisere feil i data og transformere data til et format som er egnet for analyse.
  2. Test og validering: Automatiserte testprosesser bidrar til å sikre datakvalitet, og kan inkludere alt fra syntaksvalidering til mer komplekse logiske tester. Her tar stadig flere i bruk data observability-verktøy som Great Expectations.
  3. Orkestrering: Automatisering brukes til å koordinere og administrere arbeidsflyt og dataflyt. Orkestreringsverktøy som Airflow kan automatisere en serie av prosesser, som datalasting, datarengjøring, datatransformasjon og datavalidering, i riktig rekkefølge og på riktig tidspunkt.
  4. Overvåking: Overvåkingsverktøy kan sørge for å automatisk spore og rapportere på ytelse, feil, og andre viktige metrikker i sanntid. Dette gjør det mulig å raskt oppdage og rette opp problemer.
  5. Modellutvikling og -implementering: CI/CD-verktøy som Git og Azure DevOps gir kontroll over videreutvikling av modeller og transformasjoner mellom miljøer. Automatiserte prosesser kan også brukes til å trene, validere og distribuere maskinlæringsmodeller.
  6. Dokumentasjon: Automatisering kan forenkle dokumentasjonsprosessen på flere måter. Det kan brukes til å generere metadata, noe som gir bedre forståelse av dataene. Det kan også brukes til å lage kode- og API-dokumentasjon direkte fra kildekoden, sikre oppdaterte endringslogger, og spore dataens livssyklus (data lineage).
  7. Dataplattform og dataprodukter som kode: En forutsetning for automatisering er at mest mulig er skrevet som kode, inkludert infrastruktur- og tjenesteoppsett gjennom verktøy som Terraform (Infrastructure as Code - IaC), transformasjonslogikk gjennom verktøy som Dbt og Delta Live Tables (Data as code - DaC) og logikk knyttet til avansert analyse gjenom verktøy som Jypiter (Notebooks).

Kontinuerlige leveranser

CI/CD står for “Continuous Integration” (kontinuerlig integrasjon) og “Continuous Delivery” (kontinuerlige leveranser). Det innebærer praksiser som sikrer at du kan produksjonssette endringer på data og dataapplikasjoner på en pålitelig og trygg måte fortløpende.

  1. Continuous Integration (CI): Dette er en praksis der utviklere ofte (flere ganger daglig) integrerer deres individuelle kodeendringer tilbake i hovedkoden (main branch). Hver integrasjon testes deretter automatisk for å oppdage feil så tidlig som mulig.
  2. Continuous Delivery (CD): Dette er en utvidelse av CI, hvor de nye kodeendringene blir klargjort for utrulling til test eller produksjon etter å ha bestått tester. Endringene kan vurderes manuelt gjennom code reviews og gjerne også automatisk.

Kvalitetsstyring

Kvalitetsstyring involverer en rekke teknikker for å sikre at dataene som brukes er nøyaktige, pålitelige og nyttige, og at sentrale kapabiliteter virker etter hensikten:

  1. Automatisert testing: Automatisert testing brukes for å kontinuere sjekke kvaliteten på dataene og transformasjonene som behandles i CI/CD-prosessen, og verifisere at de er i samsvar med forventede kriterier.
  2. Kvalitetsmålinger: Kvalitetsmålinger eller måltall brukes til å kvantifisere kvaliteten på dataene når de er i produksjon. Dette området kalles “data observability”, og er på sterk fremmarsj som en egen komponent innen dataplattformer.
  3. Overvåkning: Dataflyter og systemer overvåkes kontinuerlig for å oppdage eventuelle problemer som oppstår, og inkluderer rutiner for å raskt komme i gang med feilretting (mange ganger gjennom utviklerne som laget logikken i utgangspunktet)
  4. Datakataloger: Datakataloger kan brukes til å dokumentere metadata om dataene, inkludert kvalitetsinformasjon og tilgangskontroll. Data lineage-verktøy brukes for å spore dataens opprinnelse og transformasjoner, noe som bidrar til å opprettholde og forstå kvaliteten gjennom hele dataens livssyklus.
  5. Dialog om forretningsbehov: Kvalitetsstyring innebærer også tett samarbeid mellom forskjellige teammedlemmer - for eksempel data engineers, dataanalytikere og brukere- for å sikre at dataene og løsninger oppfyller forretningsbehovene.

Samarbeid

I stedet for å dele utviklings- og driftsansvar mellom ulike team, fokuserer DataOps på å integrere disse funksjonene for å oppnå raskere leveranser av data og dataprodukter. Generelt får vi økt effektivitet om vi har full åpenhet rundt utvikling og prioritering av backlog, og at denne gjøres i fellesskap i de ulike leveranseteamene.

Her er noen hovedprinsipper knyttet til samarbeid:

  1. Dataleveranser som gir forretningsverdi: Tverrfunksjonelle team eid og ledet av forretningsressurser jobber sammen på levere det som skal til for å få de effektene som ønskes fra dataleveransene. Det krever utvikling av datagrensesnitt, transformasjoner, datasett, ML-algoritmer med mer, men også involvering av brukerne, opplæring og prosessendringer.
  2. Dataplattform-team som leverer gode bruker- og utvikleropplevelser: Et dedikert dataplattform-team samarbeider tett med sine kunder - brukere og utviklere - for å levere best mulig tjenester. Data, gitt krav til tilganger mv, skal raskt kunne utnyttes og utvikles mot.

Trender innen DataOps

Flere trender driver fremtiden til DataOps, inkludert integrasjon, utvidelse og observabilitet.

1. Fusjon med andre datadisipliner

DataOps vil i økende grad trenge å samvirke og støtte relaterte praksiser knyttet til data og anvendelse av data. Gartner har identifisert MLOps, ModelOps og PlatformOps som komplementære tilnærminger for å håndtere ulike måter å bruke data på. MLOps er rettet mot utvikling og versjonering av maskinlæring, og ModelOps fokuserer på modellering, trening, eksperimentering og overvåking. Gartner karakteriserer PlatformOps som en omfattende AI-orkerstrasjonsplattform som inkluderer DataOps, MLOps, ModelOps og DevOps.

2. Utvidet DataOps

AI begynner å hjelpe til med å administrere og orkestrere datainfrastrukturen selv. Datakataloger utvikler seg til utvidede datakataloger og analyser til utvidede analyser emd ulike AI-baserte funksjoner. Lignende teknikker vil gradvis bli anvendt på alle andre aspekter av DataOps-pipelinen, f.eks automatisert code review og automatisert domumentasjon.

3. Data observability

DevOps-samfunnet har i mange år brukt ytelsesstyringsverktøy som er styrket av observabilitetsinfrastruktur for å hjelpe til med å finne og prioritere problemer med applikasjoner. Leverandører som Acceldata, Monte Carlo, Precisely, Soda og Unravel utvikler sammenlignbare verktøy for data observabilitet som fokuserer på datainfrastrukturen selv. DataOps-verktøy vil trolig i økende grad bruke dataobservabilitetsdata for å optimalisere DataOps-flyter.



Magne Bakkeli

Magne har over 20 års erfaring som rådgiver, arkitekt og prosjektleder innen data & analytics, og forstår godt forretningsmessige og tekniske problemstillinger.