En gang til om DevOps og SRE

Basert pÄ diskusjonen i chatten AWS Minsk Community

Det har pÄgÄtt ekte kamper i det siste om definisjonen av begrepene DevOps og SRE.
Selv om diskusjonene om dette emnet har blitt gjentatt mange ganger, inkludert av meg selv, bestemte jeg meg for Ä ta opp temaet i Habr-samfunnet og dele mine synspunkter. De som er interesserte, er velkomne under katte. Og la oss starte alt pÄ nytt!

Bakgrunn

SÄ, i gamle dager var det en separat gruppe programvareutviklere og serveradministratorer. De fÞrste skrev koden, mens de andre, med ulike varme og kjÊrlige ord til de fÞrste, satte opp servere, og kom innom utviklerne pÄ periodisk basis for Ä fÄ det uttÞmmende svaret 'det fungerer pÄ maskinen min'. Virksomheten ventet pÄ programvaren, alt sto stille, oppstod problemer, og alle var nervÞse. Spesielt den som betalte for alt dette rotet. Den gode gamle tiden. Vel, dere vet jo hvor DevOps stammer fra.

FĂždsel av DevOps praksiser

SĂ„ kom seriĂžse karer og sa — dette er ikke industrien, slik kan vi ikke jobbe. Og de dro frem livssyklusmodeller. For eksempel V-modellen.

En gang til om DevOps og SRE
SĂ„, hva ser vi? Virksomheten kommer med en konsept, arkitektene designer lĂžsninger, utviklerne skriver koden, og sĂ„ — en kollaps. Noen tester produktet pĂ„ en eller annen mĂ„te, noen leverer det til sluttbrukeren, og et sted pĂ„ utgangen av denne mirakulĂžse modellen sitter en ensom forretningsbestiller og venter pĂ„ det lovede av havet. Det ble konkludert med at det trengs metoder som kan organisere denne prosessen. De bestemte seg for Ă„ opprette praksiser for Ă„ realisere dette.

Litt om hva jeg mener med praksis
Med praksis forstĂ„r jeg en kombinasjon av teknologi og disiplin. Et eksempel — praksisen av Ă„ beskrive infrastruktur med kode i terraform. Disiplin er mĂ„ten koden beskriver infrastrukturen, det ligger i hodet pĂ„ utvikleren, mens teknologien er selve terraform.

De bestemte seg for Ă„ kalle dem DevOps-praksiser — jeg antar de mente fra utvikling til drift. De fant pĂ„ forskjellige intrikate konsepter — CI/CD-praksiser, praksiser basert pĂ„ IaC-prinsippet, tusenvis av dem. Og det begynte, utviklerne skriver kode, DevOps-ingeniĂžrene transformerer systembeskrivelsen i kode til fungerende systemer (ja, koden er dessverre bare en beskrivelse og ikke selve systemet), leveringen ruller, og sĂ„ videre. Tidligere administratorer, som mestret de nye praksisene, skiftet stolt til DevOps-ingeniĂžrer, og alt begynte. Og det var kveld, og det var morgen
 beklager, ikke derfra.

Alt er ikke bra igjen

Bare ting hadde lagt seg, og forskjellige smarte «metodologer» begynte Ă„ skrive tjukke bĂžker om DevOps-praksiser, og debattene blusset stille opp om hvem den beryktede DevOps-ingeniĂžren egentlig er, og at DevOps er en produksjonskultur, og misnĂžyen begynte Ă„ boble opp. Det ble plutselig oppdaget at programvarelevering er en helt ikke-triviell oppgave. Hver utviklingsinfrastruktur har sin egen teknologistack, noen steder mĂ„ man samle, noen steder mĂ„ man rulle ut miljĂžet, her trenger man tomcat, her er det behov for en mer komplisert mĂ„te Ă„ starte — sĂ„ hodet spinner. Og sĂ„ var faktisk problemet, merke det eller ei, fĂžrst og fremst organiseringen av prosessene — denne leveringsfunksjonen, som en flaskehals, begynte Ă„ blokkere prosessene. I tillegg ble drift (Operations) ikke avskaffet. Den er ikke synlig i V-modellen, men der er hele livssyklusen til hĂžyre. Til slutt mĂ„ man ogsĂ„ opprettholde infrastrukturen, overvĂ„ke, hĂ„ndtere hendelser, og samtidig jobbe med leveranser. Det vil si, sitte med ett bein i utvikling og ett bein i drift — og plutselig fikk man en slik Development & Operations. Og sĂ„ kom det et stort hype for mikroservere. Og med dem begynte utviklingen fra lokale maskiner Ă„ flytte til skyen — prĂžv Ă„ debuggere noe lokalt nĂ„r det er titalls og hundrevis av mikroservere, her blir kontinuerlig leveranse et middel for Ă„ overleve. For en «liten beskjeden bedrift» er det klart at det gĂ„r an, men hva med Google?

SRE fra Google

SĂ„ kom Google, spiste de stĂžrste kaktusene og bestemte at de ikke trengte det. De trengte pĂ„litelighet. Og pĂ„litelighet mĂ„ administreres. De bestemte seg for at de trengte spesialister som skulle hĂ„ndtere pĂ„liteligheten. De kalte dem SR-ingeniĂžrer og sa: her har dere alt, gjĂžr det som vanlig, bra. Her har dere SLI, her har dere SLO, her er overvĂ„kningen. Og pekte nesen deres mot driftsavdelingen. Og kalte sitt «pĂ„litelige DevOps» SRE. Det sĂ„ bra ut, men det er en skitten hack som Google kunne tillate seg — at pĂ„ SR-ingeniĂžrstillingen ansetter folk som hadde kvalifikasjoner som utviklere og som i tillegg hadde litt erfaring med driften av virksomme systemer. Og Google har problemer med Ă„ ansette slike folk — hovedsakelig fordi de konkurrerer med seg selv — noen mĂ„ jo ogsĂ„ beskrive forretningslogikken. De delte opp leveransen pĂ„ release-ingeniĂžrene, SR-ingeniĂžrer styrer pĂ„liteligheten (selvfĂžlgelig ikke direkte, men ved Ă„ pĂ„virke infrastrukturen, endre arkitekturen, overvĂ„ke endringer og indikatorer, og hĂ„ndtere hendelser). Det er pent, kan man si Ă„ skrive bĂžker. Men hva gjĂžr man hvis man ikke er Google, men pĂ„litelighet likevel bekymrer en?

Utvikling av DevOps ideer

Her kommer Docker inn, utviklet fra lxc, samt ulike orkestreringssystemer som Docker Swarm og Kubernetes, og DevOps-ingeniĂžrene pustet lettet ut — standardisering av praksiser forenklet leveransen. Det ble forenklet til det punktet at det til og med ble mulig Ă„ gi leveransen til utviklerne — hva er vel deployment.yaml. Containerisering lĂžser problemet. Dessuten er modenheten til CI/CD-systemene pĂ„ nivĂ„et der man bare mĂ„ skrive Ă©n fil og sĂ„ bĂŠrer det av sted — utviklerne klarer seg selv. Og her begynner vi Ă„ snakke om hvordan vi lager vĂ„rt eget SRE, med
 ja, hvem som helst.

SRE ikke i Google

Javel, vi har gitt fra oss leveringen, ser ut som vi kan puste ut, komme tilbake til de gode gamle tider, hvor administratorene sĂ„ pĂ„ prosessorlasten, perfeksjonerte systemene og stille nippte fra kopper med noe udefinerbart i stillhet og ro... Vent. Vi gjorde ikke dette for Ă„ slappe av (dessverre!). Plutselig viser det seg at i Googles tilnĂŠrming kan vi helt klart ta i bruk gode praksiser — det er ikke prosessorlasten som er viktig, og ikke hvor ofte vi bytter ut diskene, eller hvor mye vi optimaliserer kostnadene i skyen, men forretningsmetrikker — alle de berĂžmte SLx-ene. Og administrasjon av infrastrukturen er fortsatt pĂ„ agendaen, og vi mĂ„ hĂ„ndtere hendelser, og periodisk vĂŠre pĂ„ vakt, og generelt ha oversikt over forretningsprosessene. Og gutter, begynne Ă„ programmere pĂ„ et hĂžyt nivĂ„, Google har ventet pĂ„ dere.

For Ă„ oppsummere. Plutselig, men du er allerede sliten av Ă„ lese og kan ikke vente med Ă„ kaste deg over og skrive til forfatteren i kommentarfeltet. DevOps som leveringspraksis har vĂŠrt, er og vil alltid vĂŠre der. Og den forsvinner ikke noe sted. SRE som et sett med driftspraksiser gjĂžr denne leveringen vellykket.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster