White paper Styring af testmiljøer almindelig god praksis Søren Beyer Nielsen Ph.D., M.Sc. Pragmatic Consult A/S v. 1.2 Pragmatic Consult A/S Stadagervej 42 2730 Herlev Danmark Tel: 44 92 23 77 Fax: 44 92 23 78 www.pragmaticconsult.com
Indholdsfortegnelse Styring af testmiljøer almindelig god praksis...1 Adskillelse af roller og ansvarsområder...2 Konsistente og integrerede arbejdsgange...3 Sporbarhed af ændringer...4 Parameterstyrede konfigurationer...5 Automatiseret og repetérbar installation...6 Verifikation og overvågning af installationen...6
Styring af testmiljøer almindelig god praksis En standardiseret håndtering af udviklings-, test- og driftsmiljøer er en væsentlig del af en effektiv IT-funktion. Processen fra udvikling til idriftsættelse stiller krav om gentagne installationer af miljøer for at gennemføre kvalitetssikringen af det samlede system. Indledningsvis skal udviklerne i et projekt bruge et eller flere miljøer for at kunne gennemføre udvikling af et modul eller en applikation, som indgår i det samlede system. Det anvendte miljø til udviklingen kan være en kopi af miljøet, som bruges i produktionen, eller det kan være et miljø, som består af de applikationer og databaser, der findes i den seneste branch i versionskontrolsystemet. Når alle moduler/applikationer i et projekt er klar, er der brug for et integrationstestmiljø, hvor leverancerne fra projektet integreres og testes samlet. Integrationstesten omfatter de opdaterede applikations- og databaseversioner, som leveres fra alle udviklerne i projektet og kan eventuelt også omfatte leverancer fra andre projekter, som skal integreres samtidigt med. Når integrationstesten er gennemført med et tilfredsstillende resultat, er der brug for et pre-produktionsmiljø, hvor leverancerne installeres i et driftslignende miljø for at blive sluttestet inden det sættes i produktion. Hvis flere projekter er gennemført parallelt og endnu ikke er blevet integreret, vil de blive integreret i pre-produktionsmiljøet og testet for at verificere, at leverancerne ikke fejler p.g.a. gensidige effekter, samt for at det samlede sæt af nye leverancer kan installeres i driftsmiljøet uden problemer. Når testen i pre-produktionen er gennemført problemfrit, skal den samlede leverance installeres i driftsmiljøet. Figur 1 giver en oversigt over de forskellige miljøtyper, som indgår i processen fra udvikling til idriftsættelse. Side 1
Hyppige installationer Kontrollerede installationer Sikrede installationer Udviklings- Udviklings- miljø miljø Integrationstestmiljø Preproduktionsmiljø Driftsmiljø Figur 1 Oversigt over miljøtyper For at sikre en effektiv styring af miljøerne og kontrol af processen fra udvikling til idriftsættelse, er der en række væsentlige områder, som skal håndteres: Adskillelse af roller og ansvarsområder Konsistente og integrerede arbejdsgange Sporbarhed af ændringer Parameterstyrede konfigurationer Automatiseret og repetérbar installation Verifikation og overvågning af installationen Adskillelse af roller og ansvarsområder Det er almindelig god praksis at opdele roller og ansvarsområder i forbindelse med IT-organisationens processer. I forbindelse med styringen af miljøer sigter adskillelsen af rollerne primært mod at undgå at lave uautoriserede eller uforvarende ændringer i miljøerne. Side 2
Samtidig må det ikke være for besværligt for den enkelte medarbejder, at udføre sine opgaver, da det giver en negativ indvirkning på den samlede proces. Den rette opdeling af opgaver og ansvar skaber den ramme, hvor medarbejderne kan udføre de aktiviteter, som de har ansvar for, uden at påføre risiko til de miljøer, som de ikke har noget med at gøre. IT-organisationen bør vurdere sin opdeling af roller og ansvarsområder i forbindelse med miljøerne. Et eksempel på en almindeligt anvendt og generel regel er, at udviklere aldrig må få tilgang til - endsige have lov til at udføre ændringer i - produktionsmiljøet. Enhver organisation har sine egne krav til sikkerhed, og der er i praksis normalt kompromisser imellem produktivitet og sikkerhed. Afgørende er det, at organisationen er bevidst om, hvilke kompromisser der er taget, og hvilken betydning de har. Idealet er at skabe en understøttet proces omkring miljøhåndteringen, som sikrer en effektiv arbejdsgang og som giver en rettidig frigivelse af applikationsændringer uden at kompromittere sikkerheden eller opdelingen af ansvarsområder. Konsistente og integrerede arbejdsgange IT-systemer består typisk af adskillige applikationer, som i mange tilfælde er fordelt på flere platforme. Typisk er applikationerne knyttet til forskellige grupper, som er placeret forskellige steder i organisationen. Med forskellige applikationsteknologier findes der et naturligt grundlag for, at der udarbejdes flere processer til miljøetablering forskellige steder i organisationen. Hvis processen eller de brugte værktøjer er forskellige, bliver det nødvendigt, at installationer af miljøer kommer til at omfatte flere personer, som er i stand til at håndtere forskellene, da der ellers kan opstå problemer i installationsprocessen. Side 3
Idealet er at benytte en ensartet proces for alle installationer uafhængigt af den anvendte platform og teknologi. Det gør det muligt for IT-organisationen at gennemføre en rettidig og pålidelig frigivelse af applikationer, som sikrer at forretningsmålene bliver nået. Med den rette support kan installationsteamet blive en proaktiv medspiller til applikationsudviklerne ved at sikre, at applikationerne leveres fra udviklingsprocessen på en form, som tilgodeser kravene til en effektiv installation. Konsistent brug af et værktøj, som understøtter arbejdsgangen af installationerne vil sikre, at de involverede grupper i IT-organisationen kan fokusere på deres arbejdsopgaver og ansvarsområder i stedet for at bruge tiden på manuelle procedurer og ad hoc problemløsning. Sporbarhed af ændringer Mange IT-afdelinger stiller i dag krav om sporbarhed for, hvad de har ændret i deres IT-miljøer. Dette gælder specielt m.h.t. installationer af applikationer i driftsmiljøet, hvor kravet kan være eksternt. Den distribuerede natur af dagens applikationer medfører, at det kan være vanskeligt at finde frem til, hvornår de forskellige dele af en applikation er blevet installeret, og hvem der har gjort det. Typisk skal den type information stykkes sammen fra flere forskellige loglister, hvis de overhovedet findes. Ikke alene tager det tid at stykke disse logdata sammen, men da de stammer fra forskellige kilder, er der risiko for, at de ikke er praktisk anvendelige. For at imødegå kravene til sporbarhed vil IT-organisationen være bedre tjent med én enkelt konsistent logliste, som indeholder alle ændringer, der er foretaget i alle miljøer, og specielt ændringer relateret til frigivelsesaktiviteter til driften. Side 4
Parameterstyrede konfigurationer Applikationer, som genereres fra en software-byggeproces, kommer typisk med en tilfældig konfiguration, som kobler applikationen fysisk til bestemte servere eller databaser, eller som indeholder konfigurationsparametre, der ikke passer til installation i andre miljøer. Det medfører, at konfigurationsparametrenes værdier skal ændres, når applikationen skal testes eller sættes i drift, så de passer til de miljøer, hvor der skal installeres. Det er almindelig god praksis, at konfigurationsparametre placeres i separate filer, så de kan ændres, uden at applikationen skal igennem en helt ny byggeproces. Det ændrer dog ikke ved, at parameterværdierne skal tilpasses, hver gang applikationen ændres eller installeres i et nyt miljø. Applikationer indeholder i dag typisk en større mængde konfigurationsparametre, og arbejdet med at finde frem til parametrene, der skal ændres for at kunne installere i et bestemt miljø, kan være besværlig og tidskrævende. Behovet for at gennemføre konfigurationsændringer til hvert enkelt miljø indebærer en risiko for inkonsistente konfigurationer, som medfører fejl eller dårligt fungerende applikationer. Erfarne programmører kan lave hjælpeprogrammer, som via variabelsubstitution udfører opdateringen af konfigurationsværdierne, men disse hjælpeprogrammer er som regel knyttet til hver enkelt applikation og resulterer i en ny konfigurationsfil til hvert enkelt miljø, hvilket ikke er hensigtsmæssigt. For at sikre en fleksibel installation skal konfigurationsparametrene for applikationerne beskrives via parametre, så de er afkoblet fra den fysiske installation. Kun på den måde kan parametrene i konfigurationsfilerne automatisk blive substitueret, når de installeres i forskellige miljøer, uden at det er nødvendigt at gennemføre en ny byggeproces - eller alternativt - at udføre en manuel opdatering af parametrene. Når applikationer ændres fra version til version, skal konfigurationsfilerne tilsvarende opdateres og vedligeholdes under versionskontrol, så gamle versioner kan installeres igen, hvis det bliver nødvendigt at gennemføre en tilbagerulning af en applikation i et miljø. Side 5
Uden parameterstyrede konfigurationer bliver yderligere effektivisering af installationsprocessen væsentligt begrænset, og specielt vil muligheden for at automatisere den forsvinde. Automatiseret og repetérbar installation Håndtering af en installation er ofte en kompliceret proces, som kan involvere adskillige servere, der skal installeres på med individuelle konfigurationskrav, som skal opfyldes. Samtidig indeholder installationsprocessen typisk en større mængde ensartede og tidskrævende operationer, og netop dén kombination gør det effektivt at indføre automatisering. Ved automatisering af de ensartede og tidskrævende opgaver opnås en øget pålidelighed og repetérbarhed i installationsprocessen, hvor der modsat ved manuel håndtering indføres forøget risiko for at indføre fejl. Samtidig kan automatiseringen omfatte en verifikation af, at ressourcerne i miljøet opfylder alle de krav, der betinger installationen. Verifikationen kan desuden udføres allerede, inden installationen gennemføres, så f.eks. krav til lagerplads, performance og brugerrettigheder er opfyldt og til stede i det fysiske miljø. Test af selve installationsprocessen er mulig ved at gennemføre installationen i et pre-produktionsmiljø, som har samme egenskaber som driftsmiljøet. Dermed skabes der en meget høj grad af sikkerhed for, at installationen i driftsmiljøet bliver succesfuld. Verifikation og overvågning af installationen Uanset hvor meget test der udføres før en installation i et test- eller driftsmiljø, vil ændringer til en applikation indebære en risiko for at det samlede system fejler. Fejl kan medføre forsinkelser af leverancerne fra et projekt og i værre tilfælde påvirke den samlede ydelse af forretningskritiske services i driften og dermed udgøre en risiko for serviceniveauet i virksomheden. Side 6
Efter gennemførelse af en installation i et miljø er der derfor god grund til at lave en verifikation af, at såvel ydelse som funktion er som forventet. Ved at sammenholde historien fra frigivelsesaktiviteterne med overvågning af et miljø har IT-organisationen en værdifuld informationskilde, som kan hjælpe med til at finde de bagvedliggende årsager til ydelses- eller funktionsproblemer for en applikation. Via historien kan hele sekvensen af aktiviteter, som har ført til et problem, afdækkes og bruges i problemsøgningen. Med den information tilgængelig kan ydelsen af det samlede system sikres en tilfredsstillende tilstand, så det forventede serviceniveau kan leveres uanset om der er tale om et testmiljø eller driftsmiljøet. Side 7