Jak jsme evakuovali službu Yandex

Jak jsme evakuovali službu Yandex

Když se práce vejde do jednoho notebooku a lze ji vykonávat autonomně od jiných lidí, pak není problém se přestěhovat na vzdálené místo – stačí zůstat ráno doma. Ale ne každý má takové štěstí.

Směna na zavolání je tým specialistů na dostupnost služeb (SRE). Zahrnuje správce služeb, vývojáře, manažery a také společný „dashboard“ s 26 LCD panely o úhlopříčce 55 palců. Stabilita služeb společnosti a rychlost řešení problémů závisí na práci směny.

Dnes Dmitrij Melikov tal10n, vedoucí směny, pohovoří o tom, jak se jim během pár dní podařilo dopravit vybavení domů a zavést nové pracovní postupy. Dávám mu slovo.

— Když máte nekonečnou zásobu času, můžete se pohodlně přesunout kamkoli s čímkoli. Rychlé šíření koronaviru nás ale postavilo do úplně jiných podmínek. Zaměstnanci Yandexu byli mezi prvními, kteří přešli na práci na dálku – ještě před zavedením režimu sebeizolace. Stalo se to takhle. Ve čtvrtek 12. března jsem byl požádán o vyhodnocení možnosti přesunu práce týmu domů. V pátek 13. se objevilo doporučení přejít na práci na dálku. V noci na úterý 17. března jsme měli vše připraveno: lidé ve službě pracovali z domova, převáželo se vybavení, dopsal se chybějící software, přenastavily se procesy. A teď vám řeknu, jak jsme to zvládli. Nejprve si ale musíte zapamatovat úkoly, které směna služeb řeší.

Kdo jsme

Yandex je velká společnost se stovkami služeb. Stabilita vyhledávání, hlasového asistenta a všech dalších produktů závisí nejen na vývojářích. V datovém centru může být přerušeno napájení. Pracovník může při výměně asfaltu náhodně poškodit optický kabel. Nebo může dojít k nárůstu aktivity uživatelů, což způsobí naléhavou potřebu přerozdělit kapacitu. Navíc všichni žijeme ve velké a složité infrastruktuře a vydání jednoho produktu může náhodně vést k degradaci jiného.

26 panelů v našem otevřeném prostoru je jeden a půl tisíce upozornění a více než sto grafů a panelů našich služeb. V podstatě se jedná o obrovský diagnostický panel. Zkušený administrátor ve službě rychle pochopí stav důležitých komponent pohledem na něj a může nastavit směr pro vyšetřování technologického problému. To neznamená, že by se člověk měl neustále dívat na všechna zařízení: samotná automatizace přitáhne pozornost zasláním upozornění na speciální rozhraní služebního důstojníka, ale bez vizuálního panelu může řešení problému trvat dlouho.

Když nastanou problémy, strážník nejprve vyhodnotí jejich prioritu. Následně problém izoluje nebo minimalizuje jeho dopad na uživatele.

Existuje několik standardních způsobů, jak problém izolovat. Jedním z nich je degradace služeb, kdy službukonající administrátor vyřadí některé funkce, kterých si uživatelé nejméně všimnou. To vám umožní dočasně snížit zátěž a zjistit, co se stalo. Pokud se vyskytne problém s datovým centrem, služebník kontaktuje operační tým, porozumí problému, sleduje načasování jeho řešení a v případě potřeby zapojí specializované týmy.

Když služba ve službě nemůže izolovat problém, který vznikl kvůli vydání, nahlásí to servisnímu týmu - a vývojáři hledají chyby v novém kódu. Pokud na to nedokážou přijít, pak správce přiláká vývojáře z jiných produktů nebo techniků dostupnosti služeb.

O tom, jak to tady všechno funguje, mohu mluvit dlouho, ale myslím, že podstatu jsem již sdělil. Směna koordinuje práci všech služeb a sleduje globální problémy. Pro službukonajícího administrátora je důležité, aby měl diagnostický panel na očích. Proto při přechodu na práci na dálku nemůžete dát každému jen notebook. Grafy a upozornění se nevejdou na obrazovku. Co dělat?

Nápad

V kanceláři všech deset správců ve službě pracuje na směny za jedním dashboardem, který zahrnuje 26 monitorů, dva počítače, čtyři grafické karty NVIDIA Quadro NVS 810, dva nepřerušitelné napájecí zdroje pro montáž do racku a několik nezávislých síťových přístupů. Potřebovali jsme zajistit, aby každý měl možnost pracovat doma. Sestavit takovou stěnu v bytě prostě nejde (z toho bude mít radost především moje žena), a tak jsme se rozhodli vytvořit přenosnou verzi, kterou si lze přinést a složit doma.

Začali jsme experimentovat s konfigurací. Potřebovali jsme všechna zařízení umístit na méně displejů, takže hlavním požadavkem na monitor byla vysoká hustota pixelů. Ze 4K monitorů dostupných v našem prostředí jsme pro testování vybrali Lenovo P27u-10.

Z notebooků jsme vzali 16palcový MacBook Pro. Má poměrně výkonný grafický subsystém nezbytný pro vykreslování obrázků na několika 4K displejích a čtyři univerzální konektory typu C. Můžete se zeptat: proč ne desktop? Výměna notebooku za úplně stejný ze skladu je mnohem jednodušší a rychlejší než sestavení a konfigurace identické systémové jednotky. A váží méně.

Nyní jsme potřebovali pochopit, kolik monitorů můžeme k notebooku skutečně připojit. A problém zde není v počtu konektorů, to jsme mohli zjistit pouze testováním sestaveného systému.

Jak jsme evakuovali službu Yandex

Testování

Všechny grafy a upozornění jsme celkem pohodlně umístili na čtyři monitory a dokonce je připojili k notebooku, ale narazili jsme na problém. Vykreslování 4x4K pixelů na připojených monitorech zatěžovalo grafickou kartu natolik, že byl notebook vybitý i při nabíjení. Problém se naštěstí podařilo vyřešit pomocí Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. K dokovací stanici se mi podařilo připojit monitor, zdroj a dokonce i oblíbenou myš a klávesnici.

Okamžitě se ale vynořil další problém: GPU hučelo natolik, že se notebook přehříval, což znamená, že se přehřívala i baterie, která v důsledku toho přešla do ochranného režimu a přestala přijímat nabíjení. Obecně se jedná o velmi užitečný režim, který chrání před nebezpečnými situacemi. V některých případech byl problém vyřešen pomocí high-tech zařízení - kuličkového pera umístěného pod notebookem pro zlepšení ventilace. Ale to nepomohlo všem, takže jsme také zvýšili rychlost standardního ventilátoru.

Byla tu ještě jedna nepříjemná vlastnost. Všechny tabulky a upozornění musí být umístěny na přesně definovaném místě. Představte si, že řídíte letadlo na přistání – a pak začnou ukazatele rychlosti, výškoměry, variometry, ukazatele letové polohy, kompasy a ukazatele polohy měnit velikost a přeskakovat na různá místa. Proto jsme se rozhodli vytvořit aplikaci, která s tím pomůže. Za jeden večer jsme to napsali v Electron.js a vzali jsme hotový API o vytváření a správě oken. Přidali jsme konfigurační procesor a jeho pravidelnou aktualizaci a také podporu pro omezený počet monitorů. O něco později přidali podporu pro různá nastavení.

Montáž a dodání

Do pondělí pro nás průvodci z help desku získali 40 monitorů, deset notebooků a stejný počet dokovacích stanic. Nevím, jak se jim to povedlo, ale moc jim děkuji.

Jak jsme evakuovali službu Yandex

Zbývalo to vše doručit do bytů službukonajících správců. A to je deset adres v různých částech Moskvy: jih, východ, centrum a také Balashikha, která je 45 kilometrů od kanceláře (mimochodem, později byla přidána stážistka ze Serpuchova). To vše bylo potřeba nějak rozdělit mezi lidi, vybudovat logistiku.

Všechny adresy jsem zadal do našich Map, stále je zde možnost optimalizovat trasu mezi různými body (použil jsem bezplatnou beta verzi nástroje pro kurýry). Náš tým jsme rozdělili do čtyř nezávislých týmů po dvou lidech, každý má svou vlastní trasu. Moje auto se ukázalo jako nejprostornější, a tak jsem vzal vybavení pro čtyři zaměstnance najednou.

Jak jsme evakuovali službu Yandex

Celý porod trval rekordní tři hodiny. Z kanceláře jsme odešli v pondělí v deset večer. V jednu hodinu ráno jsem už byl doma. Té noci jsme šli do služby s novým vybavením.

S tím výsledkem, že

Místo jedné velké diagnostické konzole jsme každému ve službě sestavili deset relativně přenosných v bytě. Samozřejmě bylo ještě potřeba doladit nějaké detaily. Například jsme měli jeden „železný“ telefon pro strážníka na upozornění. To v nových podmínkách nefungovalo, a tak jsme přišli s „virtuálními telefony“ pro důstojníky (v podstatě kanály v messengeru). Došlo i k dalším změnám. Hlavní ale je, že se nám v rekordním čase podařilo přenést nejen lidi, čímž se snížilo riziko jejich nákazy, ale i veškerou naši práci domů bez poškození procesů a stability produktu. V tomto režimu fungujeme již měsíc.

Níže naleznete fotografie skutečných pracovišť našich služebníků.

Jak jsme evakuovali službu Yandex

Jak jsme evakuovali službu Yandex

Jak jsme evakuovali službu Yandex

Jak jsme evakuovali službu Yandex

Jak jsme evakuovali službu Yandex

Zdroj: www.habr.com