Close

Wat is continue implementatie?

Continue implementatie (CD) komt je softwareteams en klanten ten goede. Ontdek wat het is, wat de voordelen, best practices en meer zijn.

Headshot van Sten Pittet
Sten Pittet

Mede-auteur


Continue implementatie (CD) is een softwarereleaseproces waarbij gebruik wordt gemaakt van geautomatiseerde tests om te valideren of wijzigingen in een codebase correct en stabiel zijn voor onmiddellijke autonome implementatie in een productieomgeving.

De releasecyclus van de software heeft zich in de loop der tijd ontwikkeld. Het oude proces om code van de ene naar de andere machine te verplaatsen en te controleren of het naar verwachting werkt, was vroeger een proces dat veel fouten bevatte en veel middelen vergde. Nu kunnen tools dit hele implementatieproces automatiseren, waardoor technische organisaties zich kunnen concentreren op de belangrijkste bedrijfsbehoeften in plaats van op de overheadkosten op de infrastructuur.

Afbeelding van de continue implementatiecyclus | Atlassian CI/CD

Continue implementatie vs. continue levering


Het onderscheid tussen continue implementatie en continue levering kan verwarrend zijn vanwege de naamgeving. Ze zijn allebei afgekort als CD en hebben zeer vergelijkbare verantwoordelijkheden. Levering is de voorloper van Implementatie. Bij levering is er een laatste handmatige goedkeuringsstap vóór de release van de productie.

Het volgende is een geheugensteun om het onderscheid tussen beide te onthouden. Beeld je in dat je een pakketje krijgt van je favoriete online winkel. Als je op het pakketje wacht, coördineer je dat met een bezorgdienst. Dit is de leveringsfase. Zodra het pakket succesvol is aangekomen, open je het pakket en bekijk je de inhoud om er zeker van te zijn dat het aan je verwachtingen voldoet. Als dat niet het geval is, kan het worden afgewezen en teruggestuurd. Als het pakket correct is, ben je klaar om het te 'implementeren' en de nieuwe aankoop te gebruiken!

In de leveringsfase zullen ontwikkelaars de wijzigingen in de code bekijken en samenvoegen, die vervolgens in een artefact worden verpakt. Dit pakket wordt vervolgens verplaatst naar een productieomgeving waar het wacht op goedkeuring om te worden geopend voor implementatie. In de implementatiefase wordt het pakket geopend en beoordeeld met behulp van een systeem van geautomatiseerde controles. Als de controles niet slagen, wordt het pakket afgewezen.

Als de controles zijn geslaagd, wordt het pakket automatisch in productie genomen. Continue implementatie is de volledige pipeline voor geautomatiseerde software-implementatie van begin tot eind.

Oplossing bekijken

Software bouwen en gebruiken met Open DevOps

Gerelateerd materiaal

Meer informatie over geautomatiseerd testen

Diagram van de stappen in een levenscyclus voor continue implementatie | Atlassian CI/CD

Wat zijn de voordelen van continue implementatie?


Continue implementatie biedt ongelooflijke productiviteitsvoordelen voor softwareontwikkelingsteams. Met de combinatie van DevOps en continue implementatie kunnen teams releases aanzienlijk versnellen. Aangezien implementatiepipelines automatisch geactiveerd worden bij elke wijziging, kunnen teams zich sneller ontwikkelen. Als het team een idee heeft voor een nieuw product of nieuwe functie, kan dat idee al bij de klant zijn zodra de code is doorgevoerd. Door continue implementatie kunnen teams kleine hoeveelheden wijzigingen doorvoeren, waardoor releases minder riskant zijn en gemakkelijker opgelost kunnen worden als zich een probleem voordoet.

Vanuit zakelijk oogpunt stelt continue levering een bedrijf in staat om te reageren op veranderende markteisen door snel nieuwe ideeën en functies te implementeren en te valideren.

Tools voor continue implementatie


Als je eenmaal gebruikmaakt van geautomatiseerd testen, is het een goed idee om dat te koppelen aan een testdekkingstool die je een idee geeft van hoeveel van je codebase wordt gedekt door je testsuite.

Het is goed om te streven naar een dekking van meer dan 80%, maar pas op dat je een hoog dekkingspercentage niet verwart met een goede testsuite. Een hulpmiddel voor de dekking van de code helpt je om niet-geteste code te vinden, maar uiteindelijk zal de kwaliteit van je tests het verschil maken.

Als je nog maar net bent begonnen, haast je dan niet om 100% dekking van je codebase te krijgen, maar gebruik in plaats daarvan een testdekkingstool om uit te zoeken welke cruciale onderdelen van je aanvraag nog niet zijn getest en begin daar.

