MUSIT-evaluering 2019

"Hovedhensikten med evalueringen er å undersøke om resultatene i MUSIT er i tråd med formålet, og hvordan organiseringen og arbeidet fyller formålet på best mulig måte i framtiden." Se mandatet.

I forbindelse med evalueringen fikk USIT følgende bestilling:

I anledning evaluering av MUSIT, har vi mottatt en del dokumentasjon knyttet til teknologivalg etc. for MUSIT. Har dere oppdatert systemdokumentasjon som beskriver «as is» IT-arkitektur, IT-miljø i drift for MUSIT? Det vi spør om i denne omgang er:

  1. IT arkitektur. Teknologi, software, sentrale komponenter, datasentra
    • a. Vi ønsker en oppdatert systematisk oversikt for nytt og gammelt system: Plattform, databaseteknologi, språk, (backend, midware, frontend), søkeindeks, (inkl. versjonsnummer og evt. standarder som benyttes). (PS Jeg laget en egen foreløpig oversikt over det vi har fått av dokumentasjon så langt over det «gamle» og det «nye» IT arkitekturen, se under. Kunne du evt. en annen ressurs i USIT, sett igjennom og tilført riktig informasjon og detaljer?
  2. IT-sikkerhetsarkitektur, inkl. katastrofe og beredskap
  3. Oversikt over hvilke tjenester og applikasjoner og antall brukere, og antall IT-ansatte for MUSIT
  4. Ifm. utvikling fra USIT siden ønsker vi og å se:
    • a. Kravspesifikasjon/bestilling som USIT har mottatt fra MUSIT
    • b. Teknisk kravspesifikasjon
    • c. Arkitektur/løsningsbeskrivelse
    • d. Plan med oversikt over fremdrift på avtalte krav
    • e. Estimater for arbeidet, både opprinnelig og en som gjelder nå

Svarene på bestillingen følger her punkt for punkt:


1. Oppdatert tabell for "Ny IT-arkitektur" med teknologi, programvare og sentrale komponenter

Se kolonnen "Kommentar USIT' for oppdatert informasjon.

Element Teknologi Kommentar/Referanse Kommentar USIT

Plattform

Windows og Linux

 

 

Databaseteknologi

PostgreSQL

Det ble besluttet å gå over til Postgres fra Oracle som database på det nye systemet etter ønske fra USIT og i tråd med IT-arkitekturprosjektbeskrivelse. Ref. Sak_30_03_Orintering_Utvikling_styremote_19april2018

 

Det er ennå ikke lagt konkrete planer for overgang til postgres for det som er utviklet i Oracle. Ref. O_sak_45_05_StatusUtvikling_styremote_30nov2019 (2018?)

Alle nyutviklede moduler vil bruke Postgres. Vi har laget en plan for hvordan migrere magasin- analyse- og konserveringsmodulen til postgres, og estimert det totale arbeidet til 2 månedsverk. Vi har ikke tidfestet planen, men sagt at dette arbeidet vil gå parallelt med arbeidet med utvikling av objektmodulen for marine evertebrater. (Se vedlagte e-post)

Backend

JavaScript

Det ble besluttet i MUSIT styret 06.07.18.2018, å skifte fra Scala til JavaScript språk på backend. Ref. Scala_JavaScript_STyremote_28Juni_svarUSIT.

 

På backend brukes nå TypeScript, en typet variant av JavaScript. Løsningene som er utviklet i Scala lever fint side om side med dette. Ref._sak_45_05_StatusUtvikling_styremote_30nov2019 (2018?)

Drift og vedlikehold av allerede utviklede moduler:

USIT vil naturligvis fortsette å drifte de nylig utviklede modulene (magasin, analyse og konservering) og vedlikeholde Scala-koden som allerede er tatt i bruk. (Per i dag, januar 2018, er det relativt få av museene som benytter de tre modulene). Det får være opp til MUSIT å bestemme når man ev. skal skrive om de eksisterende modulene. Ref. Kommentarer SOO -Teknologivalg MUSIT_NotatUSIT_MarsApril2018.docx

 

Mellomvare

Microservices

I forbindelse med utredning av teknologivalg, ble mikrotjenester (microservices) valgt som mellomvare.

En revurdering av MUSITs datamengde og det at dataene er relativt statiske, tilsa at en samlet monolittisk struktur (alle tabeller lagt inn i samme database) ville være en mer effektiv løsning. Styringsgruppen vedtok i møte 4. mai 2017 at prosjektet skal benytte en monolittisk arkitektur.

 

Frontend

Webapplikasjon skrevet i JavaScript

 

Denne konsumerer tjenester, både eksterne, for eksempel fra Kartverket og Artsdatabanken, og interne tjenester. De interne tjenestene kommuniserer med en Oracle/PostgreSQL- database via backend skrevet i Scala

Brukere logger seg inn med Feide-/Dataporten, og autoriseres med tilganger programmert i systemet.

For å redusere risikoen for feil relatert til tilstandshåndtering i klienten (frontend), samt gjøre det enklere å implementere kompleks datastrømlogikk, ble Redux byttet ut med RxJS. Bruk av RxJS istedenfor Redux gjør komponentene mer tilstandsløse og gir mer effektiv komposisjon av asynkrone operasjoner mot backend.

All frontendkode er portet fra JavaScript til Typescript. Backend er skrevet både i Scala og TypeScript. 

Vi bruker også nyeste versjon av React.

Søkeindeks

Elastic search

Som en del av teknologiutredningen ble det besluttet at ElasticSearch skal benyttes som søkemotor. Det ble besluttet på styringsgruppemøte 4. mai 2017 at prosjektet skulle sette opp en enkel implementasjon av søk på objekter og hendelser i ElasticSearch. Dette arbeidet er påbegynt og forventes ferdig i løpet av høsten (2017).

 

Elasticsearch er i produksjon per i dag, men bundet til versjon 5.6.11.

Koderepository

Bitbucket

Etter Musitseminaret vil en av utviklerne ha hovedansvaret for overgang til fra GitLab til Bitbucket som koderepository. Det er ikke store forskjeller fra GitLab eller GitHub, men fordelen med Bitbucket er sikkerhet og at det brukes av utviklingsmiljøet ellers på Usit. Ellers er ikke Bitbucket veldig ulik GitLab og GitHub.

-  Jenkins er verktøyet som brukes til utrulling av ny kode, med kvalitetssikring av koden før den kommer inn i masterkoden. Masterkoden er den koden som rulles ut, først til utvikling-, deretter test- og til slutt til produksjonsserveren. 

-  Bitbucket og Jenkis må ses i sammenheng, og en av forutsetningene for å bruke Jenkins er at vi har koden i Bitbucket.

 

Ref. O_sak_45_05_StatusUtvikling_styremote_30nov2019

 

Vi har hatt tre repositories, to for backend og ett for frontend. Ett er for TypeScript-kode frontend, ett er for TypeScript-kode backend, og ett for Scala-kode backend.

Vi er I ferd med å slå sammen all TypeScript-kode til et felles repository, slik at vi kan definere og konsumere typedefinisjon for tjenester på ett sted.

All front- og backendkode er flyttet fra GitLab til Bitbucket, bygging gjøres nå i Jenkins. Disse repositoriene vil slettes fra GitLab etter en innkjøringsfase.

Vi har også repositories med dokumentasjon og hjelpeverktøy i GitLab, disse er ennå ikke flyttet til Bitbucket.

Deployment

Jenkins/Ansible og Rundeck

  Disse verktøyene brukes til å automatisere bygging og deployment av løsningen.

2. IT-sikkerhetsarkitektur, inkl. katastrofe og beredskap

Her vises det til USITs Ledelsessystem for informasjonssikkerhet (LSIS) som skulle dekke det meste av det som etterspørres. Det kan tillegges at det foretatt ROS-analyser for både ny og gammel løsning (se ROS-analysene i mappen Dokument), og USIT har inngått separate databehandleravtaler med museene.


3. Oversikt over hvilke tjenester og applikasjoner og antall brukere, og antall IT-ansatte for MUSIT

Gammel løsning

Gammel løsning består av 7 applikasjoner ("tykke" Windows-klienter), som dekker arkeologi, topografisk arkiv, botanikk, etnografi, foto, numismatikk og zoologi. I tillegg finnes det dedikerte program for redigering og import av naturhistorisk materiale, inn-/utlån av naturhistoriske objekt og brukeradministrasjon (se nedlastingssiden for programvare). Merk at f.eks. klienten MusitBotanikk.exe dekker en rekke botaniske fag og samlinger, så som alger, karplanter, lav, mose og sopp.

Ny løsning

Den nye løsningen, som helt og holdent bygger på den oppdaterte arkitekturen (se f.eks. punkt 1.) består av magasin, analyse og konservering i tillegg til et enkelt brukeradmin.-grensesnitt og en modul for dokumentopplasting. Arkitekturen er skissert i følgende modell, utarbeidet av den første innleide IT-arkitekten og på side 37 i rapporten Forprosjekt, IT - arkitektur i MUSIT: Anbefaling av konsept, gjennomføringsstrategi og plan for prosjektoppstart. All autentisering i den nye løsningen skjer via Dataporten/Feide.

Antall brukere varierer fra år til og er bl.a. avhengig av prosjekter i museene, ikke minst antall utgravingsprosjekt ved de arkeologiske avdelingene/museene. Tallet har ligget et sted mellom 500 og 600 hundre registrerte brukere de siste årene.

USIT leverer ca. 9 000 timer utvikling og vedlikehold til MUSIT per år (ca. 6 stillinger). I tillegg påløper det noen timer drift av basis infrastruktur og administrasjon. (NB! Kostnader vedrørende drift av fysisk maskinvare (maskinromleie, strøm, etc.), servere, databaser og lagring kommer i tillegg. Det samme gjelder administrativ støtte (jus, regnskap, IT-sikkerhet) til MUSIT.)


4. Arkitektur, løsningsbeskrivelse, kravspesifikasjoner, framdrift og estimering

Mye av det som etterspørres her, og som fortsatt gjelder, ble utarbeidet i prosjektet Ny IT-arkitektur MUSIT, som ble gjennomført i perioden høsten 2015 - høsten 2017. Prosjektet hadde egen styringsgruppe, ekstern prosjektleder og innleide utviklere som var ansvarlige for arkitektur, løsningsbeskrivelse og teknisk løsning. Det som beskrives nedenfor er først og fremst gjeldende for perioden etter at dette prosjektet ble avsluttet.

a. Kravspesifikasjon/bestilling som USIT har mottatt fra MUSIT

Konserveringsmodul for naturhistorie

Objektmodul

b. Teknisk kravspesifikasjon

Det er ingen kravspesifikasjon utover det som er referert til i forrige punkt.

c. Arkitektur/løsningsbeskrivelse

Backend

Frontend

Dokumentmodul

d. Plan med oversikt over fremdrift på avtalte krav

i) Avvikling av Delphi-klienter

