Što je SRE? Ključna uloga inženjera pouzdanosti web mjesta

Kako se svijet promijenio na mreži, pouzdanost web stranica, aplikacija u oblaku i infrastruktura u oblaku postala je presudan poslovni imperativ - za sve, od e-trgovine do globalnih banaka do tražilica.

Promijenio se način upravljanja sustavima i njihovim radnim opterećenjima. Danas rijetko razmišljamo u smislu dragocjenih poslužitelja visokih performansi, osjetljivih na dodir, ali umjesto toga stojimo na stalku robnih poslužitelja objedinjenih virtualizacijom, s distribuiranom softverskom arhitekturom koja sprječava da ispadi poslužitelja uzrokuju zastoje. Fokus se prebacio s hardverske na softverski definiranu infrastrukturu te s nedosljednih i pogreškama sklonih ručnih procesa na dosljedne, pouzdane i ponovljive automatizirane zadatke.

Inženjering pouzdanosti mjesta praksa je održavanja te programabilne infrastrukture i maksimiziranja dostupnosti radnih opterećenja koja se na njoj izvode. Naziv radnog mjesta inženjera pouzdanosti web mjesta (SRE) nastao je u Googleovim dvoranama, koje su na prijelazu milenija željele redefinirati odnos između programera softvera i operativnog osoblja - i pomoći im u zajedničkoj suradnji na izgradnji čvrstih, fleksibilnih sustava stalno usavršavanje i automatizacija kao temeljni principi.

Što je SRE?

Na osnovnoj razini, SRE-ovi donose principe softverskog inženjerstva u infrastrukturne i operativne probleme, s ciljem sjeverne zvijezde stvaranja visoko skalabilnih i pouzdanih sustava.

"U osnovi, to se događa kada od softverskog inženjera zatražite da osmisli operativnu funkciju", kako se često citira Ben Treynor, potpredsjednik inženjerstva u Googleu i kum SRE-a.

Glavna je odgovornost SRE-a uspostavljanje pragova razine usluge, koji se često manifestiraju kao ciljevi na razini usluge (SLO), koji pomažu u informiranju hoće li se izdanje dobiti zeleno svjetlo. Sveti gral uvijek je svetih 'pet devetka' ili 99,999% vremena rada. Što je bolja produktivnost, više programera užeta može lansirati nove nove stvari i više SRE-ova za spavanje, što dovodi do uzajamno korisnog odnosa između funkcija, što je daleko od starih vremena programera i antagonizma operacija.

SRE funkcija obično će se mjeriti na skupu ključnih mjernih podataka pouzdanosti, a to su: izvedba sustava, dostupnost, kašnjenje, učinkovitost, nadzor, planiranje kapaciteta i reagiranje u nuždi.

[Također na: Nadgledanje aplikacije: Što devops može učiniti bolje]

Ključne poslovne odgovornosti SRE-a

Bilo koji dobar SRE bit će opsjednut jednom posebno, automatizacijom.

Kao što Jason Qualman, SRE u nadzoru dobavljača softvera New Relic, navodi u blogu: „Mnogo je uloga razmišljanja o neučinkovitim i dugotrajnim stvarima koje ljudi rade i zaustavljanju njih što je prije moguće. Umjesto da bacate limenku na ručni rad, vi kažete: 'Odvojit ću vrijeme da to automatiziram odmah i zaustaviti bilo koga drugog da čini ovu bolnu stvar.' "

Sljedeći ključni element uloge SRE-a je nešto što se naziva "inženjering izdanja", što uključuje definiranje najboljih praksi kako bi se osiguralo da su izdanja softvera dosljedna i ponovljiva.

