1. BusinessOperations Management Flytting til DevOps prosesser: Fra en linje til en krets

Av Emily Freeman

DevOps-tilnærmingen innebærer en syklus i motsetning til en linje. Det gir mulighet for kontinuerlig integrering og kontinuerlig levering, og gir konsekvent tilbakemelding gjennom hele prosessen. DevOps-metodikken er bare ett eksempel på hvordan prosesser har utviklet seg.

Utviklingsprosesser har endret seg radikalt de siste tiårene, og med god grunn. På 1960-tallet ledet Margaret Hamilton ingeniørteamet som utviklet programvaren for Apollo 11-oppdraget. Du lanserer ikke iterativt mennesker ut i verdensrommet - de gjorde i det minste ikke på 1960-tallet. Det er ikke et område med programvare der "mislykkes raskt" føles som en spesielt god tilnærming. Liv er på banen, for ikke å nevne millioner av dollar.

Hamilton og hennes jevnaldrende måtte utvikle programvare ved bruk av fossefallmetodikken. Bildet nedenfor viser et eksempel på en fossefallutviklingsprosess (som oppstår i en rett linje).

fossefall

Følgende bilde legger til fasene. Legg merke til hvordan pilene går i en retning. De viser en klar begynnelse og en klar slutt. Når du er ferdig, er du ferdig. Ikke sant?

Nei. Så mye som mange ønsker å gå vekk fra deler av kodebasen for alltid (eller drepe dem med ild), de får vanligvis ikke privilegiet.

Programvaren som ble utviklet av Hamilton og hennes team var en vill suksess (det er tankene å blåse i å tro at de utviklet seg i forsamlingen med null hjelpere som feilmeldinger). Ikke alle prosjekter var imidlertid like vellykkede.

Senere, der fossen sviktet, lyktes Agile. (DevOps ble født ut av Agile-bevegelsen.) Agile søker å ta den rette linjen med fossefall og bøye den til en sirkel, og skape en uendelig krets som ditt ingeniørteam kan iterativt og kontinuerlig forbedre.

rørledning for fossefallutvikling

Bildet nedenfor viser hvordan du tenker på den sirkulære livssyklusen.

DevOps krets

Ofte påvirkes de forskjellige løkkene som er foreskrevet av forskjellige organisasjoner av produktene som leverandørene selger. For eksempel, hvis leverandøren selger infrastrukturprogramvare og verktøy, vil de sannsynligvis legge vekt på den delen av utviklingslivssyklusen, og kanskje fokusere mest på distribusjon, overvåking og støtte programvaren din.

Her er ingenting til salgs. Stadiene som er fokusert på her er de mest kritiske for utviklere, sammen med de folk sliter mest med når de lærer å bedre styre programvareutviklingen og vedta DevOps.

De fem stadiene i programvarenes livssyklus er

  • Planlegging: Planleggingsfasen av DevOps-utviklingsprosessen er kanskje den viktigste nøkkelen til DevOps-oppdraget. Det gir deg mulighet for suksess eller fiasko underveis. Det er også den mest fruktbare tiden å samle alle sammen. Av alle betyr dette forretningsinteressenter, salg og markedsføring, prosjektering, produkt og andre. Designing: I de fleste selskaper blir designfasen slått sammen til kodingsfasen. Dette uhyrlige sammenslåingen av design og kode tillater ikke at den arkitektoniske strategien skilles fra implementering. Imidlertid, hvis du lar ting som databasedesign, API-logistikk og viktige infrastrukturvalg til slutten av utviklingsrørledningen - eller, kanskje verre, til de enkelte utviklerne som jobber med separate funksjoner - vil du raskt finne at kodebasen din blir like tøyset som ditt tekniske team. Koding: Selve utviklingen av funksjoner er ansiktet til DevOps-prosessen og får all ære. Men dette er et av de minst viktige trinnene i utviklingslivssyklusen din. På mange måter er det ganske enkelt utførelsen av de foregående områdene av rørledningen din. Hvis det gjøres bra, bør koding være en relativt enkel og grei prosess.

Hvis du nå er en utvikler og bare gispet etter den siste setningen fordi du har behandlet hundrevis av tilfeldige og vanskelig å løse feil, er det lett å forstå hvordan du har det. Koding er vanskelig. Ingenting om programvareutvikling er enkelt. Men ved å mestre planleggingen, designen og arkitekturen (og skille dem fra den faktiske implementeringen av kode), sikrer du at de vanskeligste beslutningene innen programvareutvikling blir abstrakt.

  • Testing: Testing er et område i rørledningen din der ingeniører fra alle kompetanseområder kan dykke inn og engasjere seg, noe som muliggjør en unik mulighet til å lære om testing, vedlikehold og sikkerhet. Det er mange av de seks stadiene i programvareutviklingen, forskjellige typer tester for å sikre at programvaren din fungerer som forventet. Distribusjon: Distribusjon er det stadiet som kanskje er den tettest assosierte med operasjoner. Tradisjonelt vil operasjonsteamet ta koden som er utviklet av utviklerne dine og testet av kvalitetssikringsteamet (QA) og deretter gi dem ut til kundene - noe som gjør dem alene ansvarlige for utgivelsesprosessen. DevOps har hatt en enorm innvirkning i denne fasen av utviklingsprosessen. Distribusjon er også et av områdene for å finne de mest automatiseringsverktøyene å trekke fra. Fra DevOps-perspektiv er prioriteringen å forenkle distribusjonsprosessen slik at enhver ingeniør i teamet ditt er i stand til å distribuere koden sin. Dette er ikke å si at operasjoner ikke har unik kunnskap, eller at operasjonsteam kan oppløses.

Driftsfolk vil alltid ha unik kunnskap om infrastruktur, lastbalansering og lignende. Å fjerne den manuelle oppgaven med å distribuere programvare fra operasjonsteamet ditt vil faktisk spare deg for tid og penger andre steder. De vil ha tid til å jobbe med å forbedre applikasjonens pålitelighet og vedlikeholdbarhet.

Det viktigste aspektet av en leveringslivssyklus innenfor DevOps-rammene er at det er en sann sløyfe. Når du kommer til slutten, går du helt tilbake til begynnelsen. Hvis du får tilbakemelding fra kundene når som helst underveis, gå tilbake til en påfølgende fase (eller planleggingsfasen), slik at du kan utvikle programvare på en måte som best tjener kundene dine.

Den første delen av å bygge en rørledning er å behandle den lineært. Du bygger en rett linje med faste stadier og sjekkpunkter underveis. Innenfor denne rammen kan du se livssyklusen for programvareutvikling som noe du starter og noe du er ferdig med. Fosselskere ville være stolte.

Men virkeligheten lar deg ikke jobbe i en rett linje. Du kan ikke bare begynne å produsere kode, fullføre og gå bort. I stedet er du tvunget til å bygge videre på den grunnleggende programvaren du ga ut på den første iterative sløyfen og forbedre den gjennom andre syklus. Og så videre og så videre. Prosessen slutter aldri, og du vil aldri slutte å forbedre deg.

DevOps-prosessen hjelper deg å koble til start og slutt på den rette rørledningen, slik at du begynner å forstå den som en hel krets, eller loop, slik at du kontinuerlig kan utvikle og forbedre deg.