Viser til plan for avvikling av Delphi-klienter, som viser rekkefølgen i utvikling av objektmodulen for de ulike fagområdene innenfor MUSIT. Delphi-klientene kan avvikles når tilstrekkelig del av funksjonaliteten i de gamle Delphi-klientene dekkes i det nye systemet.

ii) Marine evertebrater ferdig

iii) Avvikling av Delphi ferdig

Når tilstrekkelig del av Delphi-funksjonaliteten er dekket av det nye systemet.

e. Estimater for arbeidet, både opprinnelig og en som gjelder nå

i) Marine evertebrater ferdig

Det har vært mange estimater opp i gjennom perioden siden utvikling i ny IT-arkitektur ble satt i gang. En første versjon av marine ser vi for oss å ha i produksjon i september. Vi har som mål å rulle ut versjoner til produksjon jevnlig under utviklingsperioden, slik at personer i referansegruppa for objektmodul kan følge arbeidet etterhvert som det skrider frem. 

Estimat: September 2019

ii) Entomologi ferdig

Entomologi bygger på marine evertebrater, men har funksjonalitet for inn- og utlån som ny funksjonalitet. Det utarbeides i disse dager en beskrivelse av behov for låneapplikasjonen, og før denne er ferdig kan vi ikke gi noe godt estimat.

 

Av MUSIT-core i DS
Publisert 2. mai 2019 10:08 - Sist endret 15. mai 2019 14:45