Continue levering is een benadering van softwareontwikkeling waarbij volledige softwaredelen in korte, gecontroleerde cycli worden geleverd in een formaat dat klaar is om geïmplementeerd te worden.
Voordat software aan de eindgebruiker zou kunnen worden vrijgegeven, moet deze langdurig worden ontwikkeld, getest en gecontroleerd. Deze watervalmethode, waarbij alle producten vooraf werden ontwikkeld voordat ze werden getest en vervolgens werden geïmplementeerd, was zeer tijdrovend en resulteerde in langzame implementatiecycli en een minder positieve gebruikerservaring.
Continue levering, een kernonderdeel van DevOps, dat werkte binnen de grotere context van CI/CD, ontstond als een onderdeel van de Agile-softwarerevolutie. In plaats van het in één keer maken van complete pakketten, zijn in continue levering alle aspecten van bouwcode opgenomen die in productie kunnen gaan, terwijl voor repetitieve taken zoals tests geavanceerde automatiseringsoplossingen worden gebruikt. Ontwikkelaars kunnen kleinere softwarewijzigingen met een consistentere snelheid verzenden. Onder bepaalde omstandigheden kan de code rechtstreeks naar de productie gaan. Dit wordt ook wel continue implementatie genoemd.
Dit biedt een aantal belangrijke voordelen voor bedrijven en softwareleveranciers:
Wanneer ontwikkelaars grootschalige implementaties uitbrengen, kan er veel fout gaan. Continue levering beperkt het implementatierisico door te focussen op kleine veranderingen die gemakkelijker te onderzoeken zijn en waarvoor gemakkelijker een storingzoekprocedure kan worden uitgevoerd, en die sneller kunnen worden hersteld als ze niet zoals verwacht werken.
In plaats van gewoon te wachten tot ontwikkelaars beslissen wanneer het werk klaar is, kunnen applicatie- en projecteigenaars met continue levering eenvoudig de voortgang in kaart brengen door de leveringscycli van de software bij te houden en te beslissen wanneer en hoe de implementatie in productie- of testomgevingen moet worden voortgezet. In sommige gevallen kan het wenselijk zijn om de informatie die tijdens de levenscyclus van continue levering is verzameld te gebruiken in een Value Stream Management-oplossing, om inzicht te krijgen in de relatieve mogelijkheden van teams en om knelpunten te helpen identificeren en verwijderen.
Wanneer software-implementaties vooraf vastgestelde ontwikkelingsfasen doorlopen, kunnen afzonderlijke fasen veel tijd in beslag nemen. Continue levering dwingt teams om test- en fixeertaken in te bouwen in andere dagelijkse processen, te vertrouwen op automatisering bij de bouw en provisioning bouwen, en nog meer om de last te kunnen opvangen. Hierdoor zijn minder ontwikkelingsfasen nodig, is er veel minder redundant werk en zijn snellere doorlooptijden mogelijk. Het kenmerk van continue levering is in wezen dat ze software produceert die op elk moment kan worden uitgebracht—een opmerkelijke verbetering in vergelijking met de lange levertijden in de traditionele softwareontwikkeling.
Wanneer ontwikkelaars veel tijd investeren in het opbouwen van iets, om na de release tot de vaststelling te komen dat het niet effectief is of slecht wordt onthaald, worden ze gedwongen om het doen met eentje die niet opweegt tegen hun inspanningen. Bij kortere, frequentere releases zijn testproblemen en andere problemen sneller zichtbaar en kunnen de gebruikers van de toepassing sneller en vaker feedback geven, zodat ontwikkelaars waar nodig koerscorrecties kunnen aanbrengen.
Met betrouwbare feedback gedurende de gehele levenscyclus van de levering kunnen ontwikkelaars hun producten verbeteren en stroomlijnen, functies en ideeën testen en alles wegnemen dat onnodig of ineffectief is of een negatieve gebruikerservaring creëert.
Continue levering is afhankelijk van automatisering, om veel van de vaste kosten te elimineren die altijd al een plaag zijn geweest voor softwareontwikkeling. Dit betekent dat er voorafgaand aan en tijdens de ontwikkelingslevenscyclus minder moet worden geïnvesteerd en dat het rendement op de resterende kosten hoger is.
Ontwikkelingsmarathons en aankomende projectdeadlines kunnen slopend zijn voor ontwikkelingsteams. Kleine oplossingen en releases daarentegen kunnen eenvoudiger en in combinatie met andere taken worden beheerd. Continue levering zorgt niet alleen voor een minder stresserende werkomgeving waar burn-outs worden voorkomen, maar stelt ontwikkelaars ook in staat om directer met gebruikers te communiceren en precies te zien in welke mate hun inspanningen voordelen opleveren voor hun klanten.
In eerste instantie klinkt continue levering bijna hetzelfde als continue implementatie en ziet het er ook bijna hetzelfde uit. Hoewel beide begrippen deel uitmaken van de Agile-benadering van softwareontwikkeling, zijn er subtiele verschillen tussen deze twee variaties die de moeite waard zijn om te erkennen.
Zoals hierboven wordt beschreven, automatiseert continue levering vele van de processen die betrokken zijn bij softwareontwikkeling en stelt het teams in staat om incrementele, doorlopende wijzigingen aan te brengen in producten. Maar het deel dat niet wordt geautomatiseerd door continue levering is de laatste fase van het goedkeuren van de implementatie voor de productie. Wijzigingen die zijn aangebracht en doorgevoerd naar testomgevingen worden doorgaans handmatig gecontroleerd en goedgekeurd in het kader van een geplande release naar volledige implementatie.
Continue implementatie gaat een stap verder met automatisering, door updates automatisch te implementeren, ofwel volgens een vooraf gedefinieerd schema ofwel zodra de code wordt geleverd via het proces van de continue levering. Als voor de code geen implementatievenster nodig is, krijgen ontwikkelaars door een betrouwbare automatisering van het wijzigingsbeheer (indien toepasselijk) rechtstreeks toegang tot de productie, en kunnen ze ervoor zorgen dat er regelmatig updates worden uitgebracht, zonder dat ze deze zelf moeten uitbrengen. Zo krijgen bedrijven meer capaciteit om op gelijk welk moment meer implementaties uit te brengen en worden grote releases zelfs een heel stuk eenvoudiger. Voor de meeste organisaties is de behoefte aan een sterke governance, bijvoorbeeld vanwege de regelgeving in de branche, de hinderpaal voor continue implementatie. De implementatie van continue implementatie in dit soort organisaties is grotendeels afhankelijk van de mogelijkheid om goedkeuringen die voorheen handmatig waren te automatiseren, zoals in een formeel wijzigingsbeheersproces.
Het algemene concept van continue levering is eenvoudig te begrijpen: de opsplitsing van tijdrovende ontwikkelingsprocessen in kleinschalige taken en releases. Het idee begrijpen en weten hoe de methodologie wordt geïmplementeerd zijn echter twee verschillende zaken. De volgende vereisten zijn van essentieel belang voor de overstap naar continue levering van software:
De eerder genoemde watervalaanpak voor softwareontwikkeling is misschien nog steeds diep ingeworteld in de geesten en de processen van de ontwikkelingsteams. Daarom zijn voor de culturele overstap naar DevOps- en Agile-ontwikkeling een uitgebreide planning en grondige training noodzakelijk. Als de ontwikkelingsteams zich hieraan niet toewijden, zal de continue levering waarschijnlijk niet slagen.
De culturele verschuiving naar DevOps zal verder moeten reiken dan de grenzen van de softwareontwikkeling. Snelle feedbacklussen en een effectieve besluitvorming vereisen een duidelijke samenwerking en coördinatie met het management, zodat iedereen volledig op de hoogte is van en toegewijd is aan de juiste processen.
Organisaties hebben geen baat bij snelle doorlooptijden en pijnloze softwarereleases als de eindproducten niet voldoen aan de vereisten op het gebied van beveiliging of compliance. Gelukkig kunnen vele van dezelfde benaderingen van automatiseringstools die worden gebruikt tijdens de continue levering worden ingezet om het beveiligingsrisico dat bij de implementatie komt kijken tot een minimum te beperken. Geautomatiseerde tools voor het scannen van codes met beleidsregels die worden vastgesteld door gespecialiseerde beveiligingsteams gaan deel uitmaken van de pijplijn. Als een geautomatiseerd wijzigingsbeheer wordt gebruikt, wordt het succesvol voltooien van deze scans onderdeel van de informatie die wordt gebruikt om automatisch wijzigingsverzoeken te creëren en goed te keuren.
Voor het vaststellen van een geoptimaliseerd end-to-end-proces met continue levering moeten verschillende belangrijke principes worden nagestreefd:
Gestroomlijnde processen vormen de kern van continue levering. Om ervoor te zorgen dat deze processen de best mogelijke implementatiecycli faciliteren, moeten ze consistent en herhaalbaar zijn in alle omgevingen. Veel organisaties creëren een rol die helpt bij het definiëren van het platform en de processen die ontwikkelaars gebruiken om deel te nemen aan de continue levering.
Continue levering is niet mogelijk, of in ieder geval niet op een effectieve manier, zonder automatisering. Handmatige processen nemen tijd in beslag en zijn moeilijk te herhalen, en organisaties moeten zich daarom inzetten om zoveel mogelijk van de infrastructuur te automatiseren. Dit is gemeengoed geworden bij het testen van codes en de kwaliteit ervan. Met de komst van DevSecOps wordt dezelfde automatisering uitgebreid om kwetsbaarheden in de beveiliging te helpen elimineren. Dit type automatisering wordt nu ook uitgebreid naar gebieden zoals configuratiegegevensbeheer, waarbij beleidsregels kunnen valideren dat configuratiewijzigingen geschikt zijn (zoals URL's, database-tekenreeksen en andere updates voor toepassingen, infrastructuur en omgevingsconfiguratie). In gereguleerde omgevingen kan de laatste governance-stap van het wijzigingsbeheer nu ook worden geautomatiseerd door gebruik te maken van informatie uit de tools die in de leveringspijplijn worden gebruikt.
Het laatste wat een organisatie met continue levering wil, is opnieuw moeten beginnen wanneer duidelijk wordt dat iets niet correct is gebouwd. Met versiebeheer kunnen ontwikkelaars alle wijzigingen in de code bijhouden en beheren, zodat ze in het onvermijdelijke geval dat er een probleem optreedt met de meest recente updates, gewoon de klok kunnen terugdraaien naar eerdere versies. Dit is een sterkere basis voor een continue verbetering met een hoge frequentie.
Het optimaliseren van processen en het afhandelen van taken moet met de tijd gemakkelijker worden, omdat een effectieve DevOps prioriteit geeft aan de moeilijkste en meest tijdrovende verantwoordelijkheden, zodat deze eerst worden aangepakt. Laad de ontwikkelingscyclus vooraf en maak u dan pas zorgen om al de rest perfect te maken. De Agile-planning is op dit gebied aanzienlijk verbeterd met mogelijkheden zoals roadmap, scenario- en big room-planning en uniforme achterstanden.
Net zoals bij het prioriteren van de moeilijkste taken, moeten Agile-organisaties bugs en andere problemen kunnen aanpakken en oplossen wanneer ze zich voordoen. Dit zorgt er niet alleen voor dat producten voortdurend worden verfijnd en verbeterd, maar helpt ook de kosten te verlagen door problemen op te lossen terwijl ze nog in hun kinderschoenen staan. Artificial Intelligence wordt op dit gebied sterk benut, en AI Operations-oplossingen leveren steeds betere voorspellingen en helpen problemen identificeren en oplossen voordat gebruikers erdoor worden getroffen.
Voor continue levering moet iedereen op dezelfde lijn betrokken zijn en naar een gemeenschappelijk doel toe werken. Met andere woorden, de verantwoordelijkheid van een persoon ten aanzien van het product eindigt niet wanneer zijn/haar taken zijn voltooid. Dit principe vereist een culturele verschuiving in termen van verantwoordelijkheid. Enige centralisatie van de informatie kan bijdragen aan de samenwerking. Gegevensmodellen die het hele proces van ideeënvorming tot uitvoering in de productie samenkoppelen, zorgen ervoor dat iedereen die betrokken is bij de levering begrijpt wat er is gebeurd en waarom.
Bij traditionele ontwikkeling hadden verschillende individuen, teams of afdelingen veel meer gescheiden taken, en daarom waren hun definities van wanneer een release was voltooid vaak zeer uiteenlopend. Gedeelde verantwoordelijkheid betekent gedeelde doelstellingen, en alle betrokkenen moeten erkennen dat geen enkele functie voltooid is totdat ze met succes is geleverd.
De iteratieve aanpak kan leiden tot een drastische verkorting van de ontwikkelingstijdlijnen, maar de ware kracht ervan ligt in het vermogen om bedrijven te helpen hun producten te verfijnen. Door effectieve processen te automatiseren, onnodige taken weg te nemen of te herzien en bugs en andere problemen voortdurend op te lossen, creëren organisaties steeds meer herhaalbare, efficiënte werkwijzen. Automatisering is de sleutel, en effectieve, krachtige software-releases zijn de beloning.
ServiceNow IT-beheeroplossingen bieden een effectieve ondersteuning voor de initiatieven voor continue levering van een organisatie.
Ga aan de slag met ServiceNow DevOps-oplossingen, en doe een beroep op de kracht en toegankelijkheid van het bekroonde Now Platform om de softwareontwikkeling en -implementatie te versnellen en in uw bestaande toolchains de connectiviteit en inzichten te verbeteren. Gebruik ingebouwde automatiseringsopties om ervoor te zorgen dat wijzigings-, bijhoud- en goedkeuringstaken geen knelpunten in uw processen veroorzaken. Houd van begin tot eind een gedetailleerd audittraject bij, minimaliseer risico's en zorg ervoor dat essentiële gegevens altijd gereed en beschikbaar zijn op één centrale locatie.
En ga daarna nog verder: pas Agile-principes toe op complexe software-initiatieven met behulp van de Scaled Agile Framework (SAFe)-toepassing van ServiceNow, met visuele dashboards, geavanceerde portfolioplanning, taakprioritering met kleurcodes, gedetailleerde plannings- en monitoringopties en een eenvoudig toegankelijke achterstand van gecentraliseerde SAFe-verhalen, SAFe-functies, incidentproblemen en meer.
ServiceNow is uw partner in effectieve continue levering. Ervaar het zelf en breng een revolutie teweeg in de manier waarop uw organisatie toepassingen creëert en levert.
Breid DevOps-succes uit binnen de hele onderneming. Ga voor een snellere aanpak zonder risico en voorkom frictie tussen IT-operations en -ontwikkeling.