Hva er et stagingmiljø?

Av Weapp · Oppdatert

Et stagingmiljø er en kopi av produksjonsmiljøet der endringer testes under så like forhold som mulig før de slippes ut til virkelige brukere. Det er siste steg før produksjon i kjeden utvikling, test, staging og produksjon: en generalprøve på samme scene, bare uten publikum. Formålet er å fange feil der de ikke kan gjøre skade.

Ordet stagingmiljø dukker opp så snart man snakker om hvordan ny kode kommer trygt ut til brukerne. Det er et enkelt begrep med stor praktisk betydning, og en god indikator på hvor modent et utviklingsteam jobber. Her går vi gjennom hva det betyr, og hvorfor det er viktig for deg som kunde.

Definisjonen

Et stagingmiljø er en kopi av produksjonsmiljøet, bygget for å teste endringer under så like forhold som mulig før de slippes ut til virkelige brukere. Samme programvareversjoner, samme oppsett, samme måte å kjøre på, men ingen reell trafikk og ingen reelle konsekvenser hvis noe går i stykker.

Det inngår i en kjede av miljøer som koden vandrer gjennom: I utvikling skriver utvikleren koden sin lokalt, i test prøves enkeltfunksjoner mens de utvikles, i staging gjøres en realistisk sluttest av helheten, og i produksjon møter løsningen til slutt brukerne sine. Hvert steg ligger nærmere virkeligheten enn det forrige.

Generalprøven: samme scene, uten publikum

Det beste bildet på staging er en generalprøve før en premiere. Skuespillerne står på samme scene, i de samme kostymene, med samme lys og rekvisitter som på premierekvelden. Alt er nøyaktig slik det skal være når det virkelig gjelder. Men salen er tom. Går noe galt, merkes det her, der det ikke koster noe, i stedet for foran publikum.

Akkurat slik fungerer staging. Endringen kjøres i et miljø som speiler produksjon, og teamet kan klikke seg gjennom brukerflytene, se at integrasjonene svarer, og at ingenting uventet skjer. Finner man en feil, rettes den før premieren. Poenget er at en funksjon som ikke virker, skal oppdages av teamet i staging, aldri av en kunde i produksjon.

Et konkret scenario

La oss si at en ny betalingsfunksjon skal legges til i en tjeneste. Utvikleren bygger den og prøver delene i testmiljøet. Før den går i produksjon, legges den i staging, der man kjører en komplett kjøpsflyt fra start til slutt mot testmodusen til betalingsleverandøren. Der oppdager man at e-postkvitteringen ikke sendes i et bestemt tilfelle.

Feilen rettes, flyten kjøres på nytt, og først når alt fungerer i staging, slippes endringen ut i produksjon. Uten staging hadde feilen i stedet blitt oppdaget av den første virkelige kunden som ikke fikk kvitteringen sin, med supporthenvendelser og tapt tillit som resultat. Samme arbeid, men problemet ble fanget opp på riktig side av premieren.

Fellen: reelle personopplysninger i staging

Det finnes en felle som er lett å gå i, og som er ubehagelig når den slår til. For å gjøre staging så virkelighetsnær som mulig er det fristende å fylle miljøet med en kopi av de faktiske produksjonsdataene, inkludert reelle kundeopplysninger.

Problemet er at stagingmiljøer sjelden har samme sikkerhet og tilgangsstyring som produksjon. De er per definisjon testmiljøer, ofte med løsere tilgang slik at flere kan jobbe i dem. Kopierer man reelle personopplysninger dit, havner de et sted uten riktig beskyttelse, noe som er i strid med personvernforordningen (GDPR) og kan bli et dyrt avvik. Løsningen er å bruke avidentifiserte eller oppdiktede data i staging slik at miljøet er realistisk uten at reelle personopplysninger settes i fare.

Slik bruker du dette

Du trenger ikke å kunne sette opp et stagingmiljø, men du bør spørre etter det. Et godt spørsmål til en leverandør er hvordan endringer kommer seg fra kode til produksjon, og hvor de prøves underveis. Et modent team beskriver en tydelig miljøkjede og slipper aldri utestet kode rett ut i produksjon.

Det er verdt å vite at staging ikke erstatter automatiserte tester, men utfyller dem. Testene fanger det man har forutsett, mens staging fanger det uventede i en komplett og virkelighetsnær flyt, altså det som bare viser seg når alle delene kjører sammen. Et stagingmiljø er også det som gjør det trygt å slippe nye versjoner ofte: Jo oftere dere vil forbedre tjenesten, desto mer verdt er et sted der hver endring kan prøves under realistiske forhold før den når kundene.

Mangler staging helt, eller testes kode rett mot virkelige brukere, er det verdt å forstå hvorfor. Vi i Weapp bygger denne typen trygge prosesser som en selvsagt del av systemutviklingen nettopp fordi det billigste stedet å finne en feil alltid er før den når en kunde.

Ofte stilte spørsmål

Hva er forskjellen på staging og produksjon?

Produksjon er miljøet som virkelige brukere møter, med reelle data og reelle konsekvenser. Staging er en så lik kopi som mulig, men uten publikum. Her testes endringer før de slippes videre. Tanken er at hvis noe fungerer i staging, fungerer det i produksjon fordi miljøene er bygget for å speile hverandre.

Trenger alle prosjekter et stagingmiljø?

Ikke alle, men de fleste som har virkelige brukere, har nytte av det. For en liten nettside med få endringer kan det holde med et testmiljø. Så snart driftsstans eller funksjoner som ikke virker, får konsekvenser for virksomheten, blir staging en billig forsikring: et siste sted å oppdage feil før de når kundene, i stedet for etterpå.

Er staging det samme som et testmiljø?

Nei, selv om ordene av og til blandes sammen. Testmiljøet ligger tidligere i kjeden og brukes til å prøve enkeltfunksjoner mens de utvikles, ofte med oppdiktede data. Staging ligger rett før produksjon og skal etterligne produksjonsmiljøet så tett som mulig (samme versjoner, samme oppsett) for en realistisk sluttest.

Får man bruke reelle personopplysninger i staging?

Bare hvis miljøet har samme beskyttelse som produksjon, og det har det sjelden. En vanlig og alvorlig felle er å kopiere reelle kundedata til et dårlig beskyttet stagingmiljø. Da havner personopplysningene et sted uten riktig tilgangsstyring og sikkerhet, noe som er i strid med personvernforordningen (GDPR). Bruk heller avidentifiserte eller syntetiske data.

Hvem har ansvaret for at stagingmiljøet finnes og brukes?

Det er en del av leverandørens driftsopplegg, men for deg som kunde er det verdt å få det bekreftet. Spør hvordan endringer kommer seg fra utvikling til produksjon, og hvor de prøves underveis. Et modent team har en tydelig miljøkjede og slipper aldri utestet kode rett ut i produksjon. Mangler staging helt, er det verdt å spørre hvorfor.