Dapla Lab

Sist endret

November 20, 2024

Dapla Lab er SSBs arbeidsbenk for statistikkproduksjon og forskning. Løsningen er bygget på INSEE sin plattform Onyxia. Formålet med Dapla Lab er å kunne tilby moderne skybaserte dataverktøy til SSB-ere på en effektiv og enhetlig måte. Dapla Lab gir brukeren en enkel oversikt over hvilke verktøy som tilbys, både internt utviklet programvare og velkjente open-source verktøy. Alle tjenestene kan konfigureres etter brukerens ønsker.

Innlogging

Alle som er på SSBs nettverk kan logge seg inn i Dapla ved å gå inn på nettadressen https://lab.dapla.ssb.no/ og velge Logg inn øverst i høyre hjørne. Figur 1 viser landingssiden som møter brukeren.

Alternativtekst
Figur 1: Landingsside for Dapla Lab

Funksjonalitet

Selv om Dapla Lab er en løsning for å tilby tjenester så er det også en del nyttig funksjonalitet Dapla Lab. Figur 2 viser menyen i Dapla Lab som gir en oversikt over funksjonaliteten som finnes. Under beskriver vi nærmere hvordan man blant annet kan:

  • definere brukernavn og e-post for Git
  • lagre GitHub-token
  • lagre tjenestekonfigurasjon
  • få oversikt over hvilke tjenester man har kjørende
  • pause en tjeneste

Menyen i Figur 2 inkluderer også lenker til andre nettsteder som er nyttig når man jobber med data på Dapla. Meny-innslagene Dapla Manualen, Dapla Ctrl, Google Cloud Console og FAQ er alle lenker til eksterne ressurser.

Alternativtekst
Figur 2: Menyen i Dapla Lab

Hjem

Hjem tar deg til landingssiden i Dapla Lab, slik som vist i Figur 1. Her finner du nyttige lenker til læringsressurser for Dapla, felleskap på Viva Engage og opprettelse av Dapla-team.

Min konto

Når man logger seg inn i Dapla Lab så skjer det SSB-kontoen til brukeren. Under Min konto kan man se informasjon om sin konto og konfigurere noen nyttige verdier knyttet til brukeren din.

Kontoinformasjon

Under denne fanen kan lese ut hvilken bruker-id som er benyttet for innloggingen i Dapla Lab, ditt fulle navn og e-postadresse i Dapla Lab. Informasjonen blir definert ved innlogging og kan ikke endres i Dapla Lab.

Viser fanen for kontoinformasjon under menyen Min konto
Figur 3: Kontoinformasjon under Min konto i Dapla Lab

Git

Under fanen Git kan man definere brukernavn og e-post for Git, og et personlig tilgangstoken for GitHub. Dette vil deretter kunne brukes i tjenester som brukeren starter i Dapla Lab.

Viser fanen for Git-informasjon under menyen Min konto
Figur 4: Git-konfigurasjon under Min konto i Dapla Lab

Grensesnittpreferanser

Under fanen Grensesnittpreferanser kan man tilpasse Dapla Lab til sine preferanser ved å velge om man blant annet ønsker Dark mode eller ikke. I tillegg kan man definere hvilket språk man ønsker i Dapla Lab. Det finnes også avanserte valg for avanserte brukere. F.eks. man ønsker å se hvilke Helm-kommandoer som kjøres i bakgrunnen når man starter en tjeneste.

Viser fanen for grensesnittpreferasner under menyen Min konto
Figur 5: Grensesnittpreferanser under Min konto i Dapla Lab

Tjenestekatalog

Under Tjenestekatalogen ligger alle tjenestene som brukeren kan velge å starte.

Viser tjenestekatalogen i Dapla Lab.
Figur 6: Tjenestekatalogen i Dapla Lab

Figur 6 viser hvilke tjenester som nå er tilgjengelig i Dapla Lab, inkludert en kort beskrivelse av bruksområdet for hver tjeneste. Figur 7 viser hva som møter når de starter Jupyter-tjenesten.

Tjenestekonfigurasjon

Alle tjenester på Dapla Lab kan konfigureres før de startes opp. Trykker man på Start på en av tjenestene i tjenestekatalogen kommer man inn tjenestekonfigurasjon for akkurat den tjenesten. Felles for alle tjenester er at man kan navngi hver tjeneste og velge versjon1, slik som vist under Vennlig navn og Versjon i Figur 7.

Viser tjenestekatalogen i Dapla Lab.
Figur 7: Tjenestekonfigurasjon i Dapla Lab

Ekspanderer man Jupyter konfigurasjoner vist i Figur 7, så får man opp konfigurasjon som er spesifikk for akkurat den tjeneste. Hver tjenestetilbyder vurderer hvilken konfigurasjon som gir mening for den tjenesten de tilbyr.

For programmeringsmiljøer som Jupyter og VS Code kan brukeren velge hvilket team og tilgangsgruppe de skal representere, hvor mye ram og gpu de ønsker, hvor stor diskplass de ønsker, Git/GitHub-oppsett, etc..

I Datadoc-tjenesten har tilbyderen kun valgt å la brukeren velge hvilket team de representerer og versjon av tjenesten. Les mer om tjenestekonfigurasjonen til en tjeneste i dokumentasjonen til tjenesten.

Lagre tjenestekonfigurasjon

Vanligvis vil brukeren ønske å starte en tjeneste med samme konfigurasjon som sist. Dapla Lab tilbyr derfor at du kan lagre en tjenestekonfigurasjon med egenvalgt navn. Etter at du har valgt verdiene du ønsker i tjenestekonfigurasjonen så trykker du på Lagre-ikonet vist i Figur 7. Deretter kan du se dine lagrede konfigurasjoner under Mine tjenester, slik som vist i Figur 8.

Lagrede tjenestekonfigurasjoner i Dapla Lab.
Figur 8: Tjenestekonfigurasjon i Dapla Lab

Dele tjenestekonfigurasjon

Man kan også dele sin tjenestekonfigurasjon med andre i SSB. Det forutsetter at de man deler med har de samme datatilgangene som den som deler. Man kan dele lagrede tjenestekonfigurasjoner ved å gå til Mine tjenester, trykke på de tre prikkene til høyre i tjenesten i ikonet, og deretter Kopier URL-lenke, slik som vist i Figur 9. Deretter er det bare å sende lenken til en kollega, og de kan åpne en likt konfigurert tjeneste med sine tilganger.

Lagrede tjenestekonfigurasjoner i Dapla Lab.
Figur 9: Dele lagret tjenestekonfigurasjon i Dapla Lab
Noe konfigurasjon kan ikke deles

Konfigurasjon som er knyttet brukerkonfigurasjon fra Dapla Lab, f.eks. GitHub-token, må settes manuelt av den man deler konfigurasjon med. Dette vil forhåpentligvis forbedres etter hvert.

Mine tjenester

Under Mine tjenester får man oversikt over hvilke tjenester som er startet av brukeren. Figur 10 viser en bruker som har 3 tjenester kjørende. Her får man informasjon om hvilken tjeneste som er starter, hvor lenge den har kjørt, og muligheten til å pause eller avslutte tjenesten.

Alternativtekst
Figur 10: Oversikt over brukerens kjørende tjenester

Hvis man trykker på søppelkasse-ikonet så avsluttes tjenesten og alt som er lagret inne i tjenesten blir slettet. Hvis man trykker på pause-knappen så bevares alt som brukeren har lagret under $HOME/work, mens alt annet blir slettet.

Viktigheten av å avslutte ubrukte tjenester

En tjeneste som står som aktiv vil reservere ressursene (CPU, GPU, RAM, etc.) som brukeren valgte ved oppstart. Hvis tjenesten ikke benyttes bør derfor brukeren enten avslutte eller pause tjenesten, slik at SSB ikke må betale for ubrukte ressurser.

Monitorering

All monitorering er ikke på plass enda

Innholdet på Overvåkningssiden til tjenestene er fullstendig enda. Når du kommer inn på siden så skal loggene fra tjenesten viser, men dette er ikke på plass enda. Dette jobbes det med å få på plass.

