Hvad er softwareinstallation?
- 3 minutter
Ifølge Wikipedia består "softwareinstallation" af alle de aktiviteter, der gør et softwaresystem tilgængeligt til brug. Den generelle udrulningsproces består af flere indbyrdes forbundne aktiviteter med mulige overgange mellem dem. Hvert softwaresystem er unikt; derfor skal "udrulning" fortolkes som en generel proces, der skal tilpasses i henhold til specifikke krav eller egenskaber.
Nogle bruger begreberne "installation" og "installation" i flæng, men softwareinstallationen er kun en del af processen med at installere den. Udrulningen omfatter meget mere. Udrulningsaktiviteter kan omfatte:
- "Racking and stacking" en server.
- Udrulning af et opdateret stykke software på den pågældende server.
- Brug af ting som scripts og infrastruktur som kode.
- Selv gå rundt på et kontor med et USB-drev, manuelt installere software på computere.
Manuel udrulning af software er arbejdskrævende og skalerer ikke godt. Automatisering gør det nemmere og mere omkostningseffektivt at sikre ensartethed, når du udruller ny software eller opdaterer eksisterende software på tværs af en organisation.
Vores fokus som en del af dette læringsforløb er, hvordan du bedst udruller software til pålidelighed. Dette modul omhandler ikke kun udrulning af software, men også udrulning af cloudinfrastruktur. Referencer til udrulning af en tjeneste eller en løsning kan betyde installation af software, cloudinfrastruktur, konfiguration og alle de ting, der er nødvendige for pålideligt at gøre et softwaresystem tilgængeligt til brug.
Scenarie: Den episke udrulning
Ordet episk betyder "storslået, monumentalt eller stort", men i forbindelse med denne diskussion er det ikke en god ting. Udtrykket "episk" blev opfundet af Jez Humble i sin bog Continuous Delivery: Pålidelige softwareudgivelser via Build, Test og Deployment Automation fordi det repræsenterer en massiv (og massivt forstyrrende) virksomhed. Her er et eksempel på, hvordan det typisk sker:
- En organisation udvikler et salgsrelateret program. Dette program opdateres nøjagtigt to gange om året.
- Under disse opdateringer installeres alle nye funktioner, fejlrettelser (store og små) og afhængighedsopdateringer.
- Den første udrulning af året er planlagt til at ske i løbet af Labor Day weekend, og den anden finder sted i weekenden efter Thanksgiving.
- Hver opdatering er en situation med "alt i praksis". Programteamet, supportteamet, infrastrukturteamet, ledelsen; alle er involveret i udrulningen.
- Tjenester går midlertidigt offline, mens installationen er i gang.
- Historikken har vist, at udrulningen altid er fyldt med problemer, ændringer til on-demand-tekniker, fejlfinding og konfigurationsstyring.
- Det går sjældent godt, og når det er færdigt, føles det generelt lappet sammen på en reproducerbar måde.
Det er ikke en god udrulningssituation. Den episke udrulningsmetode er en intens manuel opgave, der giver en række problemer:
- Det er komplekst.
- Det er stressende.
- Det er risikabelt.
- Det er langsomt.
- Det kan ikke reproduceres på grund af alle de komplekse trin.
- Det kræver ofte, at flere individuelle eksperter fuldfører udrulningen.
Da denne proces er lang og vanskelig, skal den planlægges til tider, der vil medføre den mindste afbrydelse af brugerproduktiviteten, hvilket betyder tidspunkter, der sandsynligvis vil være upraktiske for udrulningsteamet, f.eks. weekender og helligdage.
Teammedlemmer føler sig måske forhastet for at få mammuthandlingen fuldført inden for tidsrammen, hvilket får dem til at lave konfigurationsfejl. Lange tider mellem udrulninger kan også medføre, at du glemmer, præcis hvordan tingene fungerer.
Installationsdilemmaet
Udrulning af software er en kompleks opgave, og når du "gemmer" flere større ændringer, rettelser og funktionstilføjelser for at udrulle alt på én gang, øger du kompleksiteten og dermed øger sandsynligheden for, at noget går galt. Når tingene går galt, gør denne kompleksitet det desuden vanskeligere at finde ud af, hvad der forårsagede problemet.
Kompleksitet kan også skabe problemer for slutbrugerne, da de muligvis skal håndtere at lære mange nye funktioner og ændringer på én gang, for ikke at nævne eventuelle fejl, der introduceres af den episke udrulnings kompleksitet.
Der burde være en bedre måde, og det er der. Den gode nyhed er, at den traditionelle episke udrulningsstrategi ikke er den eneste mulighed. Vi lærer en bedre måde at gøre denne proces på i det næste undermodul.