Sistēmas uzticamības inženierija salīdzinājumā ar ad hoc apkopi
Sistēmas uzticamības inženierija (SRE) ir strukturēta disciplīna, ko pirmo reizi izveidoja Google un kas izmanto programmatūras inženierijas principus ražošanas sistēmu pārvaldībai, savukārt ad hoc uzturēšana ir reaģējoša, neplānota pieeja problēmu novēršanai, tiklīdz tās rodas. Izvēle starp tām nosaka, kā komandas tiek galā ar darbības laiku, incidentiem un ilgtermiņa darbības veselību.
Iezīmes
SRE pārvērš darbību par inženiertehnisku disciplīnu ar izmērāmiem uzticamības mērķiem, savukārt ad hoc apkope to uzskata par reaktīvu ugunsdzēsību.
Kļūdu budžeti sniedz SRE komandām kopīgu sistēmu uzticamības un funkciju ātruma līdzsvarošanai — kaut kas tāds, kas ad hoc pieejās pilnībā trūkst.
Automatizācija ir SRE pamatā, bet ad hoc vidē tā ir izvēles iespēja, kas laika gaitā noved pie darba apjoma pieauguma.
Nevainojamas pēcapkopes SRE rada organizatorisku mācīšanos, savukārt ad hoc apkope parasti atkārto tās pašas kļūdas.
Kas ir Sistēmas uzticamības inženierija?
Proaktīva inženierijas disciplīna, kas piemēro programmatūras praksi darbībās, tiecoties pēc izmērāmas uzticamības, izmantojot automatizāciju un definētus pakalpojumu līmeņa mērķus.
SRE ap 2003. gadu Google izveidoja Bens Treinors Sloss, lai novērstu plaisu starp izstrādes un operāciju komandām.
Disciplīna koncentrējas uz pakalpojumu līmeņa mērķiem (SLO), pakalpojumu līmeņa indikatoriem (SLI) un kļūdu budžetiem kā galvenajiem uzticamības rādītājiem.
Google SRE komandas parasti ierobežo operatīvo slodzi līdz 50% no inženiera laika, bet atlikušo laiku atvēl inženiertehniskajiem darbiem.
SRE uzsver nevainojamu pēcnāves pieredzi, uzskatot neveiksmes par mācību iespējām, nevis par pamatu sodam.
Šo pieeju ir pieņēmušas tādas lielas organizācijas kā Microsoft, Amazon, LinkedIn un IBM, lai pārvaldītu liela mēroga izkliedētas sistēmas.
Kas ir Ad hoc apkope?
Neplānota, reaģējoša apkopes stratēģija, kurā labojumi tiek veikti tikai tad, kad sistēmas sabojājas vai problēmas kļūst redzamas, bez iepriekš noteiktām procedūrām vai grafikiem.
Ad hoc apkopi izraisa tūlītēji simptomi, piemēram, elektroenerģijas padeves pārtraukumi, veiktspējas pasliktināšanās vai lietotāju sūdzības, nevis plānotas pārskatīšanas.
Tam parasti trūkst dokumentācijas standartu, kas nozīmē, ka labojumi lielā mērā ir atkarīgi no tā, kurš inženieris ir pieejams.
Šāda pieeja ir izplatīta mazās komandās vai jaunizveidotos uzņēmumos, kas vēl nav formalizējuši savu darbības praksi.
Ad hoc apkope bieži noved pie atkārtotiem incidentiem, jo pamatcēloņi reti tiek sistemātiski risināti.
Nozares pētījumi konsekventi liecina, ka neplānotas dīkstāves uzņēmumiem izmaksā no 100 000 līdz 400 000 USD stundā atkarībā no nozares.
Salīdzinājuma tabula
Funkcija
Sistēmas uzticamības inženierija
Ad hoc apkope
Pieejas veids
Proaktīvs un strukturēts
Reaktīvs un neplānots
Uzticamības mērīšana
SLO, SLI un kļūdu budžeti
Nav oficiālu metriku, kas tiktu izsekotas
Incidentu reaģēšana
Dokumentētas izpildes grāmatas un dežūru rotācijas
Lai ko nolemtu pieejamais inženieris
Automatizācijas līmenis
Augsta automatizācija ir pamatprincips
Zems — dominē manuāli labojumi
Dokumentācija
Visaptverošas pēcnāves analīzes un rokasgrāmatas
Minimāls vai nekonsekvents
Vispiemērotākais
Liela mēroga, misijai kritiski svarīgas sistēmas
Mazi projekti vai agrīnās stadijas produkti
Izmaksas laika gaitā
Lielākas sākotnējās investīcijas, zemākas ilgtermiņa izmaksas
Zemākas sākotnējās, pieaugošās izmaksas, kas rodas elektroapgādes pārtraukumu dēļ
Komandas struktūra
Īpaša SRE vai platformas komanda
Dalīta atbildība bez īpašumtiesībām
Detalizēts salīdzinājums
Filozofija un domāšanas veids
SRE pamatā ir uzskats, ka uzticamība ir funkcija, nevis pēcpārdomāta lieta. Tā uzskata darbības par programmatūras problēmu un piemēro inženiertehnisku stingrību visam, sākot no izvietošanas cauruļvadiem līdz incidentu reaģēšanai. Turpretī ad hoc apkope uzskata darbības par ugunsgrēka dzēšanas vingrinājumu, kura mērķis ir vienkārši pēc iespējas ātrāk atjaunot pakalpojumu sniegšanu. Filozofiskā plaisa starp šīm divām pieejām ir milzīga — viena veido sistēmas, kas nevainojami sabojājas, bet otra steidzas, kad rodas kļūmes.
Mērīšana un atbildība
Viens no SRE nozīmīgākajiem ieguldījumiem ir tā uzstājība uzticamības kvantitatīvu noteikšanu. Komandas definē, kas izskatās “pietiekami labs”, izmantojot SLO, un izseko sniegumu, izmantojot SLI, un kļūdu budžeti nodrošina kopīgu valodu starp izstrādi un darbību. Ad hoc apkopei nav līdzvērtīga ietvara, kas nozīmē, ka nav objektīva veida, kā zināt, vai lietas uzlabojas vai pasliktinās. Bez mērījumiem komandas bieži darbojas pēc intuīcijas, kas mēdz nenovērtēt risku, līdz brīdim, kad notiek nopietns incidents, kas liek pievērst uzmanību.
Automatizācija un darba samazināšana
SRE uzskata atkārtotu manuālu darbu — ko sauc par “smagu darbu” — par nodokli, kas jāsamazina, automatizējot. Google oriģinālajā SRE grāmatā ieteikts ierobežot inženiera slodzi zem 50% no darba laika, lai pārējo varētu veltīt jēgpilniem inženiertehniskiem uzlabojumiem. Ad hoc apkopes vides bieži vien slīkst slodzē, jo katrs labojums ir manuāls un vienreizējs. Laika gaitā tas rada apburto loku, kurā inženieri tik daudz laika pavada, dzēšot ugunsgrēkus, ka nekad neizveido automatizāciju, kas tos novērstu.
Incidentu pārvaldība un mācīšanās
Kad SRE vidē kaut kas sabojājas, reaģēšana notiek saskaņā ar noteiktu procesu: brīdinājumi aktivizē dežūru rotācijas, izpildes grāmatas vada reaģētājus, un nevainojamas pēcoperācijas apkopojumi apkopo gūtās atziņas. Šī sistemātiskā pieeja nozīmē, ka katrs incidents padara sistēmu spēcīgāku. Ad hoc apkopē incidenti tiek risināti haotiski, bieži vien to dara tas, kurš ir pieejams, un vieni un tie paši pamatcēloņi mēdz radīt atkārtotus darbības pārtraukumus. Organizācija nekad neuzkrāj institucionālās zināšanas, jo nav konsekventa mehānisma to apkopšanai.
Izmaksas un mērogojamība
SRE prasa ievērojamas sākotnējās investīcijas rīkos, apmācībā un procesu izstrādē, taču tas atmaksājas, sistēmām mērogojot savu darbību. Uzņēmumi, kas nodrošina uzticamus pakalpojumus Google vai Netflix mērogā, nevarētu izdzīvot, izmantojot ad hoc praksi — sarežģītība pārslogotu jebkuru reaģējošu komandu. Tomēr nelielam jaunuzņēmumam ar nedaudziem lietotājiem ad hoc apkope varētu būt pilnīgi racionāla. Galvenais ir atpazīt, kad esat to pāraudzis, kas parasti notiek ap laiku, kad klientu uzticība sāk mazināties atkārtotu elektroenerģijas padeves pārtraukumu dēļ.
Priekšrocības un trūkumi
Sistēmas uzticamības inženierija
Iepriekšējumi
+Kvantitatīvi nosakāma uzticamība
+Samazināts darbs laika gaitā
+Spēcīga reaģēšana uz incidentiem
+Nepārtrauktas pilnveidošanās kultūra
Ievietots
−Augstas sākotnējās investīcijas
−Nepieciešama kultūras maiņa
−Sarežģīti ieviest
−Nepieciešama īpaša ekspertīze
Ad hoc apkope
Iepriekšējumi
+Zemas sākotnējās izmaksas
+Elastīgs un ātrs
+Nav procesuālās birokrātijas
+Viegli iedarbināt
Ievietots
−Neparedzams dīkstāves laiks
−Zināšanu silos
−Atkārtoti pamatcēloņi
−Tehniskā parāda pieaugums
Biežas maldības
Mīts
SRE ir tikai iedomāts nosaukums operācijām.
Realitāte
SRE principiāli atšķiras no tradicionālajām operācijām, jo programmatūras inženierija tiek piemērota operacionālām problēmām un uzticamība tiek uzskatīta par produkta funkciju. Tradicionālās darbības bieži vien koncentrējas uz sistēmu manuālu darbību, savukārt SRE inženieri veido automatizāciju, kas jau sākotnēji novērš manuālas iejaukšanās nepieciešamību.
Mīts
Ad hoc uzturēšana ir lētāka, jo nav procesu pieskaitāmo izmaksu.
Realitāte
Lai gan ad hoc uzturēšana ļauj izvairīties no sākotnējām procesu izmaksām, tā laika gaitā parasti kļūst daudz dārgāka atkārtotu pārtraukumu, ilgstošu atkļūdošanas sesiju un tehniskā parāda salikto izmaksu dēļ. Pētījumi par neplānotu dīkstāvi regulāri liecina, ka vidēja lieluma uzņēmumiem izmaksas sasniedz simtiem tūkstošu dolāru stundā.
Mīts
Lai gūtu labumu no SRE, jūsu uzņēmumam jābūt Google izmēram.
Realitāte
SRE principi — SLO, kļūdu budžeti, automatizācija, nevainojama pēcoperācijas analīze — efektīvi tiek mērogoti. Daudzas mazas un vidēja lieluma komandas ievieš šo prakšu vieglākas versijas un ievērojami uzlabo uzticamību, neizmantojot īpaši izveidotu SRE organizāciju.
Mīts
SRE novērš visus elektroenerģijas padeves pārtraukumus.
Realitāte
SRE nesola pilnīgu kļūmi — tā pieņem, ka kļūmes ir neizbēgamas, un koncentrējas uz to pārvaldību pieņemamās robežās, ko nosaka kļūdu budžeti. Mērķis ir ātra atklāšana, ātra atkopšana un mācīšanās no katra incidenta, nevis pilnība.
Mīts
Ad hoc apkope darbojas labi, ja jums ir labi inženieri.
Realitāte
Pat izcili inženieri nevar kompensēt trūkstošos procesus, dokumentāciju un automatizāciju. Varonīgas individuālas pūles nav ilgtspējīga uzticamības stratēģija, un tās rada izdegšanu, vienlaikus atstājot organizāciju atkarīgu no konkrētiem cilvēkiem, nevis no spēcīgām sistēmām.
Bieži uzdotie jautājumi
Kāda ir galvenā atšķirība starp SRE un tradicionālajām operācijām?
Galvenā atšķirība ir tā, ka SRE piemēro programmatūras inženierijas principus operāciju darbam, īpašu uzsvaru liekot uz automatizāciju, mērīšanu un manuālā darba samazināšanu. Tradicionālās darbības mēdz būt vairāk manuālas un reaģējošas, koncentrējoties uz sistēmu darbības uzturēšanu, nevis uz to izstrādi, lai tās būtu uzticamākas. SRE ievieš arī formālus jēdzienus, piemēram, SLO un kļūdu budžetus, kas tradicionālajās operācijās parasti trūkst.
Vai neliela komanda var praktizēt SRE?
Pilnīgi noteikti. Mazas komandas var ieviest SRE principus, neizveidojot atsevišķu SRE nodaļu. Sāciet ar SLO definēšanu svarīgākajiem pakalpojumiem, ieviešot pamata uzraudzību un brīdināšanu, rakstot izpildes grāmatas bieži sastopamiem incidentiem un pakāpeniski automatizējot atkārtotus uzdevumus. Mērķis ir iestrādāt uzticamības domāšanu esošajā komandā, nevis izveidot atsevišķu silo.
Kas ir kļūdu budžets SRE sistēmā?
Kļūdu budžets ir maksimāli pieļaujamais pakalpojuma kļūmju līmenis, kas tiek aprēķināts kā 100% mīnus jūsu SLO mērķis. Piemēram, ja jūsu SLO ir 99,9% pieejamība, jūsu kļūdu budžets ir 0,1%, kas nozīmē, ka jūs varat atļauties aptuveni 43 minūtes dīkstāves mēnesī. Kad budžets ir izsmelts, funkciju izvietošana var tikt apturēta, lai koncentrētos uzticamības uzlabošanai, līdz pakalpojums stabilizējas.
Kāpēc ad hoc apkope tiek uzskatīta par riskantu?
Ad hoc apkope ir riskanta, jo tai trūkst struktūras, kas nepieciešama, lai novērstu atkārtotas kļūmes un konsekventi reaģētu uz incidentiem. Bez dokumentācijas, izpildes grāmatām vai pēcinstalācijas vienas un tās pašas problēmas mēdz parādīties atkal, un institucionālās zināšanas iesprūst atsevišķu inženieru galvās. Laika gaitā tas rada trauslas sistēmas, kas ir atkarīgas no konkrētu cilvēku pieejamības.
Kā darbojas nevainojamas pēcnāves izmeklēšanas?
Nevainīgas pēcaptaujas koncentrējas uz sistēmas un procesu kļūmēm, nevis individuālām kļūdām. Pēc incidenta komanda dokumentē notikušo, tā iemeslus un izmaiņas, kas novērsīs atkārtošanos, neuzvelot personisku vainu. Šāda pieeja veicina godīgu ziņošanu un palīdz organizācijām mācīties no neveiksmēm, nevis tās slēpt.
Kas ir darbs SRE kontekstā?
Noslogotība attiecas uz manuālu, atkārtotu operatīvu darbu, kas pieaug lineāri līdz ar sistēmas lielumu — tādas lietas kā pakalpojumu restartēšana, reaģēšana uz ikdienas brīdinājumiem vai manuāla izmaiņu ieviešana. SRE mērķis ir samazināt noslogotību, izmantojot automatizāciju, lai inženieri varētu veltīt vairāk laika projektiem, kas ilgtermiņā uzlabo uzticamību. Google slavenais ieteikums ir ierobežot noslogotību līdz mazāk nekā 50% no inženiera laika.
Kad uzņēmumam vajadzētu pāriet no ad hoc apkopes uz SRE?
Pāreja parasti ir lietderīga, kad dīkstāve sāk ietekmēt klientus vai ieņēmumus, kad komanda vairāk laika pavada ugunsgrēku dzēšanai nekā būvniecībai vai kad incidenti kļūst tik bieži, ka var graut uzticību. Citi iemesli ir normatīvās prasības attiecībā uz darbības laiku, strauja sistēmas sarežģītības pieaugums vai grūtības iekļaut jaunus inženierus nedokumentētu procesu dēļ.
Vai SRE ir tas pats, kas DevOps?
SRE un DevOps ir līdzīgi mērķi — nojaukt izolācijas starp izstrādi un darbību —, taču tie pieiet problēmai atšķirīgi. DevOps ir plašāka kultūras filozofija, kas uzsver sadarbību un nepārtrauktu piegādi, savukārt SRE ir specifiska ieviešana ar konkrētām praksēm, piemēram, SLO un kļūdu budžetiem. Daudzas organizācijas uzskata SRE par DevOps principu praktisku ieviešanu.
Kādus rīkus SRE komandas parasti izmanto?
Izplatītākie SRE rīki ietver Prometheus un Grafana uzraudzībai, PagerDuty vai Opsgenie brīdināšanai un dežūru pārvaldībai, Terraform vai Ansible infrastruktūras automatizācijai un tādus rīkus kā Chaos Engineering platformas noturības testēšanai. Konkrētais rīku komplekts atšķiras, taču pamatmērķis vienmēr ir viens: redzamība, automatizācija un ātra reaģēšana uz incidentiem.
Vai ad hoc apkope jebkad var būt pareizā izvēle?
Jā, ļoti specifiskos kontekstos. Prototipu, iekšēju rīku ar nelielu lietotāju skaitu vai agrīnās stadijas produktu gadījumā, kur ātrums ir svarīgāks par uzticamību, ad hoc apkope var būt racionāla izvēle. Galvenais ir būt godīgam par kompromisiem un izstrādāt plānu, kā ieviest vairāk struktūras, sistēmai pieaugot tās nozīmei un sarežģītībai.
Spriedums
Sistēmu uzticamības inženierija ir pareizā izvēle jebkurai organizācijai, kas darbojas ar ražošanas sistēmām, kurās dīkstāvei ir reālas sekas uzņēmējdarbībai, īpaši pieaugot sarežģītībai. Ad hoc apkope var darboties ļoti agrīnas stadijas projektos vai nekritiskiem iekšējiem rīkiem, taču tā ātri kļūst par apgrūtinājumu. Lielākā daļa nobriedušu inženierijas organizāciju galu galā pāriet no ad hoc prakses uz SRE iedvesmotiem ietvariem, pat ja tās pilnībā nepieņem Google modeli.