Utgreiing av syntetiske data i Cerebrum

Aktivitet for å kartlegge behov og muligheter for å ta i bruk syntetiske data i Cerebrum. Dette vart starta etter innføringa av GDPR og nye behov for staging-miljø som fleire på USIT skal kunne bruke - Preprod-prosjektet.

1   Behov

Behova som dokumentet prøver dekke:

  • Preprod-prosjektet - Prosjektet skal få satt opp eit AD-miljø som er mest mogeleg likt som AD-domena uio.no og uhad.no, med tilhøyrande system. Formålet med miljøet er å unngå at prodmiljøet vert ødelagt av tekniske endringar, td. innføringa av IPSec. Miljøet skal ikkje innehalde reelle persondata.

    Data: Brukarkontoar og grupper som Cerebrum i dag eksporterast til AD-domenet uio.no.

    Krav: Prosjektet har i utgangspunktet veldig lite krav til kvaliteten på syntetiske data, då det er andre delar av miljøet som har fokus for formålet. Behova vil auke etterkvart som andre tenester kobler seg på løysinga, til dømes Exchange. I første runde kan det vere godt nok med ei fil med 10-20 fiktive brukarkontoar og grupper.

    TODO: https://www.usit.uio.no/prosjekter/preprod/arbeidsdokumenter/designdokument.html skisserer muligens fleire behov, til dømes at kvar brukarkonto skal ha mailforward, og det må vere automatikk for å varsle og sperre om gamle passord. Det kan virke som at dei treng ein meir stabil, full Cerebrum-instans? Kanskje det mest nyttige er at KIA drifter ein Cerebrum-instans der på lik linje med dei andre instansane?

  • Akseptansetest av `ADMS <https://jira.usit.uio.no/projects/ADMS/summary>`_ - For at KIA skal kunne ta over og drifte ny integrasjon mellom Cerebrum og AD - AD microservice (ADMS) - må dei kunne køyre mest mogeleg reell testing av løysinga. Dette har stoppa opp fordi vi ikkje har fått satt opp eit reeltt nok testmiljø med kopi av produksjonsdata. Vi treng difor syntetiske data i Cerebrum for at KIA skal kunne akseptanseteste ADMS. (Sjå referat frå møte om akseptansetest av ADMS i etterkant)

    Data: Alt som ADMS er meint å overføre frå Cerebrum til AD. Sidan ADMS bruker CerebrumWS for å hente data betyr dette alt som Cerebrum publiserer i CerebrumWS, pluss meldingar om endringar som sendast til ei meldingskø. Dette inkluderer alle personar, brukarkontoar, OU-er og grupper, inkludert dei fleste attributtar.

    Kvalitet: For å få ein mest mogeleg reell akseptansetest bør datasettet vere så nært opp mot all produksjonsdata som mogeleg. Det er likevel mogeleg med eit enklare datasett, men helst så komplett som mogeleg.

  • Exchange - GMT vurderer å få Exchange inn i preprod. I så fall treng vi ein dialog med dei for kva dei forventer av Cerebrum.

2   Løysingsalternativ

Korleis kan vi generere fiktive data i/for Cerebrum? Vi har fleire alternativ, som kan kombinerast i ulik grad.

  • Utvikle funksjonalitet for å generere syntetiske data. Dette er ressurskrevande, men kan gje veldig bra testgrunnlag når det først er implementert.
  • Fylle inn fiktive data etter kvart behov for testing. Gir låg oppstartskostnad, men gir veldig lite testgrunnlag i starten. Kan likevel vere godt nok for preprod-prosjektet, heilt i starten.
  • Anonymisere eksisterande produksjonsdata. Dette virker det som at vi ikkje har lov til, sidan det ikkje er ekte "syntetiske" data. Det koster litt å få anonymisert fullstendig, og det er alltid ein fare for at noko slepp gjennom. Fordelen er at vi har masse data med ein gang, som likner veldig på prodmiljøet.
  • Importere syntetiske kjeldedata frå kjeldesystema. Dette krever at FS og SAP har laga eigne instansar med syntetiske data, som vi får lov å bruke. Dette er både tidsbesparande for oss, kan gje oss meir testdata, og vi kan kanskje også bidra med å bedre testdekninga i kjeldesystema ved å få lagt inn våre behov der.

3   Løysingsforslag

Løysingar er diskutert mellom driftarar og utviklarar, og vi endte opp med å gå fram forsiktig og gradvis. Så har vi muligheten til å stoppe og snu utan å ha brukt for mykje ressursar.

  1. I første omgang treng preprod ein minimal testgrunnlag:

    1. KIA set opp ein tom Cerebrum-instans for preprod, med tilnærma lik konfig som for UiO, men med minimalt av automatikk og integrasjonar køyrande. I hovudsak trengs bofhd og AD2-integrasjonen.
    2. KIA fyller preprod-CRB med enkle data om grupper, personar og brukarkontoar via enkel source mot bofhd. Source-fila lagrast, til dømes i git, for å kunne gjenskape/tilbakestille databasen ved behov.
    3. Preprod-CRB innlemmast i den vanlege Cerebrum-drifta, men med lågare krav til oppetid og ytelse.
  2. Når ADMS skal testast treng vi bedre testdata, så vi utvider preprod-CRB:

    1. INT lager ei enkel løysing for å provisjonere Cerebrum med meir reelle, men syntetiske, student- og ansattdata. Til dømes ved å mocke FS-API og SAP-WS.

      Ideelt sett kunne vi brukt SAP og FS sine eigne syntetiske data, men dei har ikkje konkrete planar om dette, så vi kan ikkje vente på dette.

    2. KIA set opp meir av automatikken som køyrer på UiO, td. process_students.

    3. INT bør ta i bruk preprod-CRB-databasen for si testing, for å samlast om ein testdatabase og gradvis forbedre testdekninga. Td. ved å kopiere over til lokale kontormaskiner.

    Det er opp til KIA å bestemme kor mykje data som må genererast, for å gje godt nok grunnlag for akseptansetesten av ADMS.

  3. Når andre tenester, som Exchange, kjem inn i preprod må vi utvide Cerebrum med endå meir data, i tillegg til det som allereie eksisterer.

Av jokim
Publisert 9. sep. 2018 20:13 - Sist endret 8. okt. 2018 22:11