„Inženjeri izdanja solidno (ako ne i stručno) razumiju upravljanje izvornim kodom, kompajlere, konfiguracijske jezike gradnje, automatizirane alate za izgradnju, upravitelje paketa i programe za instalaciju. Njihov niz vještina uključuje duboko znanje o više domena: razvoj, upravljanje konfiguracijom, integracija testova, administracija sustava i korisnička podrška “, napisala je Dinah McNutt, voditeljica tehničkog programa u Googleu, za osnovnu knjigu Site Reliability Engineering (objavila O'Reilly u 2016. i autori Googlera Jennifer Petoff, Niall Richard Murphy, Chris Jones i Betsy Beyer).

Zatim tu je dio uloge koji reagira, što uključuje uzbunjivanje, dežurstvo i rješavanje problema, zajedno s odgovorima na hitne slučajeve i incidente te postmortems.

U osnovi je važno da SRE znaju kako najbolje nadzirati sustave i reagirati kada stvari krenu po zlu, neprestano pišući i prepisujući knjige odgovora kako bi smanjili vrijeme za otklanjanje kvarova koji se mogu dogoditi. U Googleu to uključuje dokumentiranje incidenta, razumijevanje svih temeljnih uzroka i provođenje budućih preventivnih radnji.

"Pisanje postmortal-a nije kazna - to je prilika za učenje za cijelu tvrtku", pišu Googleari John Lunney i Sue Lueder u poglavlju knjige Inženjering pouzdanosti web mjesta .

[Također na: 3 koraka za primjenu agilnih metodologija u IT operacijama]

SRE protiv inženjera devops

Znam o čemu razmišljaš. Sve to zvuči jako poput devopsa, ali što se tiče terminologije, naziv radnog mjesta SRE zapravo prethodi datumu inženjera devopsa za otprilike pet godina.

Obje su utemeljene na sličnim načelima, ali razlika je i suptilna i važna. Oba načina rada uključuju rušenje barijera između programera i operativnog osoblja, a oba imaju za cilj povećati brzinu razvojnih timova, a istovremeno zadržati temeljnu elastičnost tih usluga.

Ključna je razlika u tome što se inženjeri devops-a nastoje usredotočiti na podršku kontinuiranoj isporuci i brzini programera, dok SRE preuzimaju odgovornost za pouzdanost i automatizaciju tijekom životnog ciklusa softvera, s naglaskom na uspješnoj implementaciji i praćenju izdanja i zadržavanju softverski definirane infrastrukture. SRE ima integriranu funkciju u širem inženjerskom timu: osiguravanje da za stolom bude sjedište stručnjaka usmjereno na izgradnju stabilnih sustava.

Kako kaže Jayne Groll iz Instituta Devops: „Devops se fokusira na kontinuirano inženjerstvo do točke raspoređivanja; SRE se fokusira na kontinuirano inženjerstvo na mjestu potrošnje kupaca. "

Povijest SRE-a na Googleu

Traganje za principima SRE-a do njihova podrijetla u Googleu početkom 2000-ih pruža ključnu lekciju iz ove discipline.

„Kad sam došao u Google, imao sam tu sreću da budem dio tima koji je djelomično bio sastavljen od ljudi koji su bili softverski inženjeri i koji su bili skloni koristiti softver kao način rješavanja problema koji su se u povijesti rješavali ručno. Dakle, kad je bilo vrijeme za stvaranje službenog tima koji će obaviti ovaj operativni posao, bilo je prirodno pristupiti pristupu 'sve se može tretirati kao softverski problem' i pokrenuti se s tim, "izjavio je Ben Treynor u intervjuu na Googleovom internom blogu.

„Dakle, SRE u osnovi radi posao koji je u povijesti radio operativni tim, ali koristeći inženjere sa softverskom stručnošću i oslanjajući se na činjenicu da su ti inženjeri u osnovi predisponirani i sposobni zamijeniti automatizaciju ljudskim radom, ”Dodaje Treynor.

Google također prilično kruto razmišlja o tome kako sastaviti SRE tim. Svi Google SRE-ovi moraju biti ili Googleovi softverski inženjeri ili „kandidati koji su vrlo blizu kvalifikacijama za Google Software Engineering“. Moraju imati i vještine upravljanja infrastrukturom, najčešće „Internacionalnost sustava Unix i stručnost umrežavanja (sloj 1 do sloj 3)“.

Kvalifikacije za SRE i dalje se razlikuju od tvrtke do tvrtke, no što se tiče osnovnih načela, Googleov pristup solidno je polazište. Pojedinosti će ovisiti o poslovnim potrebama, uspostavljenim procesima i tehnologiji koju je organizacija već usvojila.

SRE opis posla i plaća

SRE obično provode oko 50 posto svog vremena obavljajući tradicionalne operativne funkcije, poput dežurstva i priskakanja radi rješavanja problema. Preostalih 50 posto usredotočeno je na razvoj softvera kako bi temeljni sustavi s vremenom postali otporniji, automatizirani i samoizlječivi. Zato ta uloga zahtijeva solidnu kombinaciju softverskih inženjerskih kotleta i operativnih vještina. Bit će organiziran dobar SRE, hladan pod pritiskom i rješenje problema. SRE menadžeri odgovorni su za učinak tima, strategiju i optimizaciju.

Ali što je s organizacijama u kojima uloga SRE ne postoji? U O'Reillyjevom izvještaju "Što je SRE?" Kurt Andersen iz LinkedIn-a i Craig Sebenik iz Splita (dobavljač softvera za upravljanje izdanjima) preporučuju pristup „lokalnom nivou“. Oni preporučuju pronalazak „razvojnog tima koji je motiviran da tamo promijeni i implementira mali SRE tim (ili pojedinca). S vremenom taj uspjeh možete koristiti kao pozitivan primjer ostalim momčadima. "

Prosječna godišnja plaća za SRE iznosi otprilike 130 000 USD u SAD-u i 76 000 GBP u Velikoj Britaniji, prema web mjestu za zapošljavanje Indeed.

SRE resursi

Brojni su resursi za izgradnju vještina SRE, od certifikata Instituta DevOps do knjiga i mrežnih resursa O'Reillyja, Microsofta i Googlea. Spomenuti tehnički inženjering pouzdanosti web stranica na 550 stranica, koji su   napravili Jennifer Petoff, Niall Richard Murphy, Chris Jones i Betsy Beyer, priručnik je o toj temi, objavljen 2016. Knjiga je dostupna i besplatno putem interneta od Googlea. 

Ostale novije knjige na tu temu uključuju  inženjere pouzdanosti web mjesta za obuku  Jennifer Petoff, JC van Winkel i Preston Yoshioka; Što je SRE?  Kurt Andersen i Craig Sebenik; Traženje SRE-  a Davida N. Blank-   Edelmana i Radnu knjigu o pouzdanosti web mjesta Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara i Stephen Thorne.

O'Reilly također ima opsežnu biblioteku internetskih materijala, videozapisa i e-knjiga na tu temu, koje je na ovom popisu pjesama SRE Essentials lako kustosirala bivša inženjerka Googleove pouzdanosti web stranica Liz Fong-Jones.

Coursera za mrežno učenje nudi nekoliko tečajeva, uključujući popularni inženjering pouzdanosti web mjesta: mjerenje i upravljanje pouzdanošću iz Google Cloud Traininga. Ovaj tečaj je također dostupan kod tvrtke Pluralsight, kao i početni tečaj Engineering Reliability Engineering (SRE): Velika slika Eltona Stonemana. Linux Foundation nudi samoupravni tečaj pod nazivom DevOps i SRE Fundamentals: Implementing Continuous Delivery.

Trening meduza sa sjedištem u Velikoj Britaniji nudi razne dvodnevne mogućnosti privatnog tečaja za SRE Foundation (SREF).

Pročitajte više o devopima

  • Što je devops? Transformacija razvoja softvera
  • 3 načina za pokretanje programa devopsa
  • Razvija najbolje prakse: 5 metoda koje biste trebali usvojiti
  • 15 KPI za praćenje transformacije devopsa
  • Praćenje aplikacija: Što devops može učiniti bolje
  • Tamo gdje inženjering pouzdanosti web mjesta susreće devops
  • 5 principa za postajanje suradničkim agilnim devopskim timom
  • 3 koraka za primjenu agilnih metodologija u IT operacijama
  • Kako agilni timovi mogu podržati upravljanje incidentima
  • Kako dataops poboljšava podatke, analitiku i strojno učenje
  • Primjena devopa u znanosti o podacima i strojnom učenju
  • 7 pitanja za davanje prioriteta zaostatku u devopsu