Hvad er et stagingmiljø?

Af Weapp · Opdateret

Et stagingmiljø er en kopi af produktionsmiljøet hvor ændringer testes under så realistiske forhold som muligt før de frigives til rigtige brugere. Det er det sidste trin i kæden udvikling, test, staging, produktion: en generalprøve på samme scene, bare uden publikum. Formålet er at fange fejl der hvor de ikke kan gøre skade.

Ordet stagingmiljø dukker op så snart man taler om hvordan ny kode kommer sikkert ud til brugerne. Det er et enkelt begreb med stor praktisk betydning og et godt fingerpeg om hvor modent et udviklingsteam arbejder. Her er hvad det betyder og hvorfor det er vigtigt for dig som kunde.

Definitionen

Et stagingmiljø er en kopi af det skarpe produktionsmiljø, bygget til at teste ændringer under så vidt muligt de samme forhold før de frigives til rigtige brugere. Samme versioner af softwaren, samme opsætning, samme måde at køre på, men ingen rigtig trafik og ingen rigtige konsekvenser hvis noget går i stykker.

Det indgår i en kæde af miljøer som koden bevæger sig igennem: I udvikling skriver udvikleren sin kode lokalt, i test afprøves enkelte funktioner mens de bygges, i staging laves en realistisk slutprøve af helheden, og i produktion møder løsningen til sidst sine brugere. Hvert trin ligger tættere på virkeligheden end det forrige.

Generalprøven: samme scene, intet publikum

Det bedste billede på staging er en generalprøve før en premiere. Skuespillerne står på samme scene, i samme kostumer, med samme lys og rekvisitter som på premiereaftenen. Alt er præcis som det skal være når det gælder. Men salen er tom. Går noget galt, opdages det her, hvor det ikke koster noget, i stedet for foran publikum.

Præcis sådan fungerer staging. Ændringen køres i et miljø som spejler produktion, og teamet kan klikke sig igennem flowene og se at integrationerne svarer og at intet uventet sker. Finder man en fejl, bliver den rettet før premieren. Pointen er at en ødelagt funktion skal opdages af teamet i staging, aldrig af en kunde i produktion.

Et konkret scenarie

Lad os sige at en ny betalingsfunktion skal tilføjes en tjeneste. Udvikleren bygger den og afprøver delene i testmiljøet. Før den går live, lægges den i staging, hvor man kører et rigtigt købsflow fra start til slut mod betalingsleverandørens testtilstand. Her opdager man at kvitteringsmailen ikke bliver sendt i et bestemt tilfælde.

Fejlen rettes, flowet køres igen, og først når alt virker i staging, frigives ændringen til produktion. Uden staging ville fejlen i stedet være blevet opdaget af den første rigtige kunde der ikke fik sin kvittering, med supporthenvendelser og tabt tillid til følge. Samme arbejde, men problemet blev fanget på den rigtige side af premieren.

Fælden: rigtige personoplysninger i staging

Der findes en fælde som er let at gå i og ubehagelig når den klapper. For at gøre staging så virkelighedstro som muligt er det fristende at fylde det med en kopi af de rigtige produktionsdata, inklusive skarpe kundeoplysninger.

Problemet er at stagingmiljøer sjældent har samme sikkerhed og adgangsstyring som produktion. De er per definition et testmiljø, ofte med løsere adgang så flere kan arbejde i dem. Kopierer man rigtige personoplysninger derind, havner de et sted uden den rette beskyttelse, og det er i strid med GDPR og kan blive en dyr hændelse. Løsningen er at bruge afidentificerede eller opdigtede data i staging så miljøet er realistisk uden at skarpe personoplysninger sættes på spil.

Sådan bruger du det

Du behøver ikke kunne sætte et stagingmiljø op, men du bør spørge efter det. Et godt spørgsmål til en leverandør er hvordan ændringer kommer fra kode til skarp drift og hvor de afprøves undervejs. Et modent team beskriver en tydelig miljøkæde og frigiver aldrig utestet kode direkte i produktion.

Værd at vide er at staging ikke erstatter automatiske tests, men supplerer dem. Testene fanger det man har tænkt over på forhånd mens staging fanger det uventede i et helt og virkelighedstro flow: den slags der først viser sig når alle dele kører sammen. Et stagingmiljø er også det der gør det trygt at frigive ofte: Jo oftere I vil forbedre tjenesten, desto mere værd er et sted hvor hver ændring kan afprøves under realistiske forhold før den når kunderne.

Mangler staging helt, eller testes koden direkte på rigtige brugere, er det værd at forstå hvorfor. Vi hos Weapp bygger den slags sikre flows som en selvfølgelig del af systemarbejdet netop fordi det billigste sted at finde en fejl altid er før den når en kunde.

Ofte stillede spørgsmål

Hvad er forskellen på staging og produktion?

Produktion er det skarpe miljø som rigtige brugere møder, med rigtige data og rigtige konsekvenser. Staging er en kopi der ligner produktion så meget som muligt, men uden publikum: Her testes ændringer før de frigives videre. Tanken er at hvis noget virker i staging, virker det i produktion fordi miljøerne er bygget til at spejle hinanden.

Har alle projekter brug for et stagingmiljø?

Ikke alle, men de fleste der har rigtige brugere, har gavn af det. For en lille hjemmeside med få ændringer kan et testmiljø være nok. Så snart nedetid eller ødelagte funktioner får konsekvenser for forretningen, bliver staging en billig forsikring: et sidste sted at opdage fejl før de når kunderne i stedet for bagefter.

Er staging det samme som et testmiljø?

Nej, selvom ordene nogle gange blandes sammen. Testmiljøet ligger tidligere i kæden og bruges til at afprøve enkelte funktioner mens de bygges, ofte med opdigtede data. Staging ligger sidst før produktion og skal efterligne det skarpe miljø så tæt som muligt, med samme versioner og samme opsætning, så slutprøven bliver realistisk.

Må man bruge rigtige personoplysninger i staging?

Kun hvis miljøet har samme beskyttelse som produktion, og det har det sjældent. En almindelig og alvorlig fælde er at kopiere skarpe kundedata til et svagt beskyttet stagingmiljø. Så havner personoplysninger et sted uden de rette adgangsrettigheder og den rette sikkerhed, og det er i strid med GDPR. Brug hellere afidentificerede eller syntetiske data.

Hvem har ansvaret for at stagingmiljøet findes og bliver brugt?

Det er en del af leverandørens driftsopsætning, men det er værd at få bekræftet som kunde. Spørg hvordan ændringer kommer fra udvikling til produktion, og hvor de afprøves undervejs. Et modent team har en tydelig miljøkæde og frigiver aldrig utestet kode direkte i skarp drift. Mangler staging helt, er det værd at spørge hvorfor.