DevOps- en releasebeheeractiviteiten vertonen overeenkomsten op het gebied van de softwareontwikkelingslevenscyclus (SDLC), projectmanagement en de IT-infrastructuurbibliotheek (ITIL). DevOps-releasebeheer omvat het toezicht op het ontwerp, de planning, de agendering, het testen en de implementatie van de software-release- en leveringscyclus.
Organisaties vertrouwen voornamelijk op DevOps-teamstructuren om de effectiviteit van hun software-engineering te verhogen en maken daarbij gebruik van mechanismen voor continue integratie en continue levering (CI/CD) voor meer efficiëntie. Als kers op de taart wordt releasebeheer geïntegreerd, zodat het algehele proces wordt versterkt en software snel aan klanten kan worden geleverd zonder concessies te doen aan compliance, kwaliteit of beveiliging.
In dit artikel leg ik het belang en de essentie van DevOps-releasebeheer uit, evenals best practices en hoe je een effectieve releasemanager wordt.
Wat vertegenwoordigt een release in het software-engineeringproces?
Voordat je releasebeheer adequaat kunt behandelen, moet je begrijpen wat een software-release inhoudt. In de wereld van software-engineering is een release een nieuw ontworpen functionaliteit of een recent gewijzigd onderdeel van software.
Een release omvat echter ook het proces van de creatie ervan en kan qua omvang variëren van een nieuwe functie tot een volledig functionele app-versie. Een release vertegenwoordigt ook het hoogtepunt van het softwareontwikkelingsproces.
DevOps-teams zetten doorgaans verschillende testomgevingen op om een releasebranch te testen. Een testomgeving helpt bij het creëren van geoptimaliseerde implementaties. Dit gebeurt doordat DevOps-teams aannames over de release kunnen valideren door middel van tests en monitoring voordat deze naar productie mag gaan.
Een veelgebruikte DevOps-praktijk onder engineers is het opstellen van een releaseplan waarin het testen van alfa- en bètaversies van de software voorafgaand aan de volledige release is opgenomen.
Er moet echter worden opgemerkt dat een release ook een fysiek product, een download van een website, een push naar een apparaat of een update vanuit een webapp kan zijn.
Wat is releasebeheer?
Releasebeheer coördineert en beheert een softwarebuild gedurende verschillende iteraties, fasen en omgevingen die betrokken zijn bij het software-implementatie- en releaseproces.
Releasebeheer draait om het verminderen van de risico's en onvoorspelbaarheid die gepaard gaan met het software-releaseproces. Het is een algemeen DevOps- en ITIL-proces voor het beheren van de softwareleveringscyclus.
Binnen ITIL maakt releasebeheer deel uit van de overgang naar een nieuwe of gewijzigde dienst. ITIL beheert deze overgang door de levenscyclus van de bijbehorende service-updates vast te leggen. DevOps legt daarentegen de nadruk op het bevorderen van zichtbaarheid, communicatie en samenwerking gedurende het aspect van continue levering binnen de releasecyclus.
Dat gezegd hebbende, kunnen teams bij het implementeren van DevOps-releasebeheer vaak problemen ondervinden met implementaties en rollbacks. Het toepassen van effectieve releasebeheerpraktijken kan deze veelvoorkomende knelpunten rechtstreeks oplossen en je algehele DevOps-werkwijze stroomlijnen.
-
RunMyJobs by Redwood
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.7 -
ActiveBatch
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.6 -
Harness
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.6
Verschillende typen releasebeheer
Releasebeheer is geen monolithisch proces; bedrijven gebruiken verschillende benaderingen om een releasebranch te implementeren.
DevOps-releasebeheer
Om de complexiteit van het bouwen en onderhouden van applicaties te verminderen, ontstond de rol van de DevOps-engineer. Deze richt zich op het verkleinen van de knelpunten tussen IT-activiteiten en softwareontwikkeling.
Binnen dit softwareparadigma zijn samenwerking en communicatie tussen ontwikkelaars en IT-beheerders vanaf het begin van het softwareontwikkelingsproces met elkaar verweven. DevOps bevordert verantwoordelijkheid binnen de groepen die bij het project betrokken zijn voor de diensten die zij gedurende de volledige softwareontwikkelingslevenscyclus leveren.
Dit resulteert in een DevOps-pijplijn met snellere, betrouwbaardere releases en kortere feedbacklussen.
Releasebeheer profiteert uiteindelijk van vangnetten en de shift-left-benadering binnen DevOps, doordat test-, automatiserings- en QA-procedures veel eerder naar de leveringspijplijn worden verplaatst. Releasebeheer moet applicaties en infrastructuurcomponenten echter nog steeds monitoren en daarnaast wijzigingsopdrachten en planningen beheren.
Omdat DevOps-releasebeheer zo nuttig is bij het verwijderen van silo's die teamleden van elkaar hebben geïsoleerd, ontwikkelt het zich momenteel tot het populairste type releasebeheer dat wordt toegepast.
Agile-releasebeheer
Agile releasebeheer is gebaseerd op de agilemethodologie. In plaats van zich te richten op grote releases, verdeelt agile releaseplanning releasefasen over meerdere sprints of iteraties. Een sprint is een korte periode, meestal een week, waarin een team werkt aan het afronden van bepaalde taken, in dit geval een specifieke release van een softwareversie.
Een wijzigingsorder voor een release wordt afgebakend door een sprint. Daarom vertegenwoordigt een nieuwe productincrement het einde van een sprint. Door releases op te delen in meerdere sprints wordt de complexiteit van het releaseproces verminderd.
Wat doet een releasebeheerder?
Een releasebeheerder houdt toezicht op het releasebeheerproces. Deze persoon moet kennis hebben van beste praktijken voor implementatie, projectmanagement, DevOps-hulpmiddelen en automatisering. Om het releaseproces te verbeteren, moet de releasebeheerder ook weten hoe verandermanagement kan worden toegepast en tegelijkertijd de voortgang kan worden bijgehouden.
Deze rol vereist flexibel denkvermogen en diepgaande kennis van de tools voor releasebeheer die een ontwikkelingsteam in verschillende omstandigheden en tijdens diverse fasen van de releasepijplijn goed van pas komen.
Voordelen van releasebeheer
De complexiteit van moderne softwareontwikkeling is met sprongen toegenomen, vooral in de afgelopen jaren. Een deel van de reden daarvoor is dat softwaresystemen door digitalisering en alles wat daarmee samenhangt eenvoudigweg op grotere schaal worden gebruikt. Met deze toegenomen toepassing komen ook meer controle, uitdagingen op het gebied van bruikbaarheid, verbruik van middelen en aanvallen door hackers.
Het gevolg van deze factoren is dat softwareversies en releases foutgevoeliger zijn geworden. Daarom wordt releasebeheer geïntegreerd om de algehele chaos te verminderen en de gevaren die in het proces op de loer kunnen liggen aan te pakken. Andere doelstellingen die organisaties ertoe aanzetten releasebeheer te integreren, kunnen het volgende omvatten:
- Een systeem bieden voor de voorspelbare, betrouwbare en veilige levering van software.
- Het aantal en de frequentie van succesvolle releases die door een organisatie worden gegenereerd verhogen.
- De organisatie inzicht geven in alle activiteiten rond softwarereleases.
- De processen binnen de releasecyclus van een organisatie standaardiseren en stroomlijnen.
- Beste praktijken voor de releasecyclus integreren in het DNA van een DevOps-team.
- Onderdelen van het releaseproces optimaliseren met automatisering.
- De bedrijfsprioriteiten van de organisatie nauw afstemmen op haar IT-activiteiten.
Releasebeheer heeft het proces echter gestroomlijnd en tegelijkertijd de volgende voordelen voor releasebeheerders met zich meegebracht:
Naleving van regelgeving ondersteunen
Releasebeheer helpt naleving van regelgeving te bevorderen door uitgebreide zichtbaarheid en traceerbaarheid te bieden. Het helpt auditsporen te versterken door vast te stellen waar elke wijziging in een coderegel vandaan komt en door wie deze is aangebracht. Bovendien kunnen organisaties dit alles doen zonder snelle releasecycli in gevaar te brengen.
Configuratiebeheer en implementatieprocessen automatiseren
Met releasebeheer kunnen operationele teams releaseplannen automatiseren door geautomatiseerd testen, implementatieautomatisering en DevOps-automatisering te integreren.
Automatisering maakt releasebeheer tot een reproduceerbaar en herhaalbaar proces, waardoor het veel eenvoudiger wordt om succesvolle releases te beheren en te produceren.
Risico's beperken en de marktintroductietijd van softwareproducten verkorten
Releasebeheer verbetert de communicatie, coördinatie en productiviteit in het softwareleveringsproces. Dit komt doordat teams hierdoor met elkaar kunnen communiceren en informatie kunnen delen, zelfs over geografische grenzen heen.
Het omvat doorgaans beste praktijken zoals continue integratie, continue levering en implementatieautomatisering, die de snelle productie van kwalitatieve software met een lager risico mogelijk maken. Hierdoor kunnen bedrijven veel sneller reageren op veranderingen in de markt en op de vraag.
Standaardisatie van software-releasebeheer
Door releasebeheer te omarmen als een integraal onderdeel van DevOps-praktijken wordt het releaseproces gestroomlijnd en gestandaardiseerd. Er ontstaat een herhaalbaar proces dat kan worden gedocumenteerd aan de hand van het releaserecord.
Deze documentatie wordt vervolgens gebruikt om de grondoorzaken van problemen te begrijpen en oplossingen te implementeren, vooral in fasen na de implementatie.
KPI's voor succesvolle releases verbeteren
Releasebeheer binnen DevOps helpt bij het vaststellen van de maatstaven die nodig zijn om betere softwareversies te bouwen. Automatisering, versiebeheer en kwaliteitscontrole helpen ontwikkelteams inzicht te krijgen in de metrische gegevens die nodig zijn om grotere aantallen releases te genereren met een lage faalkans, zodat de tijd tot release wordt verkort.

Het verschil tussen verandermanagement en releasebeheer
IT-servicemanagementsystemen omvatten zowel verander- als releasebeheer om ervoor te zorgen dat DevOps-teams zijn uitgerust om de snelheid, het volume en de complexiteit van softwareontwikkeling en -levering aan te kunnen.
Veel mensen halen de twee echter vaak door elkaar. Hoewel ze nauw met elkaar verbonden zijn, zijn releasebeheer en verandermanagement niet hetzelfde. De meest basale uitleg is dat verandermanagement als een invoerservice voor releasebeheer fungeert. Releasebeheer levert vervolgens de gewenste uitvoer in de vorm van een functioneel softwareartefact.
Activiteiten op het gebied van verandermanagement beschermen de bestaande softwaretoepassing en omgeving om verstoring van IT-services tot een minimum te beperken. Zoals de naam al aangeeft, zorgt het ervoor dat de wijzigingen die in het systeem worden geïntroduceerd gunstig zijn, met minimale negatieve bijwerkingen. Het brengt bijvoorbeeld de behoefte aan proactiviteit en snelheid in balans met het bijbehorende risico dat onvermijdelijk met verandering gepaard gaat.
Releasebeheer verpakt de resultaten van wijzigingsverzoeken en bundelt deze in één release.
Releasebeheer draait om installatieprocessen, samen met activiteiten voor continue levering en/of continue implementatie via tools voor releaseorkestratie. Verandermanagement houdt zich daarentegen grotendeels bezig met governance. Verandermanagement neemt daarom de taak op zich om wijzigingsverzoeken in een IT-systeem af te handelen en de bijbehorende risico's van de wijziging te beheren.
4 beste praktijken voor releasebeheer
Dit zijn enkele vuistregels en optimale praktijken die als model kunnen dienen voor je releasebeheerproces:
Geef de criteria voor releasesucces aan
Het is belangrijk dat releasemanagers duidelijke acceptatiecriteria vaststellen waaraan het DevOps-team zich tijdens releases moet houden. Zo weet iedereen aan welke voorwaarden moet worden voldaan om een release als geslaagd te beschouwen.
De meest ideale acceptatiecriteria komen echter tot stand door samenwerking tussen producteigenaren, het QA-team en releasemanagers. Daarnaast moeten releasemanagers ruimte laten voor flexibiliteit, zodat ze de inspanningen van hun team om te bepalen wat het beste werkt voor hun releaseprocessen niet belemmeren.
Releases implementeren in een goed ontworpen stagingomgeving
Een stagingomgeving is een testomgeving en de laatste stap in het implementatieproces voordat een release live gaat. Als testomgeving stelt deze DevOps-teams in staat om bij elke release sneller en grondiger aan de acceptatiecriteria te voldoen. Ook kunnen releasemanagers hiermee ervoor zorgen dat een releasebranch geen nadelige invloed heeft op klanten of de liveversie van de software.
Daarom moet een stagingomgeving zo worden ontworpen dat deze zo dicht mogelijk bij de liveversie en productieomgeving ligt.
Geef kwaliteitsborging een stem
Men zegt dat te veel koks de pap bederven; dit gezegde gaat echter niet op als het om kwaliteit gaat. Hoe meer mensen een product of proces beoordelen, hoe groter de kans dat tekortkomingen en defecten worden geïdentificeerd. Zorg daarom voor voldoende samenwerking en inbreng van je teams voor kwaliteitsborging en kwaliteitsengineering.
Gebruik automatisering waar mogelijk
Automatisering versterkt capaciteit en verandert het speelveld. Implementatieautomatisering helpt fouten tot een minimum te beperken en maakt snellere releasecycli mogelijk. Bovendien zorgt investeren in automatisering ervoor dat een organisatie haar kwaliteitsborgingsprocessen gunstig kan verbeteren.
Verbeter je softwarelevering met DevOps-releasebeheer
Al met al verhoogt releasebeheer de winstgevendheid en vermindert het risico, de DevOps-kosten en het extra onderhoud, terwijl het continue verbetering van softwarelevering stimuleert.
Abonneer je op de nieuwsbrief van The CTO Club voor meer DevOps-inzichten!
