Vad är programvarudistribution?
- 3 minuter
Programvarudistribution innehåller alla aktiviteter som gör ett programvarusystem tillgängligt för användning. Den allmänna distributionsprocessen består av flera relaterade aktiviteter, med möjliga övergångar mellan dem. Varje programvarusystem är unikt, så distribution är en allmän process som måste anpassas efter specifika krav eller egenskaper.
Vissa använder termerna "distribution" och "installation" omväxlande, men programvaruinstallationen är bara en del av distributionsprocessen. Implementeringen innebär mer. Distributionsaktiviteter kan inbegripa:
- Montera och stapla en server.
- Distribuera en uppdaterad programvara till servern.
- Använda saker som skript och infrastruktur som kod.
- Till och med gå runt på ett kontor med en USB-enhet och installera programvara manuellt på datorer.
Att distribuera programvara manuellt är arbetsintensivt och skalas inte så bra. Automatisering gör det enklare och mer kostnadseffektivt att säkerställa konsekvens när du distribuerar ny programvara eller uppdaterar befintlig programvara i en organisation.
Den här utbildningsvägen fokuserar på hur du bäst distribuerar programvara för tillförlitlighet. Den här modulen behandlar inte bara programvarudistribution, utan även distribution av molninfrastruktur. Referenser till distribution av en tjänst eller lösning kan syfta på distribution av programvara, molninfrastruktur, konfiguration samt allt som behövs för att på ett tillförlitligt sätt göra ett programvarusystem tillgängligt för användning.
Scenario: Den episka utrullningen
Ordet episk betyder "grand, monumental eller vidsträckt", men i samband med denna diskussion är det inget positivt. Jez Humble och David Farley använder termen i sin bok Continuous Delivery: Reliable Software Releases via Build, Test och Deployment Automation eftersom det representerar ett massivt (och massivt störande) åtagande. Här är ett exempel på hur det vanligtvis sker:
- En organisation utvecklar ett säljrelaterat program. Det här programmet uppdateras exakt två gånger per år.
- Under dessa uppdateringar distribueras alla nya funktioner, buggkorrigeringar (stora och små) och beroendeuppdateringar.
- Årets första distribution ska ske under Labor Day-helgen, och den andra sker veckan efter Thanksgiving.
- Varje uppdatering är en "all hands on deck"-situation. Programteamet, supportteamet, infrastrukturteamet och ledningen deltar alla i distributionen.
- Tjänster går offline tillfälligt medan distributionen pågår.
- Historiken har visat att distributionen alltid är fylld av problem, teknik på begäran, felsökning och ändringar i konfigurationshantering.
- Det går sällan bra, och när det är klart känns det vanligtvis ihoplappat på ett oreproducerbart sätt.
Det här är inte en bra distributionssituation. Metoden för omfattande distribution är en intensiv manuell uppgift som leder till ett flertal problem.
- Det är komplext.
- Det är stressigt.
- Det är riskabelt.
- Det är långsamt.
- Det är inte reproducerbart på grund av alla komplexa steg.
- Den kräver ofta flera enskilda experter för att distributionen ska slutföras.
Eftersom den här processen är lång och tidskrävande måste den schemaläggas ibland som orsakar minst avbrott i användarproduktiviteten, vilket innebär tider som sannolikt är obekväma för distributionsteamet, till exempel helger och helgdagar.
Teammedlemmar kan känna sig skyndade att få mammutåtgärden slutförd inom tidsramen, vilket gör att de gör konfigurationsmisstag. Långa tider mellan distributioner kan också få dig att glömma exakt hur saker och ting fungerar.
Distributionsdilemmat
Programvarudistribution är en komplex uppgift, och när du "sparar" flera större ändringar, korrigeringar och funktionstillägg för att distribuera allt i ett svep ökar du komplexiteten och ökar därmed sannolikheten för att något går fel. Och när saker går snett gör den här komplexiteten att det blir svårare att ta reda på exakt vad som orsakade problemet.
Komplexitet kan också skapa problem för slutanvändarna, eftersom de kan behöva ta itu med att lära sig många nya funktioner och ändringar samtidigt, för att inte tala om eventuella buggar som introduceras av den episka distributionens komplexitet.
Det borde finnas ett bättre sätt, och det finns det. Den goda nyheten är att den traditionella episka distributionsstrategin inte är det enda alternativet. Du får lära dig ett bättre sätt att gå vidare med den här processen i nästa lektion.