Software-deployment med plads til forbedring!

Software-deployment med plads til forbedring!

Teamet gør klar til nyt deployment og håber på gunstige forhold!
Teamet gør klar til nyt deployment og håber på gunstige forhold!

Når det kommer til deployment af software til test- og produktionsmiljøer, er der temmelig stor forskel på, hvordan forskellige firmaer gennemfører det og temmelig stor forskel på både indsats og succesrate.

Hos Openminds har vi gennem tiden set mange forskellige måder at deploye software på. Nogle bedre end andre.

De mest udbredte årsager til problemer er:

  • Deploymentprocessen er en tung manuel proces, som tager lang tid.
  • Deploymentprocessen er for kompliceret og svær at gennemføre.
  • Deployment foretages direkte fra udviklingsværktøjerne (IDE’er).
  • IT-systemer omkring deployment er manglefulde eller forældede.

Det fører til disse uønskede konsekvenser:

  • Deployment foretages sjældent, fordi det er vanskeligt og fejlbehæftet.
  • Deployment fejler tit, fordi det er svært at huske og følge deploymentprocessen.
  • Den deployede software indeholder fejl, fordi softwaren ikke er testet godt nok (manglende regressionstest).
  • Deployment kan kun udføres af nøglepersoner i virksomheden.
  • Det er ikke muligt at sige præcist, hvilken software, der er blevet deployet.
  • Det er ikke muligt at sige præcist, hvem der har foretaget et deployment.
  • Det er ikke muligt at rulle tilbage til en tidligere version, hvis det nyeste deployment indeholder kritiske fejl.

Automatisering, automatisering og automatisering

Der er heldigvis bedre måder at gennemføre deployments på, så vi fjerner mange af problemerne helt.

Deploymentprocessen skal automatiseres, og det gør vi ved at etablere en bygge- og deployment-pipeline, også kaldt Continuous Integration eller Continuous Delivery (CI / CD).

Der findes forskellige produkter til at understøtte disse pipelines. Figuren nedenfor illustrerer det generelle princip for en pipeline med en byggeserver og en deploymentserver.

  1. Udviklerne committer kode til version control systemet (VCS).
  2. Byggeserveren trækker automatisk den nye kode ud og forsøger at bygge og teste softwarekomponenten. Hvis det fejler, modtager udvikleren automatisk en mail om fejlen. Det gentages, hver gang vi committer ny kode.
  3. Vi ”tagger” koden i VCS, så der er fuld sporbarhed fra kode til deployment.
  4. Hvis komponenten kan bygges og testes, gøres den tilgængelig for deploymentserveren, og en test eller release manager kan nu vælge at gennemføre deployment til de ønskede miljøer. Deployment gennemføres meget enkelt med et klik eller to.
  5. Deploymentserveren foretager nu automatisk deploy til de ønskede miljøer.

Ved at bruge en bygge- og deployment-pipeline opnår du en lang række fordele:

  • Bygge- og deploymentprocessen er automatiseret og kan gentages igen og igen med samme resultat.
  • Der foretages kontinuerligt test af den kode, udviklerne laver, og du kan opdage fejl tidligt.
  • Softwarepakker er versionerede, og du kan deploye tidligere versioner.

Hos Openminds bruger vi ofte Octopus som deploymentserver. Det gør vi fordi

  • Octopus understøtter roller og er rettighedsbaseret. Dermed kan vi give selve rettigheden til at foretage et deployment til udvalgte personer.
  • Octopus kan ændre en softwarepakke og rette følsomt indhold som fx kodeord, certifikater mm. Følsomme data som kodeord kan krypteres i Octopus, så kun drift eller DevOps personale har adgang.

Kan du genkende nogle af problemerne fra jeres egen deployment? Vil du gerne høre mere om, hvordan en bygge- og deployment-pipeline kan hjælpe med at levere bedre software hurtigere?

Så tag fat i os nu.

Michael Martinsen

Mail: mma@openminds.dk
Mobil: +45 6169 6779

Læs mere

Seneste blogindlæg

Har du helt styr på protokolhåndtering

Når man udvikler services, ser jeg desværre alt for ofte, at man, uden rigtigt at være bevidst om det, får syet jakken fast i huden. Dén talemåde kender du måske ikke?

Effektiv opgavestyring i jeres it-udvikling

De fleste softwareprojekter benytter sig af en eller anden form for opgavestyring, hvor man kan oprette, organisere og ændre status på opgaver.

Bachelorprojekt med Vores Elnet er i mål

Nu er det bachelorprojekt, vi har stået fadder til i samarbejde med Vores Elnet kommet i mål. Projektet handlede om at få lavet en forretningsproces for håndtering af fejl i forbindelse med aflæsninger – og automatisere processen.