Geautomatiseerd testen

De meest cruciale afhankelijkheid voor continue implementatie is geautomatiseerd testen. In feite hangt de hele keten van continue integratie, levering en implementatie ervan af. Geautomatiseerd testen wordt gebruikt om regressie te voorkomen wanneer nieuwe code wordt geïntroduceerd en kan handmatige tests van nieuwe codewijzigingen vervangen.

Doorlopende implementaties

Het onderscheidende kenmerk tussen continue implementatie en levering is de geautomatiseerde stap waarbij nieuwe code wordt geactiveerd in een live-omgeving. Een pipeline voor continue implementatie moet in staat zijn om een implementatie ongedaan te maken in het geval er bugs of ingrijpende wijzigingen worden doorgevoerd. Geautomatiseerde implementatietools, zoals groen-blauw implementaties, zijn een vereiste voor een correcte continue implementatie.

Monitoren en waarschuwen

Een robuuste pipeline voor continue implementatie zal voorzien zijn van realtime monitoring en waarschuwingen. Deze tools bieden inzicht in de gezondheid van het gehele systeem en in de status van de nieuwe code implementaties voor en na deze zijn ingevoerd. Daarnaast kunnen waarschuwingen worden gebruikt om een doorlopende implementatie 'ongedaan te maken', zodat een mislukte implementatie teruggedraaid kan worden.

Best practices voor continue implementatie


Zodra een pipeline voor continue implementatie tot stand is gebracht, zijn doorlopend onderhoud en deelname van het technische team vereist om het succes te garanderen. De volgende best practices en gedrag zullen ervoor zorgen dat een technisch team de meeste waarde haalt uit een pipeline voor continue implementatie.

Testgestuurde ontwikkeling

Testgestuurde ontwikkeling is de praktijk waarbij een gedragsspecificatie voor nieuwe softwarefuncties wordt gedefinieerd voordat de ontwikkeling begint. Zodra de specificatie is gedefinieerd, schrijven ontwikkelaars geautomatiseerde tests die voldoen aan de specificaties. Ten slotte is de daadwerkelijk te leveren code geschreven om aan de testcases te voldoen en aan de specificaties te voldoen. Dit proces zorgt ervoor dat alle nieuwe code vooraf wordt gecontroleerd door geautomatiseerde tests. Het alternatief hiervoor is om eerst de code af te leveren en daarna voor testdekking te zorgen. Dit biedt ruimte voor hiaten tussen het verwachte gedrag van de specificaties en de geproduceerde code.

Eén implementatiemethode

Zodra er eenmaal een pipeline voor continue implementatie is, is het van groot belang dat dit de enige implementatiemethode is. Ontwikkelaars zouden code niet handmatig moeten kopiëren om te produceren of dingen live te bewerken. Door handmatige wijzigingen buiten de CD-pipeline wordt de implementatiegeschiedenis gedesynchroniseerd, waardoor de CD-flow wordt verbroken.

Containerisatie

De containerisatie van een softwaretoepassing zorgt ervoor dat deze zich hetzelfde gedraagt op elke computer waarop deze wordt geïmplementeerd. Dit elimineert verschillende problemen waarbij software op de ene computer werkt, maar zich anders gedraagt op een andere. Containers kunnen worden geïntegreerd als onderdeel van de CD-pipeline, zodat de code zich op de computer van een ontwikkelaar hetzelfde gedraagt als tijdens geautomatiseerde tests en productie-implementatie.

Kortom …


Continue implementatie kan een krachtige tool zijn voor moderne technische organisaties. De implementatie is de laatste stap van de algemene 'continue pipeline' die bestaat uit integratie, levering en implementatie. De echte ervaring met continue implementatie is automatisering tot het niveau waarop code wordt geïmplementeerd in de productie, wordt getest op juistheid en automatisch wordt teruggestuurd als er fouten zijn, of geaccepteerd indien correct.

Als je continue levering in praktijk wilt brengen, bekijk dan onze DevOps CI/CD-tutorials, waarin wordt ingegaan op Open DevOps van Atlassian met Jira en integraties van derden.

Sten Pittet
Sten Pittet

Ik zit nu 10 jaar in de softwarebusiness in verschillende rollen, van ontwikkeling tot productmanagement. Nadat ik de afgelopen 5 jaar in Atlassian heb gewerkt aan ontwikkelaartools, schrijf ik nu over het bouwen van software. Buiten het werk om ontwikkel ik mijn vader-vaardigheden met een geweldige peuter.


Deel dit artikel

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Toelichting DevOps

DevOps-community

Afbeelding van kaart

Gratis aan de slag

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up