utvikling
Fleksibelt og gjenbrukelig: Legg data science i containere
Raskt, enkelt og med åpen kildekode. Det finnes ingen unnskyldning for ikke å legge data science i containere, mener Mikkel Freltoft Krogsholm.
Dockerized data science gir både skalerbarhet og mulighet for å reprodusere resultater. Og så er det billig, sa Mikkel Freltoft Krogsholm på Dansk Automationsselskab (DAu) sin konferanse om analytics, som ble arrangert i København nylig.
Mikkel Freltoft Krogsholm er Full Stack Senior Data Scientist hos Teradata, medstifter av oppstartsbedriften Turbolex og selvutnevnt data-trollmann på Skanderborg Festival.
I alle tre tilfellene brukes containere – nærmere bestemt container-plattformen Docker – som en del av infrastrukturen, forteller han.
Docker-containere minner om, og sammenlignes ofte med, virtuelle maskiner: De gir et isolert miljø, hvor alt det som koden din trenger for å kjøre, er til stede. Dette har store fordeler når det dreier seg om data science, poengterer Mikkel Freltoft Krogsholm.
– I data science bruker vi ofte R for å foreta analyser. Og hvis du har laget den flotteste modellen og oppdaterer én pakke, kan du risikere at hele analyse-oppsettet ditt dør.
Der hvor virtuelle maskiner får allokert en del av den underleggende maskinvaren, bruker en docker-container maskinvare barenår prosessen kjører. Samtidig kan to containere bruke samme versjon av for eksempel Linux og samme versjon av Python, slik at man ikke trenger å lage dobbeltinstallasjoner.
Dette gjør det enkelt å reprodusere en analyse i nøyaktig det miljøet som den opprinnelig ble produsert i.
– Hvis man er en god data scientist, har man versjonert alle ting i for eksempel GitHub. Men hva med systemet og miljøet? Med dette systemet kan du versjonere hele veien ned til det OS-et som du kjørte, og hele infrastrukturen din, sier Mikkel Freltoft Krogsholm.
– Det vil si at du kan legge ned hele miljø ditt, og når sjefen kommer et år senere og sier at han gjerne vil ha kjørt en analyse igjen, kan du bare kjøre docker-imaget ditt og gå ut for å drikke kaffe.
I noen bransjer har du behov for nettopp å vise hvordan du kom frem til et bestemt resultat. Det har Mikkel Freltoft Krogsholm selv opplevd som konsulent i det danske skattevesenet, som legger vekt på alltid å kunne forklare hvordan avgjørelser har blitt foretatt.
Kakeoppskriften
I tillegg til container-infrastrukturen gir Docker tilgang til Docker Hub – et register der mange allerede har lagt Docker-images klare til bruk.
– Forestill dere at alle de programvare-pakkene som dere har lyst til å bruke, finnes som små Lego-klosser, som dere bare skal sette på en plate. I stedet for å du skal sitte og installere database-systemer, tar du bare Lego-klossen og setter den på plata di, forklarer Mikkel Freltoft Krogsholm.
Dette gir stor fleksibilitet, fordi tjenester kan legges til og fjernes fullstendig etter behov, sier han.
– Noen ganger sitter jeg bare og titter på de mest populære klossene på Docker Hub, og så finner jeg noe som jeg kan bruke.
I tillegg kommer Docker Compose. Her kan du med et enkelt dokument vise hvordan du ønsker at miljøet ditt skal se ut. Det gir en tidsgevinst når den komplekse infrastrukturen «bygger seg selv» – mens du drikker kaffe.
– Docker Compose er kakeoppskriften til data science-kaken din, sier Mikkel Freltoft Krogsholm.
Eksempelet ved siden av er en «kakeoppskrift» som har to elementer – rstudio og postgres. Hos Turbolex og Skanderborg Festival er det henholdsvis 17 og 10 elementer på listen, forteller Mikkel Freltoft Krogsholm.
Ingen unnskyldning
Når du tar Docker-konseptet, henter de images som du gjerne vil bruke på Docker Hub, og skriver dem alle sammen inn i en rekkefølge på Docker Compose, får du det som Mikkel Freltoft Krogsholm kaller dockerized data science.
– Dermed har du veldig raskt og veldig enkelt satt opp en fullstendig infrastruktur. Alt er for øvrig åpen kildekode og gratis, så det finnes ingen unnskyldning.
Selv om man ikke er klar til å bygge hele infrastrukturen sin opp rundt containere, kan man bruke Docker til å lage raske testmiljøer, sier Mikkel Freltoft Krogsholm
– I skattevesenet satte vi opp docker-containere som lignet på produksjonsmiljøet. Der gjennomførte vi deretter tester, og hvis alt gikk bra, la vi dem inn i produksjonsmiljøet. Slik kan man også bruke det.
Saken ble først publisert på danske Datatech, og gjøres tilgjengelig på norsk for abonnenter av Digi Ekstra gjennom vår samarbeidsavtale med Teknologiens mediehus/Ingeniøren.