Hulp: wat is Continuous Delivery

eerder wij vertelde over Continue Integratie (CI). Laten we doorgaan met Continuous Delivery. Dit is een reeks softwareontwikkelmethoden. Het helpt ervoor te zorgen dat uw code gereed is voor implementatie.

Hulp: wat is Continuous Delivery
/Pixabay/ blauwe parkiet / PL

Verhaal

De uitdrukking continue levering was terug te vinden in agile manifest uit 2001 aan het begin van de lijst met basisprincipes: “De prioriteit ligt bij het oplossen van klantproblemen door het continu leveren van up-to-date software.”

In 2010 kwamen Jez Humble en David Farley uit het boek door continue levering. Volgens de auteurs is CD een aanvulling op de aanpak Continue integratie en stelt u in staat de voorbereiding van code voor implementatie te vereenvoudigen.

Na de publicatie van het boek begon de aanpak aan populariteit te winnen en binnen een paar jaar werd deze bijna universeel geaccepteerd. Volgens goed, uitgevoerd onder ruim 600 ontwikkelaars en IT-managers in 2014, was 97% van de technische managers en 84% van de programmeurs bekend met Continuous Delivery.

Nu blijft deze aanpak een van de meest populaire. Volgens een onderzoek uit 2018 waarbij de IT-gemeenschap DevOps en de Jenkins Community betrokken waren, is dit het geval toepassingen de helft van de ruim duizend ondervraagde respondenten.

Hoe werkt Continuous Delivery?

De CD-basis is de gereedheid van de code voor implementatie. Om deze taak te volbrengen, wordt gebruik gemaakt van automatisering van het proces van het voorbereiden van software voor release. Het zou standaard moeten zijn in verschillende ontwikkelomgevingen, wat zal helpen om snel zwakke punten te vinden en deze te optimaliseren. Versnel bijvoorbeeld het testen.

Een voorbeeld van een Continuous Delivery-proces ziet er als volgt uit:

Hulp: wat is Continuous Delivery

Als de Continuous Integration-aanpak verantwoordelijk is voor het automatiseren van de eerste twee fasen, dan is Continuous Delivery verantwoordelijk voor de volgende twee. Processtabiliteit wordt onder meer gewaarborgd door systemen configuratiebeheer. Ze monitoren veranderingen in infrastructuur, databases en afhankelijkheden. De implementatie zelf kan worden geautomatiseerd of handmatig worden uitgevoerd.

Aan het proces worden de volgende eisen gesteld:

  • Beschikbaarheid van informatie over de gereedheid om de productieomgeving te betreden en de gereedheid voor onmiddellijke release (CD-tools testen de code en maken het mogelijk om het effect van wijzigingen in de release te evalueren).
  • Algehele verantwoordelijkheid voor het eindproduct. Het productteam - managers, ontwikkelaars, testers - denkt na over het resultaat, en niet alleen over hun verantwoordelijkheidsgebied (het resultaat is een werkende release die beschikbaar is voor gebruikers van het product).

Op cd's wordt het meestal gebruikt code beoordeling, en voor het verzamelen van meningen van klanten - het principe donkere lancering. Een nieuwe functie wordt voor het eerst vrijgegeven aan een klein segment van gebruikers - hun ervaring met de interactie met het product helpt tekortkomingen en bugs te vinden die niet zijn opgemerkt tijdens interne tests.

Wat is het voordeel

Continuous Delivery helpt de implementatie van code te vereenvoudigen, wat een positieve invloed heeft op de productiviteit en de kans op burn-out bij werknemers verkleint. Uiteindelijk vermindert dit de totale ontwikkelingskosten. CD hielp bijvoorbeeld een van de HP-teams verminderen dergelijke kosten met 40%.

Bovendien blijkt uit een onderzoek uit 2016 (pagina 28 document) - bedrijven die CD hebben geïmplementeerd, lossen informatiebeveiligingsproblemen 50% sneller op dan degenen die de aanpak niet gebruiken. Tot op zekere hoogte kan dit verschil worden verklaard door de prestaties van procesautomatiseringstools.

Een ander pluspunt is de versnelling van releases. Continue levering bij Finse ontwikkelingsstudio geholpen verhoog de code-assemblagesnelheid met 25%.

Potentiële problemen

Het eerste en belangrijkste probleem is de noodzaak om bekende processen opnieuw op te bouwen. Om de voordelen van de nieuwe aanpak te laten zien, is het de moeite waard om geleidelijk over te stappen op CD, en niet te beginnen met de meest arbeidsintensieve toepassingen.

Het tweede potentiële probleem is het grote aantal codevertakkingen. Het gevolg van “vertakkingen” is frequente conflicten en verder verlies van een grote hoeveelheid tijd. Mogelijke oplossing - aanpak geen takken.

In het bijzonder doen zich in sommige bedrijven de grootste problemen voor bij het testen: het kost te veel tijd. Testresultaten moeten vaak handmatig worden geanalyseerd, maar een mogelijke oplossing kan zijn om de tests in de vroege stadia van de CD-implementatie parallel te laten lopen.

Je moet werknemers ook trainen om met nieuwe tools te werken - een voorbereidend educatief programma bespaart ontwikkelaars moeite en tijd.

Hulp: wat is Continuous Delivery
/flickr/ h.ger1969 / CC BY-SA

Gereedschap

Hier zijn een paar open tools voor Continuous Delivery:

  • GoCD — server voor continue levering in Java en JRuby on Rails. Hiermee kunt u het volledige leveringsproces van applicaties controleren: bouwen – testen – vrijgeven. De tool wordt gedistribueerd onder de Apache 2.0-licentie. Je kunt het vinden op de officiële website installatiehandleiding.
  • Capistrano — een raamwerk voor het maken van scripts die de implementatie van applicaties in Ruby, Java of PHP automatiseren. Capistrano kan opdrachten uitvoeren op een externe machine door er via SSH verbinding mee te maken. Werkt met andere tools voor continue integratie en levering, zoals de Integrity CI-server.
  • Gradle is een multi-platform tool die de volledige ontwikkelingscyclus van applicaties automatiseert. Gradle werkt met Java, Python, C/C++, Scala, etc. Er is integratie met Eclipse, IntelliJ en Jenkins.
  • dar - CD-platform in Go-taal. Drone kan op locatie of in de cloud worden ingezet. De tool is bovenop containers gebouwd en gebruikt YAML-bestanden om deze te beheren.
  • Spinnaker — een platform voor continue codelevering in multi-cloudsystemen. Ontwikkeld door Netflix, speelden Google-ingenieurs een grote rol bij de ontwikkeling van de tool. Installatie instructies vind het op de officiële website.

Wat kunt u lezen op onze bedrijfsblog:

Bron: www.habr.com

Voeg een reactie