Vegen til felles kodebase, and beyond

Korleis kjem UiT, NTNU og UiO seg over på samme kodebase for Cerebrum, kva utvikling må til, og kva gjer vi etter det?

Status: Utkast

1. Forberedingar før samanslåinga

Før det er mogeleg å ta i bruk samme kodebase, må kvar institusjon tilpasse sine eigne Cerebrum-miljø, slik at dei er så like som det er praktisk å gjere dei. NTNU, UiT og UiO må så bli einige om korleis samarbeidet om ei felles kodebase skal fungere vidare. Oppsummert vil arbeidet innebære at:

Arbeidet med å saman tilpasse Cerebrum-kode og Cerebrum-miljø vil gjerast iterativt, sidan nye utfordringar kan dukke opp undervegs. Gruppa ser for seg fleire fasar:

  1. Grovarbeid: Her vil vi forsøke å gjere dei største og mest vanskelege endringane. Dette dreier seg om å løyse skilnadar i data-modellene, og å få ut forretningslogikk der slik logikk ikkje hører til. Desse endringane er identifisert, og lagt inn i Jira. Her ligg den største byrda på NTNU, då dei ikkje har tatt i bruk nye endringar i datamodeller frå USIT tidlegare. Arbeidet med dette er alt i gang på NTNU.
  2. Finarbeid: Når dei store skilnadane er løyst, vert det enklare å ta fatt på dei mindre endringane. Vi er nøydd å gjere nye kartleggjingar av skilnadar undervegs, etter kvart som endringar gjerast hos kvar institusjon. Dei fleste skilnadane er identifisert, men kun eitt knippe er lagt inn i Jira.
  3. Tilpasningar: Vi må tilpasse og få på plass funksjonalitet som gjer at kodebasane kan slåast saman. Dette dreier seg om å skrive om og tilpasse funksjonalitet som ikkje lar seg slåast saman (t.d. forretningslogikk, logging, changelog, hendelsar), og skrive om driftsvertøy som har divergert så mykje at det ikkje lenger kan benyttast etter samanslåinga (t.d. setup, makedb, migrate_cerebrum_database).
  4. Opprydding: Til sist vil vi omorganisere kode, kartleggje og bli kvitt ubrukt funksjonalitet, og rydde i noko felles teknisk gjeld. Noko av dette arbeidet kan planleggjast som etterarbeid.
  5. Oppdeling: Tenester som ikkje er nært knytta til Cerebrum, eller som ikkje kan reknast som fellestenester, må skiljast ut frå Cerebrum og leggjast i eigne kode-repos. Kode som inneheld lokale tilpasningar for ein institusjon må og flyttast ut. Noko av dette arbeidet kan planleggjast som etterarbeid.

Start: 1. februar 2017
Frist: fredag 30. juni 2017

2. Ved samanslåing

  1. Alle institusjonar må ha utført endringar i sin kodebase, slik at alle kodebasane liknar mest mulig der det er kritisk.
  2. Arbeidsgruppa må løyse alle oppgåver i CRB-1953
  3. UiO set opp felles kodebase:
    • Vi henter inn endringane frå NTNU og UiT til USIT-Cerebrum, og bruker denne som origin for Cerebrum core heretter.
    • Vi set opp relaterte verktøy - NTNU og UiT må få tilgang til Jira og Bitbucket.
  4. Alle institusjonar prodsetter ny kodebase-versjon og verifiserer at den fungerer!
  5. Vi set versjonsnummer for Cerebrum til 1.0.0, og alle oppgraderer til denne.

Usikkerheit rundt ferieavvikling. Ti dagar kan bli for lite for dette, og det er ikkje lurt å gjere desse endringane rett før sommaren, slik at det påvirker studentautomatikk til haust-opptaket.

Start: mandag 19. juni 2017
Frist: lørdag 1. juli 2017

3. Etterarbeid etter samanslåing

Etter at vi har slått saman kodebasane, står vi att med noko teknisk gjeld som må ryddast i:

  • Arbeidsgruppa må fikse alt i CRB-2064.
  • Arbeidsgruppa må få på plass ei felles løysing for å køyre automatiserte testar.
  • Arbeidsgruppa må rydde bort artifaktar/teknisk gjeld som har blitt laga for å utføre samanslåinga.
  • Arbeidsgruppa må lage ei plan for fullføring av arbeid som var starta i forberedinga. Dette dreier seg om oppryddingsoppgåver og arbeid med å skilje tenester og anna kode ut frå Cerebrum.

Start: 3. juli 2017
Frist: 1. desember 2017

4. Vegen vidare

Undervegs vil arbeidsgruppa avdekke behov som er felles for alle institusjonar, og som er anbefalt at får prioritet:

  • Innføre bedre støtte for automatisert testing! Det vi har i dag er mangelfullt, komplisert og tungvindt å bruke, og vert difor ikkje brukt!
Av fhl, jokim
Publisert 17. feb. 2017 09:05 - Sist endret 3. mars 2017 10:05