Hjælp: hvad er kontinuerlig levering

Tidligere vi fortalte om kontinuerlig integration (CI). Lad os fortsætte med kontinuerlig levering. Dette er et sæt softwareudviklingsmetoder. Det hjælper med at sikre, at din kode er klar til implementering.

Hjælp: hvad er kontinuerlig levering
/Pixabay/ blåbudgie / PL

Story

Udtrykket kontinuerlig levering kunne ses tilbage i agilt manifest fra 2001 i begyndelsen af ​​listen over grundlæggende principper: "Prioriteten er at løse kundeproblemer gennem kontinuerlig levering af opdateret software."

I 2010 udgav Jez Humble og David Farley en bog ved løbende levering. Ifølge forfatterne supplerer CD tilgangen Kontinuerlig integration og giver dig mulighed for at forenkle forberedelsen af ​​kode til implementering.

Efter udgivelsen af ​​bogen begyndte tilgangen at vinde popularitet, og på blot et par år blev den næsten universelt accepteret. Ifølge undersøgelse, udført blandt mere end 600 udviklere og it-chefer i 2014, var 97 % af de tekniske ledere og 84 % af programmørerne fortrolige med Continuous Delivery.

Nu er denne tilgang stadig en af ​​de mest populære. Ifølge en undersøgelse fra 2018, der involverer it-fællesskabet DevOps og Jenkins Community, er det bruger halvdelen af ​​de mere end tusinde adspurgte adspurgte.

Hvordan fungerer kontinuerlig levering?

CD-grundlaget er klarheden af ​​koden til implementering. For at udføre denne opgave bruges automatisering af processen med at forberede software til frigivelse. Det skal være standard på tværs af forskellige udviklingsmiljøer, hvilket vil hjælpe med hurtigt at finde svage punkter og optimere dem. For eksempel fremskynde testning.

Et eksempel på en kontinuerlig leveringsproces ser sådan ud:

Hjælp: hvad er kontinuerlig levering

Hvis Continuous Integration-tilgangen er ansvarlig for at automatisere de første to faser, så er Continuous Delivery ansvarlig for de næste to. Processtabilitet sikres blandt andet af systemer Konfigurationsstyring. De overvåger ændringer i infrastruktur, databaser og afhængigheder. Selve implementeringen kan automatiseres eller udføres manuelt.

Der stilles følgende krav til processen:

  • Tilgængelighed af information om klarhed til at gå ind i produktionsmiljøet og klarhed til øjeblikkelig udgivelse (CD-værktøjer tester koden og gør det muligt at evaluere effekten af ​​ændringer i udgivelsen).
  • Overordnet ansvar for det endelige produkt. Produktteamet - ledere, udviklere, testere - tænker på resultatet og ikke kun på deres ansvarsområde (resultatet er en fungerende udgivelse, der er tilgængelig for brugere af produktet).

I cd'er bruges det normalt kode gennemgang, og for at indsamle kundernes meninger - princippet mørk affyring. En ny funktion frigives først til et lille segment af brugere - deres oplevelse af at interagere med produktet hjælper med at finde mangler og fejl, som ikke blev bemærket under intern test.

Hvad er fordelen

Kontinuerlig levering hjælper med at forenkle kodeimplementering, hvilket har en positiv indvirkning på produktiviteten og reducerer sandsynligheden for udbrændthed af medarbejdere. I sidste ende reducerer dette de samlede udviklingsomkostninger. For eksempel hjalp CD et af HP-holdene reducere sådanne omkostninger med 40 %.

Desuden ifølge en undersøgelse fra 2016 (side 28 dokumentet) - virksomheder, der har implementeret CD, løser informationssikkerhedsproblemer 50 % hurtigere end dem, der ikke bruger fremgangsmåden. Til en vis grad kan denne forskel forklares ved ydeevnen af ​​procesautomatiseringsværktøjer.

Et andet plus er accelerationen af ​​udgivelser. Løbende levering på finsk udviklingsstudie hjalp øge kodesamlingshastigheden med 25 %.

Potentielle vanskeligheder

Det første og største problem er behovet for at genopbygge velkendte processer. For at vise fordelene ved den nye tilgang er det værd at skifte til cd gradvist, begyndende ikke med de mest arbejdskrævende applikationer.

Det andet potentielle problem er det store antal kodegrene. Konsekvensen af ​​"forgrening" er hyppige konflikter og yderligere tab af lang tid. Mulig løsning - tilgang ingen grene.

Især i nogle virksomheder opstår de største vanskeligheder med test - det tager for meget tid. Testresultater skal ofte analyseres manuelt, men en mulig løsning kan være at parallelisere testene i de tidlige stadier af CD-implementering.

Du bør også uddanne medarbejderne til at arbejde med nye værktøjer - et foreløbigt uddannelsesprogram vil spare udviklerne kræfter og tid.

Hjælp: hvad er kontinuerlig levering
/flickr/ h.ger1969 / CC BY-SA

Værktøj

Her er et par åbne værktøjer til kontinuerlig levering:

  • GoCD — server til kontinuerlig levering i Java og JRuby on Rails. Giver dig mulighed for at kontrollere hele applikationsleveringsprocessen: build-test-release. Værktøjet distribueres under Apache 2.0-licensen. Du kan finde det på den officielle hjemmeside opsætningsvejledning.
  • Capistrano — en ramme til oprettelse af scripts, der automatiserer implementeringen af ​​applikationer i Ruby, Java eller PHP. Capistrano er i stand til at udføre kommandoer på en fjernmaskine ved at oprette forbindelse til den via SSH. Arbejder med andre kontinuerlige integrations- og leveringsværktøjer, såsom Integrity CI-serveren.
  • Gradle er et multi-platform værktøj, der automatiserer hele applikationsudviklingscyklussen. Gradle arbejder med Java, Python, C/C++, Scala osv. Der er integration med Eclipse, IntelliJ og Jenkins.
  • Drone - CD-platform i Go-sprog. Drone kan installeres on-premise eller i skyen. Værktøjet er bygget oven på containere og bruger YAML-filer til at administrere dem.
  • Spiler — en platform til kontinuerlig kodelevering i multi-cloud-systemer. Googles ingeniører, der er udviklet af Netflix, spillede en stor rolle i udviklingen af ​​værktøjet. Installations instruktioner find det på den officielle hjemmeside.

Hvad skal du læse på vores virksomhedsblog:

Kilde: www.habr.com

Tilføj en kommentar