1. BusinessOperations Management Flytning til DevOps-processer: Fra en linje til en kredsløb

Af Emily Freeman

DevOps-fremgangsmåden involverer en cyklus i modsætning til en linje. Det giver mulighed for kontinuerlig integration og kontinuerlig levering, hvilket giver konstant feedback gennem hele processen. DevOps-metodikken er kun et eksempel på, hvordan processer har udviklet sig.

Udviklingsprocesser har ændret sig radikalt i de sidste par årtier og med god grund. I 1960'erne ledede Margaret Hamilton ingeniørteamet, der udviklede softwaren til Apollo 11-missionen. Du lancerer ikke iterativt mennesker i rummet - i det mindste gjorde de det ikke i 1960'erne. Det er ikke et softwareområde, hvor "fejle hurtigt" føles som en særlig god tilgang. Liv er på banen, for ikke at nævne millioner af dollars.

Hamilton og hendes kammerater måtte udvikle software ved hjælp af vandfaldsmetodikken. Billedet herunder viser et eksempel på en vandfaldsudviklingsproces (der forekommer i en lige linje).

vandfaldsproces

Følgende billede tilføjer faser. Bemærk, hvordan pilene går i en retning. De viser en klar begyndelse og en klar afslutning. Når du er færdig, er du færdig. Ret?

Nix. Så meget som mange mennesker gerne vil gå væk fra dele af deres codebases for evigt (eller dræbe dem med ild), de får normalt ikke privilegiet.

Softwaren, der er udviklet af Hamilton og hendes team, var en vild succes (det er sjældent at tænke, at de udviklede sig i forsamlingen med nulhjælpere som fejlmeddelelser). Ikke alle projekter var dog lige så vellykkede.

Senere, hvor vandfaldet mislykkedes, lykkedes det Agile. (DevOps blev født ud af Agile-bevægelsen.) Agile søger at tage den rette linje af vandfald og bøje den i en cirkel og skabe et uendeligt kredsløb, gennem hvilket dit teknikhold kan iterativt og kontinuerligt forbedre sig.

vandfalds udviklingsrørledning

Billedet herunder viser, hvordan man tænker på den cirkulære udviklingslivscyklus.

DevOps kredsløb

Ofte påvirkes de forskellige sløjfer, der er ordineret af forskellige organisationer, af de produkter, som sælgerne sælger. For eksempel, hvis sælgeren sælger infrastruktursoftware og værktøj, fremhæver de sandsynligvis den del af udviklingslivscyklussen, måske med det mest fokus på at implementere, overvåge og understøtte din software.

Der er intet til salg her. De faser, der er fokuseret på her, er de mest kritiske for udviklere sammen med dem, som folk kæmper mest med, når de lærer at bedre styre deres softwareudvikling og vedtage DevOps.

De fem faser i softwareudviklingslivscyklussen er

  • Planlægning: Planlægningsfasen af ​​din DevOps-udviklingsproces er måske den mest nøgle til din DevOps-mission. Det sætter dig op til succes eller fiasko nede ad vejen. Det er også den mest frugtbare tid at samle alle sammen. For alle betyder dette forretningsinteressenter, salg og marketing, engineering, produkt og andre. Design: I de fleste virksomheder flettes designfasen til kodningsfasen. Dette uhyrlige sammensmeltning af design og kode tillader ikke en adskillelse af den arkitektoniske strategi fra implementeringen. Hvis du imidlertid overlader ting som databasedesign, API-logistik og valg af vigtige infrastrukturer til slutningen af ​​udviklingspipelinjen - eller måske værre til de enkelte udviklere, der arbejder med separate funktioner - finder du hurtigt, at din codebase er som tavs som dit tekniske team. Kodning: Den faktiske udvikling af funktioner er ansigtet til DevOps-processen og får al den herlighed. Men dette er et af de mindst vigtige trin i din udviklingslivscyklus. På mange måder er det simpelthen udførelsen af ​​de foregående områder af din rørledning. Hvis det gøres godt, skal kodning være en relativt enkel og ligefrem proces.

Hvis du nu er en udvikler og bare gispet efter den sidste sætning, fordi du har behandlet hundreder af tilfældige og vanskelige at løse fejl, er det let at forstå, hvordan du har det. Kodning er hårdt. Intet om softwareudvikling er let. Men ved at mestre planlægningen, designen og arkitekturen (og adskille dem fra den faktiske implementering af kode) sikrer du, at de sværeste beslutninger inden for softwareudvikling abstraheres.

  • Test: Testning er et område på din pipeline, hvor ingeniører fra alle ekspertiseområder kan dykke ind og blive involveret, hvilket muliggør en unik mulighed for at lære om testning, vedligeholdelighed og sikkerhed. Der er mange De seks stadier i softwareudviklingslivet forskellige typer test for at sikre, at din software fungerer som forventet. Deployering: Deployering er det trin, der måske er den mest tæt forbundet med operationer. Traditionelt vil dit operationsteam tage koden udviklet af dine udviklere og testet af dit kvalitetssikringsteam (QA) og derefter frigive den til kunderne - hvilket gør dem alene ansvarlige for frigørelsesprocessen. DevOps har haft en enorm indflydelse i denne fase af udviklingsprocessen. Desuden er implementering et af de områder, hvorfra de mest automatiseringsværktøjer kan trækkes fra. Fra et DevOps-perspektiv er din prioritering at forenkle installationsprocessen, så enhver ingeniør i dit team er i stand til at implementere deres kode. Det betyder ikke, at operationer ikke har unik viden, eller at operationsteam kan opløses.

Operationsfolk vil altid have unik viden om infrastruktur, belastningsbalancering og lignende. Når du fjerner den manuelle opgave med at distribuere software fra dit operationsteam, kan de faktisk spare dig tid og penge andre steder. De har tid til at arbejde på at forbedre din applikations pålidelighed og vedligeholdelighed.

Det vigtigste aspekt af en leveringslivscyklus inden for DevOps-rammen er, at det er en ægte løkke. Når du kommer til slutningen, går du tilbage til begyndelsen. Hvis du modtager supportfeedback fra kunder på ethvert tidspunkt undervejs, skal du gå tilbage til en efterfølgende fase (eller planlægningsfasen), så du kan udvikle software på en måde, der bedst betjener dine kunder.

Den første del af bygningen af ​​en rørledning er at behandle den lineært. Du bygger en lige linje med faste trin og kontrolpunkter undervejs. Inden for disse rammer kan du se livscyklussen til softwareudvikling som noget, du starter og noget, du er færdig med. Vandfaldelskere ville være stolte.

Men virkeligheden lader dig ikke arbejde i en lige linje. Du kan ikke bare begynde at fremstille kode, afslutte og gå væk. I stedet er du tvunget til at bygge videre på den grundlæggende software, du har frigivet på din første iterative loop, og forbedre den gennem den anden cyklus. Og så videre og så videre. Processen slutter aldrig, og du stopper aldrig med at forbedre.

DevOps-processen hjælper dig med at forbinde starten og slutningen af ​​den lige rørledning, så du begynder at forstå det som et helt kredsløb eller loop, så du kontinuerligt kan udvikle og forbedre.