Eerder hebben we 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.
/ Pixabay / /
Geschiedenis
De term continuous delivery was al te zien in 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 over Continuous Delivery. Het idee van de auteurs is dat CD de aanpak aanvult 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 , 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 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:

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 . 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 , en voor het verzamelen van klantmeningen het principe van . 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 40% te verlagen.
Daarnaast - volgens een onderzoek uit 2016 (pagina 28 ) - 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 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 .
. 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.

/ Flickr / /
Hulpmiddelen
Laten we enkele open-source tools voor Continuous Delivery opsommen:
- ā 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 .
- ā 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.
- ā een multiplatformtool die de hele applicatieontwikkelingscyclus automatiseert. Gradle werkt met Java, Python, C/C++, Scala, enz. Het heeft integratie met Eclipse, IntelliJ en Jenkins.
- ā 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.
- ā 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 .
Wat te lezen in onze corporate blog:
Bron: habr.com
