Baserat pÄ diskussionen i chatten
Den senaste tiden har det pÄgÄtt riktiga strider om definitionen av begreppen DevOps och SRE.
Trots att diskussionerna om detta Àmne redan kÀnns uttjatade, Àven för mig, har jag beslutat att lyfta fram min synpunkt för Habragemenskapen. De som Àr intresserade, vÀlkomna under katten. LÄt oss börja om pÄ nytt!
Bakgrund
SÄ, i gamla tider fanns det ett separat team av mjukvaruutvecklare och serveradministratörer. De förstnÀmnda skrev kod, medan de senare, med olika varma och kÀrleksfulla ord till de första, konfigurerade servrar, och dÄ och dÄ kom till utvecklarna och fick det uttömmande svaret: "Det fungerar pÄ min maskin." Företaget vÀntade pÄ programvaran, allt stod still, gick sönder ibland, och alla var stressade. SÀrskilt den som betalade för allt detta kaos. Den goda gamla lampans tid. Men ni vet redan var DevOps kommer ifrÄn.
Födelset av DevOps-praktiker
Senare kom allvarliga mÀn och sa - detta Àr ingen industri, sÄ hÀr kan man inte jobba. Och de tog med sig livscykelmodeller. HÀr Àr till exempel V-modellen.

SÄ, vad ser vi? AffÀren kommer med en koncept, arkitekterna utformar lösningar, utvecklarna skriver kod, och dÀrefter - en krasch. NÄgon testar produkten pÄ nÄgot sÀtt, nÄgon pÄ nÄgot sÀtt levererar den till slutanvÀndaren, och nÄgonstans i slutet av denna mirakelmodell sitter en ensam affÀrsbestÀllare och vÀntar pÄ lovad vÀder vid havet. Slutsatsen var - det behövs metoder som kan etablera denna process. De bestÀmde sig för att skapa praktiker som skulle genomföra dem.
En poetisk avstickare om vad som Àr praktik
Med praktik menar jag en koppling mellan teknik och disciplin. Exempel - praktik i att beskriva infrastruktur som kod med terraform. Disciplin handlar om hur man beskriver infrastrukturen med kod, den finns i utvecklarens huvud, medan tekniken Àr sjÀlva terraform.
De bestĂ€mde sig för att kalla dem DevOps-praktiker â jag tror de syftade pĂ„ frĂ„n utveckling till drift. De kom pĂ„ olika komplicerade saker â CI/CD-praktiker, praktiker baserade pĂ„ IaC-principen, tusentals av dem. Och sĂ„ började det, utvecklarna skriver kod, DevOps-ingenjörer omvandlar systembeskrivningen i kodform till fungerande system (ja, koden Ă€r tyvĂ€rr bara en beskrivning, men inte en konkretisering av systemet), leveransen snurrar, och sĂ„ vidare. Tidigare administratörer, som bemĂ€strade de nya praktikerna, omklassificerade stolt sig sjĂ€lva till DevOps-ingenjörer, och allt satte fart. Och det blev kvĂ€ll, och det blev morgon⊠förlĂ„t, inte dĂ€rifrĂ„n.
Allt Àr Äterigen inte bra.
SĂ„ fort allt lagt sig, började olika smarta "metodologer" skriva tjocka böcker om DevOps-praktiker, det blossade upp diskussioner om vem den dĂ€r beryktade DevOps-ingenjören egentligen Ă€r och vad DevOps â Ă€r en kultur för produktion, missnöjet vĂ€xte Ă„terigen. Plötsligt upptĂ€cktes det att mjukvaruleverans Ă€r en absolut icke-trivial uppgift. Varje utvecklingsinfrastruktur har sin egen stack, ibland behöver man bygga, ibland behöver man sĂ€tta upp miljöer, hĂ€r behövs tomcat, hĂ€r behövs en ytterst intrikat metod för uppstart â i allmĂ€nhet, huvudet sprĂ€nger. Och sĂ„ var problemet, konstigt nog, först och frĂ€mst i processorganisationen â denna leveransfunktion, som en flaskhals, började blockera processerna. Dessutom har driftsĂ€ttningen (Operations) inte blivit avskaffad. Den syns inte i V-modellen, och dĂ€r Ă€r hela livscykeln till höger. SĂ„ i slutĂ€ndan behöver man hitta sĂ€tt att stödja infrastrukturen, hĂ„ll koll pĂ„ övervakningen och hantera incidenter, och dessutom syssla med leveranser. Det vill sĂ€ga, sitta med ett ben i utvecklingen och ett i driftsĂ€ttningen â och plötsligt fick vi Development & Operations. Och sĂ„ kom ocksĂ„ en massiv hype kring mikrotjĂ€nster. Med dem började utvecklingen flytta frĂ„n lokala maskiner till molnet â försök att debugga nĂ„got lokalt nĂ€r det finns tiotals och hundratals mikrotjĂ€nster, hĂ€r blir konstant leverans ett överlevnadsmedel. För ett "litet blygsamt företag" Ă€r det okej, men Ă€ndĂ„? Och Google?
SRE frÄn Google
Google kom, Ă„t de största kaktusarna och bestĂ€mde sig â vi behöver inte det hĂ€r, vi behöver pĂ„litlighet. Och pĂ„litlighet mĂ„ste vi hantera. De insĂ„g â vi behöver specialister som kan hantera pĂ„litligheten. De kallade dem SR-ingenjörer och sa, hĂ€r har ni allt, gör det som vanligt, bra. HĂ€r har ni SLI, hĂ€r har ni SLO, hĂ€r har ni övervakning. Och de pekade med magen pĂ„ operations. De kallade sin 'pĂ„litliga DevOps' SRE. Det verkar bra, men det finns ett fult hack som Google kunde tillĂ„ta sig â att anstĂ€lla personer som hade kvalifikationer som utvecklare och bara lite förstĂ„else för hur fungerande system fungerar just för SR-ingenjörspositionerna. Det finns fortfarande problem med att anstĂ€lla sĂ„dana personer, Ă€ven för Google, frĂ€mst för att de tĂ€vlar mot sig sjĂ€lva â nĂ„gon mĂ„ste ju beskriva affĂ€rslogiken. De lade leveransen pĂ„ release-ingenjörerna, SR-ingenjörerna hanterar pĂ„litligheten (sjĂ€lvklart inte direkt, utan genom att pĂ„verka infrastrukturen, Ă€ndra arkitekturen, övervaka förĂ€ndringar och parametrar, och hantera incidenter). Det ser bra ut. . Vad ska man göra om man inte Ă€r Google, men Ă€ndĂ„ Ă€r orolig för pĂ„litlighet?
Utvecklingen av DevOps-idéer
HĂ€r kom Docker in, som vĂ€xte fram ur lxc, och senare olika orkestreringssystem som Docker Swarm och Kubernetes, och DevOps-ingenjörerna andades ut â enhetligheten av praxis förenklade leveransen. Det blev sĂ„ enkelt att det till och med var möjligt att lĂ€mna över leveransen till utvecklarna â vad Ă€r deployment.yaml. Containerisering löser problemet. Och mognaden av CI/CD-systemen Ă€r nu pĂ„ nivĂ„ att man bara behöver skriva en fil och allt Ă€r igĂ„ng â utvecklarna klarar sig sjĂ€lva. Och hĂ€r börjar vi prata om hur vi ska skapa vĂ„rt SRE, med⊠ja, vem som helst.
SRE inte i Google
NĂ„vĂ€l, vi har slĂ€ppt leveransen, och vi kan tydligen andas ut, Ă„tervĂ€nda till de gamla goda tiderna nĂ€r administratörer övervakade processorbelastning, finjusterade system och tyst sippade nĂ„got oklart ur muggar i tystnad och lugn... Stopp. Det var inte dĂ€rför vi satte igĂ„ng allt detta (vilket Ă€r synd!). Plötsligt visar det sig att med Googles angreppssĂ€tt kan vi mycket vĂ€l anvĂ€nda utmĂ€rkta metoder â det handlar inte om processorbelastning, och inte hur ofta vi byter ut hĂ„rddiskar, eller hur vi optimerar kostnaderna i molnet, utan affĂ€rsmetrikarna â de sedvanliga SLx. Infrastrukturhantering har ingen tagit bort, incidenter mĂ„ste hanteras, man mĂ„ste stĂ„ vakt ibland, och man mĂ„ste överhuvudtaget vara insatt i affĂ€rsprocesserna. Och hörni, börja gĂ€rna programmera pĂ„ en högre nivĂ„, Google har redan vĂ€ntat pĂ„ er.
Sammanfattningsvis. Plötsligt, men ni Àr redan trötta pÄ att lÀsa och ni lÀngtar efter att skriva en kommentar till artikeln. DevOps som en leveransmetod har funnits, finns och kommer alltid att finnas. Det kommer inte att försvinna. SRE som en uppsÀttning driftsmetoder gör denna leverans framgÄngsrik.
KĂ€lla: habr.com
