Wat is software-implementatie?

Voltooid

Volgens Wikipedia bestaat "software-implementatie" uit alle activiteiten die een softwaresysteem beschikbaar maken voor gebruik. Het algemene implementatieproces bestaat uit verschillende onderling gerelateerde activiteiten, met mogelijke overgangen tussen deze activiteiten. Elk softwaresysteem is uniek. De implementatie is dan ook een algemeen proces dat moet worden aangepast aan de hand van specifieke vereisten of kenmerken.

Sommige gebruiken de termen 'implementatie' en 'installatie' door elkaar, maar de software-installatie maakt slechts deel uit van het implementatieproces. Bij implementatie komt veel meer kijken. Implementatieactiviteiten kunnen onder andere het volgende omvatten:

  • Een server in een rek plaatsen en stapelen.
  • Een bijgewerkt stukje software implementeren op die server.
  • Het gebruik van zaken zoals scripts en infrastructuur als code.
  • Zelfs lopend rond een kantoor met een USB-station, handmatig installeren van software op computers.

Handmatig implementeren van software is tijdrovend en kan niet goed worden geschaald. Automatisering maakt het eenvoudiger en rendabeler om consistentie te garanderen wanneer u nieuwe software uitrolt of bestaande software in een organisatie bijwerkt.

Onze focus als onderdeel van dit leertraject is hoe u software voor betrouwbaarheid het beste kunt implementeren. Deze module heeft niet alleen betrekking op software-implementatie, maar ook op het implementeren van de cloudinfrastructuur. Verwijzingen naar implementatie van een service of een oplossing kan betekenen dat software, cloudinfrastructuur, configuratie en alles wat nodig is om een softwaresysteem op een betrouwbare manier beschikbaar te stellen, worden geïmplementeerd.

Scenario: De epische implementatie

Het woord episch betekent "groot, monumentaal of enorm", maar in de context van deze discussie is het niet goed. De term 'epic' werd bedacht door Jez Humble in zijn boek Continuous Delivery: Reliable Software Releases through Build, Test en Deployment Automation , omdat het een enorme (en zeer verstorende) onderneming vertegenwoordigt. Dit is een voorbeeld van hoe het normaal gesproken gebeurt:

  • Een organisatie ontwikkelt een verkoopgerelateerde toepassing. Deze toepassing wordt exact twee keer per jaar bijgewerkt.
  • Tijdens deze updates worden alle nieuwe functies, bugfixes (groot en klein) en afhankelijkheidsupdates geïmplementeerd.
  • De eerste implementatie van het jaar is gepland om te worden uitgevoerd in het weekend van Labor Day en de tweede in het weekend na Thanksgiving.
  • Bij elke update is iedereen nodig. Het toepassingsteam, het ondersteuningsteam, het infrastructuurteam, het beheer; iedereen is betrokken bij de implementatie.
  • Services gaan tijdelijk offline terwijl de implementatie wordt uitgevoerd.
  • De geschiedenis heeft aangetoond dat de implementatie altijd beladen is met problemen, engineering op aanvraag, probleemoplossing en wijzigingen in configuratiebeheer.
  • Het gaat zelden goed en na afronding lijkt het doorgaans een onsamenhangend geheel dat op niet reproduceerbare wijze aan elkaar is geknoopt.

Dit is geen goede implementatiesituatie. De epische implementatiemethode is een intensieve handmatige taak die een aantal problemen oplevert:

  • Het is complex.
  • Het is stressvol.
  • Het is riskant.
  • Het is traag.
  • Het is niet reproduceerbaar vanwege alle complexe stappen.
  • Er zijn vaak meerdere afzonderlijke experts nodig om de implementatie te voltooien.

Aangezien dit proces lang en ongeorganiseerd is, moet het worden gepland op tijdstippen die de minste onderbreking van de werkzaamheden veroorzaken, wat inhoudt dat het implementatieteam waarschijnlijk in het weekend en op feestdagen moet werken.

Teamleden kunnen zich haast voelen om de mammoetbewerking binnen het tijdsbestek te voltooien, waardoor ze configuratiefouten kunnen maken. Lange tijden tussen implementaties kunnen er ook toe leiden dat u precies vergeet hoe dingen werken.

Het implementatiedilemma

Software-implementatie is een complexe taak en wanneer u meerdere belangrijke wijzigingen, oplossingen en functietoevoegingen opslaat om alles in één keer te implementeren, verhoogt u de complexiteit en verhoogt u de kans dat er iets fout gaat. Als iets fout gaat, is het lastiger om de oorzaak van het probleem te achterhalen.

Complexiteit kan ook problemen veroorzaken voor de eindgebruikers, omdat ze mogelijk te maken hebben met het leren van veel nieuwe functies en wijzigingen allemaal tegelijk, niet om te vermelden dat er fouten zijn die worden geïntroduceerd door de complexiteit van de epische implementatie.

Er moet een betere manier zijn, en er is. Het goede nieuws is dat de traditionele epische implementatiestrategie niet de enige optie is. In de volgende les leert u hoe u dit proces kunt voltooien.

Kennis testen

1.

Wat is een van de kenmerken van de epische implementatie?