Derimot fungerer Ekstern overvåkning-lenken (se beskrivelse under) og den tar deg til et Grafana-dashboard som viser vanlige metrikker for tjenesten. I tillegg kan man trykke på lenken Helm-verdier som teknisk informasjon om hvilke verdier som ble satt når tjenesten ble startet.

Under Mine tjenester får du oversikt over hvilke kjørende tjenester. Hvis du ønsker å monitorere hvor mye ram, cpu diskplass eller gpu tjenester bruker, så kan du inspisere et ferdig oppsatt Grafana-dashboard. For åpne dashboardet trykker du først på navnet på tjenesten du ønsker å monitorere, slik som vist i Figur 11 (a). Det åpner en side for Overvåkning av tjenesten. På denne siden er det en lenke til et Grafana-dashboard, slik som vist i Figur 11 (b).

(a) Åpne Overvåkningssiden
(b) Åpne Grafana-dashboard
Figur 11: Åpne Grafana-dashboard for for kjørende tjenester

Figur 12 viser hvordan et Grafana-dashboard ser ut.

Alternativtekst
Figur 12: Grafana dashbaordet for en spesifikk tjeneste på Dapla Lab

Datatilgang

Brukere som skal ha tilgang til data fra en tjeneste må først oppgi hvilket team og tilgangsgruppe2 de skal representere. Siden brukere ofte er medlem av flere team, så er dette et viktig sikkerhetstiltak for å sikre at data ikke kobles på tvers av team uten at dette er godkjent av data-ansvarlige.

For å få tilgang til lagringsbøttene i prod-prosjektet til et team, så må man logge seg inn i prod-miljøet til Dapla Lab (https://lab.dapla.ssb.no/). Skal man ha tilgang til lagringsbøttene i test-prosjektet til et team må man logge seg inn i test-miljøet til Dapla Lab (https://lab.dapla-test.ssb.no/). For team som har er et dev-miljø så gjelder følgende dev-miljøet til Dapla Lab (https://lab.dapla-test.ssb.no/).

Bøtter som filsystem

Tjenestetilbyderne i Dapla Lab kan tilby datatilgang til bøtter gjennom å tilgjengeliggjøring av data i bøtter som filsystem inne i tjenesten. Det vil si at man kan referere til data som man er vant til på vanlige filsystem, og man kan bruke biblioteker uten å autentisere seg mot bøtter.

Alle tjenester som tilgjengeliggjør data fra bøtter monterer filsystemet på stien /buckets/. Hvis man åpner en tjeneste med denne løsningen så kan liste ut hvilke bøtter som ble tilgjengeliggjort.

Jobbe med data

Siden Dapla Lab tilbyr å tilgjengliggjøre lagringsbøtter som filsystem inne i tjenesten, så finnes det nå to måter å aksessere data på:

  1. dapla-toolbelt direkte mot bøttene
  2. bruke “vanlige pakker” og referere til filstien som starter med /buckets/
Tilgang til andre sine delt data

Tilgang til andre team sine delte-data kan foreløpig ikke aksesseres som en vanlig filsti under /buckets/. Da må man bruke dapla-toolbelt for lese og skrive til bøttene. Om kort tid vil dette også være tilgjengelig i filsystemet som resten av teamets data.

Miljøer

Det finnes 2 adskilte miljøer for Dapla Lab: prod og test. Tabell 1 viser hvilke url-er som gjelder for de ulike miljøene.

Tabell 1: Oversikt over miljøer og tilhørende url-er for Dapla Lab.

Miljøene er knyttet til datatilgang for prosjektene til Dapla-team. Hvert Dapla-team kan ha ressurser i prod- eller test-miljøet. For å få tilgang til ressursene i et av miljøene må de logge seg inn på tilsvarende miljø i Dapla Lab. Det er f.eks. ikke mulig å aksessere prod-data fra test-miljøet i Dapla Lab og omvendt.

Fotnoter

  1. Det er sjelden behov for å brukere å endre versjon her.↩︎

  2. Hvis en bruker er medlem i både data-admins- og developers-gruppa til et team, så må de velge hvilken av de to gruppene de skal representere i tjenesten som startes.↩︎