Da forumet ble oppgradert

Forberedelser

Hardware-nettverket har lenge benyttet versjon 1.3 av Invision Power Board (IPB) som forumløsning. Forumet har fungert tilfredsstillende, men når det finnes nyere versjoner på markedet er det alltid fristende å oppgradere. Og da tenker vi ikke på å oppgradere for oppgraderingens skyld, men fordi det gir mange nye muligheter.

IPB versjon 2 har en rekke nye funksjoner i forhold til hva som finnes i versjon 1. Dessuten legges det ikke lenger ned arbeid i videreutvikling av versjon 1, så alle fremtidige oppdateringer er avhengig av versjon 2 dersom man ønsker å dra nytte av dem.

Allerede tidlig i 2005 bestemte vi oss for å foreta en oppgradering til IPB 2, men dette skulle vise seg å bli en lang prosess.

Med nesten 5 millioner innlegg har Hardware-nettverket en andreplass på listen til Big-Boards.com over norskspråklige forum sortert etter antall innlegg, kun slått av VG. Den desidert største utfordringen med en forumoppgradering fra versjon 1 til versjon 2 baserer seg nettopp på disse enorme mengdene med data i databasen. For i tillegg til at det ligger mange innlegg der fra før kommer det stadig nye. Hvert døgn postes det rundt 6000 innlegg i forumet noe som viser at databasen øker jevnt og trutt, og det er stor aktivitet hele døgnet.

Den store mengden innlegg som ligger der fra før gjør at en oppgradering vil ta lang tid, faktisk mange timer. Samtidig er det alltid brukere som benytter seg av tjenesten, og man ønsker å minimere tiden tjenesten er utilgjengelig for brukerne. Oppgraderingen av den tekniske plattformen innebærer betydelige endringer i databasestrukturen. Dermed er det ikke bare snakk om å legge inn ny programkode som formidler data mellom database og bruker, men også endre definisjonene av databasetabeller og dermed hvilken informasjon som skal kunne lagres.

Trafikkfordelingen på forum.hardware.no gjennom døgnets 24 timer

Tidkrevende testoppgraderinger

De første testoppgraderingene viste at det var flere problemer med å bruke oppgraderingsskriptene som følger med IPB sammen med vårt datasett. I 5 millioner innlegg finnes mange kombinasjoner av tegn som kan sette programkode ut av spill, og selv om oppgraderingsskriptet er testet av andre er det jo ikke sikkert det fungerer for akkurat vårt sett av data.

Etter mange timer med feilsøking, endring av kildekode og ikke minst mange runder med testoppgraderinger begynte vi å få troen på at en oppgradering skulle kunne gjennomføres. Hele oppgraderingsprosessen var delt inn i en rekke trinn hvor noen trinn gikk på databaseendringer, og andre på endring eller utskifting av programkode. Det var spesielt utførelsen av databaseendringene underveis i oppgraderingsprosessen som tok tid. For eksempel var alle endringer som skulle utføres på tabellen med alle de 5 millionene med innlegg (ca. 2,5 GB data) veldig tidkrevende selv på kraftige servere.

Underveis i prosessen hadde vi tilgang til tre ulike servere som kunne benyttes til selve oppgraderingen. De fleste testoppgraderingene ble foretatt på en dual AMD Athlon MP 2100+ med 3 GB minne. Da vi var trygge på at oppgraderingsskriptet fungerte slik vi ønsket, kjørte vi en ny testoppgradering på en kraftigere server, en dual AMD Opterton 275 (dobbelkjerne) med 4 GB minne. Her så vi betydelig forbedring i kjøretid, men fortsatt tok selve behandlingen og tilpasningen av dataene nesten 8 timer. I tillegg til dette måtte vi selvsagt sette av tid til forberedelser, konfigurasjon, testing, lansering og ikke minst sikkerhetskopi underveis i arbeidet.

Den siste serveren, som også ble valgt å bruke under oppgraderingen har noe svakere prosessorkraft, men til gjengjeld mer minne og bedre I/O-muligheter. Dette er en dual AMD Opteron 250 med 8 GB minne og SCSI-baserte harddisker. Fra testoppgraderingene hadde vi registrert at prosessorkraft var mindre viktig enn minne og I/O, og vi valgte derfor å bruke en server med to Opteron 250 med 8 GB minne fremfor en server med to Opteron 275 og 4 GB minne.

Flere feller

Selv om konverteringen av data går etter boka er det mye annet som kan gå galt. Forumet er en sentral tjeneste i nettverket, og er knyttet opp mot flere av våre andre systemer. Noe av det som må taes hensyn til er:

  • det opprettes automatisk en tråd for hver artikkel i publiseringsverktøyet
  • handlevognene i prisguiden baserer seg på brukernavn og passord fra forumet
  • pass.hardware.no inneholder sentral administrering av brukerprofiler som er felles for våre tjenester
  • sist oppdaterte tråder fra forum vises på Hardware.no

I IPB versjon 2 er det innført nytt format for passord. Her er passordene både kryptert og saltet i forhold til versjon 1 hvor passordet kun er kryptert. Dette er jo en forbedring med tanke på sikkerhet, men det innebærer samtidig at vi må tilpasse alle våre eksisterende systemer til den nye passordstandarden som IPB benytter. Målet er fortsatt at brukerne kun skal forholde seg til ett sett med brukernavn og passord uavhengig av hvilken tjeneste man benytter i nettverket.

På neste side kan du lese hvordan oppgraderingen gikk.

Gjennomføringen

Vi bestemte oss for å begynne oppgraderingen kl. 24.00. Dette er et tidspunkt hvor trafikken vanligvis begynner å avta, og gir oss samtidig mye tid før trafikken tar seg opp igjen ved 9-tiden på morgenen. Kl 23.30 troppet 3 personer fra driftsavdelingen opp på kontoret, vel forberedt på en lang natts arbeid. Kl 08.00 neste dag ville ytterligere en person komme på jobb for å hjelpe til med konfigurasjon, testing og feilsøking frem til lansering.

Målet var å arbeide helt til forumet var ferdig oppgradert, og brukerne ble lovet å ha forumet operativt innen kl. 12.00. Dette gav oss en god sikkerhetsmargin i tilfelle noe uventet skulle skje, men vi kunne likevel ikke være helt sikre på at forumoppgraderingen ville lykkes. Det var også grunnen til at forumoppgraderingen ikke ble annonsert i forkant av operasjonen.

Mye venting

Invision Power Board (IPB) versjon 1 ble tatt ned nøyaktig kl 24.00 natt til torsdag 13. oktober. Første steg var å ta sikkerhetskopi av data, legge ut melding om at forumet var tatt ned for vedlikehold, og skru av alle eksterne tjenester som benytter forumdatabasen.

Kl. 01.40 var første steg i oppgraderingsprosessen unnagjort. Denne delen av oppgraderingen oppretter nye tabeller som er innført i IPB2, og oppdaterer tabellstrukturen på de tabellene som er endret fra versjon 1 til 2.

Etter en ny sikkerhetskopi var neste steg å oppdatere brukerprofiler og annet innhold i MySQL-tabellene slik at det følger den nye tabellstrukturen. Blant annet oppdateres 240 000 private meldinger til nytt format. Kjøretiden på skriptet som utførte disse oppgavene var forventet å være rundt 3 timer, og det stemte også med den faktiske kjøretiden på serveren som ble benyttet under oppgraderingen.

Pauseaktiviteter

Ettersom flere av stegene i oppdateringsprosessen tar opptil flere timer var det rom for å gjøre andre ting ved siden av selve oppgraderingen underveis. Det aller meste av forumrelatert arbeid var unnagjort på forhånd, så ved siden av innta obligatorisk føde som Cola og pizza brukte vi tiden både på annet driftsarbeid og pauseaktiviteter.

Siste store steg i oppdateringsprosedyren var en tekstfil med SQL-spørringer mot databasen. Her opprettes det blant annet to nye indekser i posts-tabellen, mens gamle indekser slettes. Denne tabellen inneholder all tekst som er skrevet i forumet opp igjennom historien og består av 2,6 GB data. Bare indeksene knyttet til denne tabellen er på hele 1,5 GB. Dette steget tok forholdsvis lang tid, men kl. 07.12 var vi klare for å gå videre. I forhold til oppgraderingen på serveren med Opteron 275 lå vi nå foran tidskjemaet med vår Opteron 250, fordi den kunne holde hele forumdatbasen i minnet.

På oppløpssiden

En stor huskelapp

Det var nå på morgenkvisten den hektiske jobbing startet. Mye skulle gjøres, og vi satte umiddelbart i gang med importering av tema, konfigurasjon av apache, tilpasning av tilknyttede tjenester, osv. På forhånd hadde vi utpekt dette som den mest kritiske fasen av oppgraderingen ettersom det var vanskelig å teste ut alle disse oppgavene på forhånd og vi hadde allerede jobbet i nesten 8 timer. I etterkant kan vi ikke si annet enn at dette gikk på skinner. Noen mindre feil måtte rettes underveis, men det var ingen av disse som satte oss skikkelig fast.

Kl. 10.34 ble forumet lansert med ingress på forsiden av Hardware.no. Utover dagen ble vi gjort oppmerksom på noen feil som vi rettet fortløpende. Blant annet var det en feil i "Mine innlegg"-funksjonen, og feil i tellingen av antall brukere online. Vi utførte også en del endringer i de nye templatene utover dagen for å gjøre dem mer brukervennlig.

Vi håper dere setter pris på de nye funksjonene og andre forbedringer som finnes i IPB2!

Les også
Diskusjonsforumet oppgradert
Les også
Forumet mot nye høyder
Les også
Tre millioner innlegg passert
Les også
Stor giverglede blant forumbrukerne
Les også
2 millioner innlegg på forumet
Les også
Nye godbiter fra forumet
annonse