Hjälp: vad är kontinuerlig leverans

Tidigare vi berättade om kontinuerlig integration (CI). Låt oss fortsätta med kontinuerlig leverans. Detta är en uppsättning mjukvaruutvecklingsmetoder. Det hjälper till att säkerställa att din kod är redo för distribution.

Hjälp: vad är kontinuerlig leverans
/Pixabay/ blåbudgie / PL

Story

Frasen kontinuerlig leverans kunde ses tillbaka i agilt manifest från 2001 i början av listan över grundläggande principer: "Prioriteten är att lösa kundproblem genom kontinuerlig leverans av uppdaterad mjukvara."

2010 släppte Jez Humble och David Farley en bok genom kontinuerlig leverans. Enligt författarna kompletterar CD metoden Kontinuerlig integration och låter dig förenkla förberedelsen av kod för distribution.

Efter utgivningen av boken började tillvägagångssättet bli populärt och på bara ett par år blev det nästan allmänt accepterat. Enligt undersökning, som genomfördes bland mer än 600 utvecklare och IT-chefer under 2014, var 97 % av de tekniska cheferna och 84 % av programmerarna bekanta med Continuous Delivery.

Nu är detta tillvägagångssätt fortfarande ett av de mest populära. Enligt en studie från 2018 som involverade IT-gemenskapen DevOps och Jenkins Community, är det användningsområden hälften av de drygt tusen tillfrågade.

Hur fungerar kontinuerlig leverans?

CD-basen är kodens beredskap för distribution. För att utföra denna uppgift används automatisering av processen för att förbereda programvara för release. Det bör vara standard i olika utvecklingsmiljöer, vilket hjälper till att snabbt hitta svaga punkter och optimera dem. Till exempel snabba upp testningen.

Ett exempel på en kontinuerlig leveransprocess ser ut så här:

Hjälp: vad är kontinuerlig leverans

Om Continuous Integration-metoden är ansvarig för att automatisera de två första stegen, är Continuous Delivery ansvarig för de nästa två. Processstabilitet säkerställs bland annat av system konfigurationshantering. De övervakar förändringar i infrastruktur, databaser och beroenden. Själva distributionen kan automatiseras eller göras manuellt.

Följande krav ställs på processen:

  • Tillgång till information om beredskap att gå in i produktionsmiljön och beredskap för omedelbar release (CD-verktyg testar koden och gör det möjligt att utvärdera effekten av ändringar i releasen).
  • Övergripande ansvar för slutprodukten. Produktteamet - chefer, utvecklare, testare - tänker på resultatet och inte bara på deras ansvarsområde (resultatet är en fungerande version som är tillgänglig för användare av produkten).

I CD-skivor används det vanligtvis kodgranskning, och för att samla in kunders åsikter - principen mörk lansering. En ny funktion släpps först till ett litet segment av användare - deras erfarenhet av att interagera med produkten hjälper till att hitta brister och buggar som inte märktes under interna tester.

Vad är fördelen

Kontinuerlig leverans hjälper till att förenkla koddistribution, vilket har en positiv inverkan på produktiviteten och minskar sannolikheten för att anställda blir utbrända. I slutändan minskar detta de totala utvecklingskostnaderna. Till exempel hjälpte CD ett av HP-teamen minska sådana kostnader med 40 %.

Dessutom, enligt en studie från 2016 (sida 28 dokumentet) - företag som har implementerat CD löser informationssäkerhetsproblem 50% snabbare än de som inte använder metoden. Till viss del kan denna skillnad förklaras av prestanda hos processautomationsverktyg.

Ett annat plus är accelerationen av utsläppen. Kontinuerlig leverans på finsk utvecklingsstudio hjälpte öka kodmonteringshastigheten med 25 %.

Potentiella svårigheter

Det första och största problemet är behovet av att återuppbygga välbekanta processer. För att visa fördelarna med det nya tillvägagångssättet är det värt att byta till CD gradvis, och inte börja med de mest arbetskrävande applikationerna.

Det andra potentiella problemet är det stora antalet kodgrenar. Konsekvensen av "förgrening" är frekventa konflikter och ytterligare förlust av mycket tid. Möjlig lösning - tillvägagångssätt inga grenar.

I synnerhet i vissa företag uppstår de största svårigheterna med testning - det tar för mycket tid. Testresultat måste ofta analyseras manuellt, men en möjlig lösning kan vara att parallellisera testerna i de tidiga stadierna av CD-implementering.

Du bör också utbilda anställda att arbeta med nya verktyg - ett preliminärt utbildningsprogram kommer att spara ansträngning och tid för utvecklarna.

Hjälp: vad är kontinuerlig leverans
/flickr/ h.ger1969 / CC BY-SA

Verktyg

Här är några öppna verktyg för kontinuerlig leverans:

  • GoCD — Server för kontinuerlig leverans i Java och JRuby on Rails. Låter dig kontrollera hela applikationsleveransprocessen: bygg—test—släpp. Verktyget distribueras under Apache 2.0-licensen. Du kan hitta den på den officiella hemsidan inställningsguide.
  • Capistrano — ett ramverk för att skapa skript som automatiserar distributionen av applikationer i Ruby, Java eller PHP. Capistrano kan utföra kommandon på en fjärrdator genom att ansluta till den via SSH. Fungerar med andra kontinuerliga integrations- och leveransverktyg, såsom Integrity CI-servern.
  • Gradle är ett multiplattformsverktyg som automatiserar hela applikationsutvecklingscykeln. Gradle arbetar med Java, Python, C/C++, Scala, etc. Det finns integration med Eclipse, IntelliJ och Jenkins.
  • Drönare - CD-plattform på Go-språk. Drönare kan distribueras på plats eller i molnet. Verktyget är byggt ovanpå behållare och använder YAML-filer för att hantera dem.
  • Spinnaker — en plattform för kontinuerlig kodleverans i multimolnsystem. Utvecklat av Netflix, Googles ingenjörer spelade en stor roll i utvecklingen av verktyget. Installations instruktioner hitta den på den officiella hemsidan.

Vad du ska läsa på vår företagsblogg:

Källa: will.com

Lägg en kommentar