Informatie: wat is Continuous Delivery

Eerder hebben we verteld over Continuous Integration (CI). Laten we doorgaan met Continuous Delivery. Dit is een set methoden voor softwareontwikkeling. Het helpt om te verifiƫren of de code klaar is voor implementatie.

Informatie: wat is Continuous Delivery
/ Pixabay / bluebudgie / PL

Geschiedenis

De term continuous delivery was al te zien in het agile-manifest uit 2001, aan het begin van de lijst met belangrijke principes: "Prioriteit is het oplossen van klantproblemen door middel van continue levering van actuele software."

In 2010 publiceerden Jez Humble en David Farley een boek over Continuous Delivery. Het idee van de auteurs is dat CD de aanpak aanvult Continue Integratie en het eenvoudiger maakt om de code voor implementatie voor te bereiden.

Na de publicatie van het boek begon de aanpak aan populariteit te winnen en werd in slechts een paar jaar vrijwel algemeen geaccepteerd. Volgens een enquĆŖte, gehouden onder meer dan 600 ontwikkelaars en IT-managers in 2014, was 97% van de technische leidinggevenden en 84% van de programmeurs bekend met Continuous Delivery.

Deze aanpak blijft nu een van de meest populaire. Volgens een onderzoek uit 2018, waaraan de IT-specialisten in de DevOps- en Jenkins-community deelgenomen hebben, is het gebruikt de helft van de meer dan duizend ondervraagde respondenten.

Hoe Continuous Delivery werkt

De basis van CD is de gereedheid van de code voor implementatie. Voor deze taak wordt automatisering van het proces van softwarevoorbereiding voor release gebruikt. Dit moet standaard zijn voor verschillende ontwikkelomgevingen, wat helpt om sneller zwakke punten te vinden en te optimaliseren. Bijvoorbeeld, om het testen te versnellen.

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

Informatie: wat is Continuous Delivery

Als de eerste twee stadia worden geautomatiseerd door de aanpak Continuous Integration, dan is Continuous Delivery verantwoordelijk voor de volgende twee. De stabiliteit van het proces wordt ook gewaarborgd door configuratiemanagementsystemen. Deze monitoren wijzigingen in infrastructuur, databases en afhankelijkheden. De implementatie zelf kan geautomatiseerd zijn, maar kan ook handmatig worden uitgevoerd.

Aan het proces worden de volgende eisen gesteld:

  • Beschikbaarheid van informatie over gereedheid voor de productieomgeving en gereedheid voor directe release (CD-tools testen de code en bieden de mogelijkheid om de effecten van wijzigingen in de release te evalueren).
  • Algemene verantwoordelijkheid voor het eindproduct. Het productteam - managers, ontwikkelaars, testers - denkt na over het resultaat en niet alleen over hun eigen verantwoordelijkheidsgebied (het resultaat is een werkende release die beschikbaar is voor de gebruikers van het product).

In CD wordt doorgaans toegepast code review, en voor het verzamelen van klantmeningen het principe van dark launching. Een nieuwe functie wordt eerst uitgegeven voor een klein segment van gebruikers - hun ervaring met het product helpt om tekortkomingen en bugs te vinden die niet opgemerkt zijn tijdens interne tests.

Wat zijn de voordelen van

Continuous Delivery helpt bij het vereenvoudigen van de implementatie van code, wat de productiviteit positief beĆÆnvloedt en de kans op emotionele uitputting van medewerkers vermindert. Dit verlaagt uiteindelijk ook de totale ontwikkelingskosten. CD hielp bijvoorbeeld een van de HP-teams deze kosten met 40% te verlagen.

Daarnaast - volgens een onderzoek uit 2016 (pagina 28 Inkomstenstructuur van een PhD-student en Post-Doc aan de EPFL) - lossen bedrijven die CD hebben geĆÆmplementeerd, problemen met informatiebeveiliging 50% sneller op in vergelijking met degenen die deze aanpak niet gebruiken. Dit verschil kan tot op zekere hoogte worden verklaard door de werking van automatiseringsinstrumenten.

Een ander pluspunt is de versnelling van het uitbrengen van releases. In een Finse ontwikkelstudio heeft continue levering helpen de snelheid van de codebuilding met 25% te verhogen.

Potentiƫle complicaties

Het belangrijkste probleem is de noodzaak om gevestigde processen opnieuw te structureren. Om de voordelen van de nieuwe aanpak aan te tonen, is het verstandig om geleidelijk over te stappen naar CD, te beginnen met de minst arbeidsintensievere applicaties.

Een tweede potentiƫle uitdaging is het grote aantal codebranches. Een gevolg van 'vertakking' zijn frequente conflicten en steeds weer groot verlies aan tijd. Een mogelijke oplossing is de aanpak no branches.

. In sommige bedrijven ontstaan de grootste moeilijkheden bij het testen - hieraan gaat te veel tijd verloren. Vaak moeten de testresultaten handmatig worden geanalyseerd, maar een mogelijke oplossing kan parallelle uitvoering van tests in de eerste fasen van de CD-implementatie zijn.

Ook moeten medewerkers worden getraind in het werken met nieuwe tools - een vroege basisopleiding bespaart ontwikkelaars energie en tijd.

Informatie: wat is Continuous Delivery
/ Flickr / h.ger1969 / CC BY-SA

Hulpmiddelen

Laten we enkele open-source tools voor Continuous Delivery opsommen:

  • GoCD — server voor continue levering op Java en JRuby on Rails. Hiermee kan je het hele proces van applicatielevering controleren: build—test—release. De tool wordt verspreid onder de Apache 2.0-licentie. Op de officiĆ«le website kunt u vinden een handleiding voor configuratie.
  • Capistrano — framework voor het maken van scripts die de implementatie van applicaties op Ruby, Java of PHP automatiseren. Capistrano kan commando's uitvoeren op een externe machine door verbinding te maken via SSH. Het werkt samen met andere technieken voor continue integratie en levering, zoals de CI-server Integrity.
  • Gradle — een multiplatformtool die de hele applicatieontwikkelingscyclus automatiseert. Gradle werkt met Java, Python, C/C++, Scala, enz. Het heeft integratie met Eclipse, IntelliJ en Jenkins.
  • Drone — platform voor CD in de programmeertaal Go. Drone kan on-premise of in de cloud worden uitgerold. De tool is opgebouwd uit containers en maakt gebruik van YAML-bestanden om deze te beheren.
  • Spinnaker — platform voor continue codelevering in multi-cloudsystemen. Ontwikkeld bij Netflix, speelden ingenieurs van Google een grote rol in de ontwikkeling van de tool. De installatiehandleiding vindt u op de officiĆ«le website.

Wat te lezen in onze corporate blog:

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster