SRE není továrna, kde se vše rozhoduje podle jasných pravidel: jak v GR8 Tech přistupují k atypickým infrastrukturním úkolům

Jak si ve společnosti GR8 Tech představují zřízení oddělení SRE (z anglického Site Reliability Engineering)? Jak je uspořádána struktura inženýrského týmu? A proč v infrastrukturních projektech mnohdy nefungují přísná pravidla? Nahlédněte do infrastruktury společnosti GR8 Tech.

Andrii Chygarkin, CIO GR8

Technologickou infrastrukturu si můžete představit jako budovu. Má bytové jednotky, okna a dveře, ale je zde také hlavní konstrukce – rám a základy. Na té pracují inženýři pro spolehlivost webu. Vytvářejí základ budovy – technologickou službu, platformu – a rozhodují, podle jakých principů se bude dále rozvíjet. Základním úkolem SRE je kompetentní design. Stavba musí být spolehlivá, schopná odolat zátěži a umožnit dalším účastníkům procesu podílet se na dalším vývoji. A pak architekti vybírají, jaké mají být „cihly“ tohoto projektu, a vývojáři přesouvají části vlastního kódu po „patrech“. Ne každá firma potřebuje plnohodnotného specialistu na SRE, natož tým. Taková systematická práce se zásadními položkami je většinou charakteristická pro technologické „mrakodrapy“ – velké webové služby nebo platformy.

„Každý startup, pokud je úspěšný, se dříve či později promění ve vysoký mrakodrap, a proto je důležité včas stanovit pravidla a upravit procesy. Ve společnosti GR8 Tech udržuje oddělení SRE infrastrukturu, kterou používají stovky, ne-li tisíce vývojářů. A naše vlastní poslání vidíme ve čtyřech hlavních směrech,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Vytvoření infrastruktury. Samotná technologická platforma by měla být založena na jednotných principech, které jsou konzistentní a uspořádané. A to je hlavní úkol – vytvořit takové prostředí a stanovit transparentní a srozumitelná pravidla.

Poskytnutí nástrojů. SRE není správce systému zodpovědný za každou maličkost. Cílem je zajistit, aby nástroje mohly používat všechny týmy ve firmě a zároveň se nezabředávalo do nuancí a jemností konfigurací v podstatě virtuálních strojů, databází, kontejnerů atd. „Známe profil firmy a zatížení služeb. A také dokážeme předvídat možné problémy, které pomáháme překonat,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Nařízení. Inženýr spolehlivosti webu je ve velké společnosti šerifem, který stanovuje pravidla a dohlíží na jejich dodržování. Je to obtížný, ale nesmírně důležitý úkol. Obvykle jeden konkrétní tým nepřemýšlí o tom, jak jeho služby a část infrastruktury ovlivňují ostatní. Pokud však systém praskne na jednom jediném místě, může to způsobit kolaps celého systému. A cílem SRE je zajistit, aby se tak nestalo.

Řízení a optimalizace zdrojů. Úkolem SRE je mimo jiné sledovat, jak jsou infrastruktura a nástroje využívány a jaké zdroje jsou na ně vynakládány. Koneckonců, můžete si koupit silný virtuální stroj a využívat jen polovinu jádra a 50 MB paměti RAM. Cílem je, aby požadavky týmu a nakládání se zdroji byly srovnatelné.

„Společnost GR8 Tech má dokonce nástroj FinOps Tool, který shromažďuje údaje o využití celé infrastruktury, rozděluje je podle týmů a zobrazuje množství vynaložených peněz. A náš tým pak poskytuje doporučení: tady se nevyužívají všechny možnosti, ale na jiném místě jsou důvody pro rozšíření kapacity nebo výkonu. U cloudových technologií je takový přístup nutností, protože jedno řešení může firmě buď ušetřit velké množství peněz, nebo je nesmyslně spálit,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Místo přísných pravidel – flexibilita a personalizace

Všechny tyto problémy lze vyřešit hladce a bez problémů pouze v ideálním světě. Skutečné podnikatelské prostředí je radikálně odlišné. Máte cíle a strategii firmy, které se čas od času revidují, organizační strukturu, která se může měnit doslova každý rok, a stovky, tisíce vývojářů – každý z nich má svůj vlastní úkol a pracuje s unikátním stackem. Proto není inženýrství spolehlivosti webu jen o inženýrském zázemí. Je to také o schopnosti jednat s úplně jinými zainteresovanými stranami – od vývojářů až po produktové a top manažery. Tato kombinace staví inženýry SRE před otázky, které nelze řešit lineárními postupy. Nejedná se o továrnu, kde můžete vydat návod a donutit všechny, aby se jím řídili. Specialisté SRE často musí opustit postupy podle učebnic a vymýšlet nové, nelineární přístupy k týmům.

Případ iniciativy tagování

Jedním z úkolů jako týmu SRE je inventarizovat infrastrukturu, abychom pochopili, jak s ní konkrétní tým pracuje a jaké nástroje používá. To má vliv na to, jak dobře dokážeme zajistit spolehlivost celého systému a jak dobře můžeme využít FinOps. Cloudová infrastruktura k tomuto účelu využívá tagy. Jak přesně je implementovat, je však na rozhodnutí každé společnosti, jelikož existuje mnoho přístupů.

„Nějakou dobu jsme se snažili vymýšlet vlastní přístup: používali jsme jeden typ tagování, ale i další, zapojovali jsme různé týmy a měnili jsme fáze práce, během nichž jsme tagy nasazovali. V jednu chvíli jsme se dokonce dostali tak daleko, že jsme tagování prováděli sami. To ale nefungovalo: není možné vnutit jedno univerzální pravidlo desítkám týmů s naprosto odlišnými přístupy a postupy,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Nakonec se společnost GR8 Tech rozhodla změnit filozofii na základní úrovni, celou kulturu pohledu na tagy. Je to pomalý a složitý proces, ale stojí za to, protože zajišťuje pořádek – tedy spolehlivost. V současné době se tým setkává s tagováním již ve fázi vytváření jakýchkoli infrastrukturních komponent: vývojáři nebudou moci nic dělat, pokud k projektu nepřiřadí kompetentní tagy.

Problém jednotlivé „fáze“

Každý tým vytvoří verzi své vlastní služby – s chybami a nedostatky – a v této části se ostatní týmy musí zastavit kvůli možným problémům při testování. V GR8 Tech vytvořili plnohodnotný emulátor, který je miniaturní kopií jejich produkčního systému: bez výhrad, bez odolnosti proti chybám a bez potřeby podporovat miliony uživatelů. Zároveň se všemi komponentami pro plnohodnotné testování. Vývojáři mohou tento emulátor spustit a otestovat jeho kvalitu obecně a produktoví manažeři jej mohou vyhodnotit koncepčně a vizuálně. Inženýři kvality mohou provádět potřebné testy v prostředí, které se co nejvíce podobá reálnému.

„Jedná se o náš plnohodnotný interní produkt Environment by Click. Jeho výhodou je, že týmy mohou takový emulátor provozovat současně a neomezovat se časově. S tímto pískovištěm můžete pracovat půl hodiny, den, tři – a pak ho zavřít a zapomenout,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Environment by Click nebyl vytvořen výhradně týmem SRE, ale přínos byl velmi citelný. A to je přesně situace, kdy se společnost neřídila standardními způsoby nebo postupy. Vytvořila architekturu pro automatické vytváření těchto prostředí, nastavila CI/CD tak, aby tento emulátor běžel s nejnovějšími verzemi našich služeb, a poté jej spustila s uvedením do provozu. Dokonce byl celý stack nasazen jinak, aby bylo možné tento projekt realizovat, a pak ho optimalizovat a urychlit.

Jednočlenná armáda

Flexibilita a nelinearita týmu SRE při plnění určitých úkolů není možná bez několika důležitých aspektů. Za prvé, opravdu zkušených inženýrů SRE. Není žádným tajemstvím, že v tomto odvětví je mezi kvalifikovanými seniorními specialisty mimořádná konkurence, a GR8 Tech není výjimkou. Důvod je prostý: univerzita nebo škola obvykle nestačí k tomu, aby z nás vyrostli dobří inženýři (i když existují ojedinělé případy). Inženýři spolehlivosti webu jsou většinou bývalí systémový administrátoři, DevOps, kteří díky dlouholetým zkušenostem dokáží řídit velký systém a zajistit jeho spolehlivost.

Je vzácné, aby inženýři SRE kombinovali rozsáhlé technické zázemí s manažerským myšlením. A to jsou skutečně jedineční pracovníci: vědí, co je třeba udělat a jak to udělat, s kým a jak to vyjednat. A taky chápou, že některé věci se prostě musí udělat, ať se děje, co se děje. Jsou to klasické jednočlenné armády, které dokážou udržet infrastrukturu firmy a ušetřit spoustu peněz – a jsou nezbytní, pokud chce velká firma uspět.

Za druhé, důležitá je také struktura společnosti. Ve společnosti GR8 Tech je SRE jedním z oddělení, které sdílí odborné znalosti s ostatními odděleními. Zároveň se skládá z mikrotýmů, často ještě menších než podle slavného pravidla „2 pizz“ (známe pravidlo Jeffa Bezose, poz. red.), odpovědných za jedinečnou specializaci. „Snažíme se, aby na každém projektu pracovali dva inženýři, abychom minimalizovali škodlivý „bus factor“, kdy kritické firemní procesy závisí na jednom člověku. Je zřejmé, že ve velkém, rychle se rozvíjejícím podniku není možné se faktoru autobusu vyhnout. Ale právě o to se snažíme,“ Andrii Chygarkin, informační ředitel společnosti GR8 Tech.

Co je SRE?

SRE (Site Reliability Engineering) je technická disciplína, která firmám a organizacím pomáhá dosáhnout žádoucí úrovně spolehlivosti v jejich systémech, službách a produktech.

Newsletter