Automatiseret deployment, testning og continuous delivery

Udgivet: December 17, 2019

I en digital verden som hele tiden sætter tempoet op, kan dét at forlade sig på manuelle processer betyde forskellen mellem at overgå dine konkurrenter og at falde bag af dansen.

Forretningsprocesser bør derfor digitaliseres og automatiseres så meget som muligt. I IT- og softwareudvikling er der én vigtig ting, der i høj grad drager fordel af automatisering, og det er deployment - processen med at få ny software eller en opdateret feature til at køre korrekt og være tilgængelig til brug for dens aktive brugere.

“Automatiseret” deployment

Der tales normalt om Automatiseret Deployment i sammenhæng med DevOps (en sammentrækning af "development" og "operations"), der kombinerer og automatiserer processer fra begge dele, med det formål at gøre den samlede udviklingscyklus kortere men mere effektiv, hvilket fører til continuous delivery af software af højnet kvalitet. (Mere om det senere.)

I IT-udviklingens unge dage involverede deployment oprindeligt en udvikler, der manuelt uploadede opdaterede filer til en live server. Med tiden er denne proces så blevet mere avanceret, og flere trin blev føjet til rutinen, for så endelig at forvandle deployment til et møjsommeligt og repetitivt forløb.

Dybest set er automatiseret deployment ét aspekt af DevOps, hvor trinnene, der udgør en almindelig manuel implementeringsproces, er lagt ud i ét tilrettelagt flow, som en computer derefter kan eksekvere uden menneskelig indgriben. Dette forkorter væsentligt den tid, deployment kræver, mindsker risikoen for, at fejl overføres til live-versionen af systemet, og overtager de kedsommelige implementeringsopgaver fra udviklere, der meget hellere vil bruge deres tid på mere værdifuldt programmeringsarbejde.

Continuous integration, continuous delivery og continuous deployment

Hvis du har læst op på DevOps, er du sandsynligvis snublet over et eller alle tre af disse udtryk - Hvad betyder de egentlig?

Continuous integration er en praksis, hvor forskellige udviklere, der arbejder på det samme system, regelmæssigt, sammenfatter deres ændringer og opdateringer i et centralt arkiv, der derefter pakkes og testes automatisk, sådan at fejl fanges i tide, og bliver rettet, før deployment.

Continuous delivery er endnu en DevOps-praksis, som består af continuous integration plus deployment af pakken i et ikke-produktions miljø. Målet med denne praksis er konstant at have den nye version af softwaren i en "implementerbar tilstand".

Endelig bygger continuous deployment på de to andre praksisser med det tilføjede trin, at deployment sker automatisk uden manuel input eller godkendelse. Af disse tre er dette den fuldt automatiserede og mest "hands off" proces.

Hvor continuous deployment er den mest agile proces, afhænger valget af hvad der fungerer bedst for en organisation, stadig meget af dens konstruktion. For eksempel fungerer continuous delivery godt til organisationer, hvor en projektleder eller et andet teammedlem skal godkende ændringer - ikke bare om systemet fungerer korrekt, men også om de modsvarer kundens krav - inden deployment.

I denne artikel vil vi tale om automatiseret deployment, hovedsageligt i forbindelse med continuous delivery, der (i modsætning til continuous deployment) kræver manuel godkendelse af ændringer, inden den faktiske implementering. Selve deploymentforløbet er dog stadig automatiseret, og igangsættes oftest med kun "ét klik" fra en udvikler eller en projektleder.

Fordele ved automatiseret deployment

Deployment er det, der overdrager det produkt eller den feature, som du har arbejdet hårdt for, til dine reelle brugere, som vil betale for eller få glæde af det. Naturligvis vil du gerne optimere denne proces så den bliver så hurtig og fejlfri som muligt. Automatiseret deployment gør dig i stand til netop dét med følgende fordele:

1. Hurtigere time to market. Selvom manuel implementering i sig selv normalt ikke tager så lang tid, er det dog stadig en række trin, der skal tages – I praksis et forhindringsløb, når du har travlt med at få nye features i luften.

Da automatiseret deployment bogstaveligt talt sker med blot et enkelt klik på en knap, kan du udføre langt flere deployments og være i stand til at præsentere nye features og opdateringer for dine brugere hurtigere og oftere. Eftersom de manuelle opgaver fjernes, kan dine udviklere desuden gå videre med at arbejde på andre opdateringer af softwaren, så du konstant kan forbedre dit system.

2. Releases er mindre tilbøjelige til at fejle. Ved manuel deployment kan selv ét forkert trin i processen resultere i systemnedbrud eller nedetid. Denne risiko øges særligt med systemer, der fordrer en kompliceret implementeringsproces, som en udvikler skal huske hver eneste gang.

Derimod er et automatiseret deployment et præcist defineret forløb, der ikke er afhængigt af nogen manuel handling, som skal udføres (bortset fra den allerførste aktivering af deployment i tilfældet med continuous delivery). Og hvis der opstår en fejl i et enkelt trin, stopper programmet automatisk processen og advarer udvikleren, så fejlen kan rettes, inden det endelige deployment.

3. En investering der betaler sig. Automatiseret deployment kræver noget tid og resurser til den indledende opsætning, men gevinsterne på lang sigt opvejer langt investeringsomkostningerne. Udover hurtigere releases og lav fejlrisiko, mindsker automatiseret deployment i høj grad også de omstændelige manuelle opgaver, der kan være en byrde for dit udviklingsteam. Som følge deraf kan de fokusere på de vigtigere ting - Som f.eks. at udvikle bedre løsninger og højne dit systems samlede kvalitet.

Det er værd at bemærke, at automatiseret deployment fungerer bedst, når de implementerede ændringer også testes automatisk – Det setup der sparer mest tid og omkostninger i det lange løb.

Automatiseret deployment og automatiseret testning

Ved continuous delivery (og continuous deployment) arbejder automatiseret deployment og test hånd i hånd så der leveres et problemfrit og strømlinet release-forløb. Faktisk fungerer automatiseret deployment som en "forudsætning" for automatiseret testning sådan, at når det automatiserede deployment-forløb er afsluttet, og ændringerne er i drift, udløses test-scriptet automatisk for at sikre, at der ikke er nogen uopdagede fejl.

Lær mere om automatiseret testning og dets fordele her.

Automatiseret deployment-opsætning

Opsætningen af automatiseret deployment varierer meget fra et projekt til projekt, da hvert projekt typisk har forskellige krav til deployment, der skal tages i betragtning. Sædvanligvis påvirkes disse af faktorer såsom:

  • Den platform du bruger (f.eks. et CMS som WordPress eller Umbraco, eller en e-handelsplatform som Magento)
  • Din serveropsætning
  • Din typiske udviklingscyklus

Automatiseret deployment hos 1902 Software

Vi praktiserer continuous delivery i vores udviklingsprojekter hos 1902 Software. Dette betyder, at ændringer i kode konstant integreres, og udviklere kan afvikle ændringer i vores testmiljø med ét enkelt klik.

Herefter sikrer en QA-tester og projektlederen, at alle opdateringer er i orden, inden det endelige deployment af den nye version til drift.

Hvis du vil vide mere om automatiseret deployment, automatiseret testning eller continuous delivery, og hvordan det kan tjene dine it-projekter, så kontakt os i dag.

 

Seneste artikler

Bliv ringet op af Peter inden for 24 timer og få en uforbeholden samtale om dine behov