Fakta: Hvad er Continuous Delivery

Tidligere fortalte vi om de undersøgelser, der ligger til grund for de populære råd om, hvordan man "lærer at lære". om Continuous Integration (CI). Lad os fortsætte med Continuous Delivery. Dette er et sæt af softwareudviklingsmetoder. Det hjælper med at sikre, at koden er klar til udrulning.

Fakta: Hvad er Continuous Delivery
/ Pixabay / bluebudgie / PL

Historik

Udtrykket continuous delivery kunne ses allerede i agile-manifestet fra 2001 i begyndelsen af listen over grundlæggende principper: "Prioritet er at løse kundens problemer gennem kontinuerlig levering af relevant software."

I 2010 udgav Jez Humble og David Farley en bog om Continuous Delivery. Efter forfatternes hensigt supplerer CD-tilgangen Continous Integration og gør det lettere at forberede koden til udrulning.

Efter udgivelsen af bogen begyndte tilgangen at vinde popularitet og blev i løbet af få år næsten almennyttig. Ifølge en undersøgelse, der blev udført blandt over 600 udviklere og IT-ledere i 2014, var 97% af de tekniske ledere og 84% af programmørerne bekendt med Continuous Delivery.

I dag er denne tilgang stadig en af de mest populære. Ifølge en undersøgelse fra 2018, der involverede IT-specialistfællesskabet DevOps and Jenkins Community, får den bruger halvdelen af de mere end tusinde adspurgte respondenter.

Hvordan fungerer Continuous Delivery

Basis for CD er klarheden af koden til udrulning. For at udføre denne opgave bruges automatisering af softwareforberedelsesprocessen til udgivelse. Det skal være standardiseret for forskellige udviklingsmiljøer, hvilket hjælper med hurtigere at finde svagheder og optimere dem. For eksempel at fremskynde testning.

Et eksempel på Continuous Delivery-processen ser således ud:

Fakta: Hvad er Continuous Delivery

Hvis de første to faser automatiseres af Continuous Integration-tilgangen, så er de næste to dækket af Continuous Delivery. Stabiliteten i processen sikres også gennem konfigurationsstyringssystemer. De overvåger ændringer i infrastrukturen, databaserne og afhængighederne. Selve udrulningen kan automatiseres eller udføres manuelt.

Processen har følgende krav:

  • Tilgængelighed af information om klarheden til produktion og beredskab til umiddelbar udgivelse (CD-værktøjer tester koden og giver mulighed for at vurdere effekten af ændringerne i udgivelsen).
  • Fælles ansvar for det endelige produkt. Produktteamet — ledere, udviklere, testere — fokuserer på resultatet, ikke kun deres eget ansvarsområde (resultatet er en fungerende udgivelse, der er tilgængelig for brugerne af produktet).

I CD anvender man typisk code review, og til at indsamle kundernes meninger — princippet dark launching. En ny funktion frigives først til en lille gruppe brugere — deres erfaring med produktet hjælper med at finde fejl og bugs, som ikke blev opdaget under intern testning.

Hvad er fordelene ved

Continuous Delivery hjælper med at forenkle implementeringen af koden, hvilket positivt påvirker produktiviteten og reducerer risikoen for medarbejdernes følelsesmæssige udbrændthed. I sidste ende sænker det også de samlede udviklingsomkostninger. For eksempel hjalp CD et af HPs teams med at reducere disse omkostninger med 40%.

Derudover — ifølge en undersøgelse fra 2016 (side 28 dokument) — løser virksomheder, der har implementeret CD, problemer med IT-sikkerhed 50% hurtigere sammenlignet med dem, der ikke bruger metoden. I nogen grad kan denne forskel forklares med brugen af automatiseringsværktøjer.

Endnu en fordel er en hurtigere frigivelse af versioner. I det finske udviklingsstudio hjalp den kontinuerlige levering med at øge hastigheden på kodekompilering med 25%.

Potentielle udfordringer

Det første og væsentligste problem er nødvendigheden af at omstrukturere de eksisterende processer. For at vise fordelene ved den nye tilgang bør man gradvist overgå til CD, startende med mindre ressourcekrævende applikationer.

Det andet potentielle problem er det store antal kodedele. Konsekvensen af «forkning» er hyppige konflikter og tab af meget tid. En mulig løsning er tilgangen no branches.

. Især i nogle virksomheder opstår hovedproblemerne ved testning — det tager for meget tid. Testresultaterne skal ofte analyseres manuelt, men en mulig løsning kunne være at parallelisere testene i de tidlige faser af CD-implementeringen.

Det er også vigtigt at træne medarbejderne i at arbejde med de nye værktøjer — en grundlæggende indføring kan spare udviklerne tid og kræfter.

Fakta: Hvad er Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Værktøjer

Lad os nævne nogle åbne værktøjer til Continuous Delivery:

  • GoCD — server til kontinuerlig levering på Java og JRuby on Rails. Muliggør kontrol over hele leveringsprocessen: build—test—release. Værktøjet distribueres under Apache 2.0-licensen. På den officielle hjemmeside kan man finde guiden til opsætning.
  • Capistrano — en ramme til at skabe scripts, der automatiserer udrulning af applikationer på Ruby, Java eller PHP. Capistrano kan udføre kommandoer på en ekstern maskine ved at oprette forbindelse via SSH. Det fungerer sammen med andre værktøjer til kontinuerlig integration og levering, såsom CI-serveren Integrity.
  • Gradle — et multiplatforms værktøj, der automatiserer hele udviklingscyklussen for applikationer. Gradle arbejder med Java, Python, C/C++, Scala osv. Der er integration med Eclipse, IntelliJ og Jenkins.
  • Drone — en platform til CD i Go. Drone kan implementeres on-premise eller i skyen. Værktøjet er bygget på containere og bruger YAML-filer til at administrere dem.
  • Spinnaker — en platform til kontinuerlig levering af kode i multi-cloud systemer. Udviklet af Netflix, spillede ingeniører fra Google en stor rolle i udviklingen af værktøjet. Du kan finde installationsvejledningen på den officielle hjemmeside.

Hvad du kan læse på vores virksomhedsbog

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster