Як ми евакуювали чергову зміну Яндекса

Як ми евакуювали чергову зміну Яндекса

Коли робота вміщується в одному ноутбуці і може виконуватися автономно від інших людей, то немає проблем перебратися на віддалення - достатньо залишитися вранці вдома. Але так пощастило не всім.

Чергова зміна – це команда спеціалістів із доступності сервісів (SRE). Вона включає чергових адміністраторів, розробників, менеджерів, а також загальну «приладову панель» з 26 ЖК-панелей по 55 дюймів кожна. Від роботи чергової зміни залежить стабільність сервісів компанії та швидкість вирішення проблем.

Сьогодні Дмитро Меліков tal10n, керівник чергової зміни, розповість про те, як за лічені дні їм удалося перевезти обладнання додому та налагодити нові процеси роботи. Передаю йому слово.

— Коли у вас нескінченний запас часу, то можна комфортно переїхати з будь-чим. Але стрімке поширення коронавірусу поставило нас у зовсім інші умови. Співробітники Яндекса перейшли на віддалену роботу одними з перших ще до введення режиму самоізоляції. Відбувалося це так. У четвер 12 березня мене попросили оцінити можливість перевести роботу команди додому. У п'ятницю 13-го з'явилася рекомендація перейти на роботу. У ніч на вівторок 17 березня у нас все було готове: чергові працюють вдома, обладнання перевезене, софт написаний, процеси переналаштовані. А зараз я розповім, як ми це провернули. Але для початку потрібно згадати про ті завдання, які вирішує чергова зміна.

Хто ми такі

Яндекс - велика компанія з сотнями сервісів. Стабільність пошуку, голосового помічника та інших продуктів залежить тільки від розробників. У дата-центрі може порушитись енергозабезпечення. Робочий під час заміни асфальту може випадково зашкодити оптичний кабель. Або може статися сплеск активності користувачів, через що потрібно буде терміново перерозподілити потужності. Більше того, ми всі живемо у великій складній інфраструктурі, і реліз одного з продуктів може випадково призвести до деградації іншого.

26 панелей у нашому опенспейсі — це півтори тисячі алертів та понад сто графіків та панелей наших сервісів. По суті це величезна діагностична панель. Досвідчений черговий адміністратор, глянувши неї, швидко розуміє стан важливих вузлів і може встановити напрям для розслідування технологічної проблеми. Це не означає, що людина повинна постійно дивитися на всі прилади: автоматика сама приверне увагу, надіславши повідомлення на спеціальний інтерфейс чергового, але без наочної панелі вирішення проблеми може затягнутися.

Коли виникають проблеми, черговий спочатку оцінює їх пріоритет. Потім він ізолює проблему або мінімізує її вплив на користувачів.

Існує кілька стандартних способів ізолювати проблему. Один із них — деградація сервісів, коли черговий адміністратор відключає частину функцій, які користувачі найменше помічають. Це дозволяє на якийсь час знизити навантаження і розібратися, що трапилося. Якщо виникає проблема з дата-центром, то черговий зв'язується з командою експлуатації, розуміється на проблемі, контролює терміни її вирішення і при необхідності підключає профільні команди.

Коли черговий адміністратор не може сам ізолювати проблему через реліз, він повідомляє про неї в команду сервісу — і розробники шукають помилки в новому коді. Якщо і їм не вдається розібратися, адміністратор приваблює розробників з інших продуктів або інженерів за доступністю сервісів.

Можу довго розповідати про те, як все в нас влаштовано, але гадаю, що суть уже передав. Чергова зміна координує роботу всіх сервісів та контролює глобальні проблеми. Черговому адміністратору важливо мати діагностичну панель перед очима. Ось чому при переході на віддалену роботу не можна просто взяти і видати кожному по ноутбуку. Графіки та алерти не вмістяться на екрані. Що робити?

Ідея

В офісі всі десять чергових адміністраторів працюють позмінно за однією приладовою панеллю, яка включає в себе 26 моніторів, два комп'ютери, чотири відеокарти NVIDIA Quadro NVS 810, два стійкові блоки безперебійного живлення та кілька незалежних доступів до мережі. Нам же потрібно було забезпечити кожному можливість працювати у себе вдома. Зібрати таку стіну в квартирі просто не вийде (моя дружина буде особливо рада цьому), тому вирішили створити портативний варіант, який можна привезти і зібрати вдома.

Почали експериментувати зі зміною. Нам потрібно було вмістити всі прилади на меншій кількості дисплеїв, тому головною вимогою монітора стала висока щільність пікселів. Із наявних у нашому оточенні 4K-моніторів для тестів вибрали Lenovo P27u-10.

Із ноутбуків взяли 16-дюймовий MacBook Pro. У нього досить потужна графічна підсистема, необхідна для малювання картинки на декількох 4K-дисплеях, і чотири універсальні Type-C роз'єми. Ви можете запитати: чому не робочий стіл? Замінити ноутбук таким самим зі складу значно простіше і швидше, ніж зібрати і налаштувати ідентичний системник. Та й важить він менше.

Тепер потрібно було зрозуміти, скільки моніторів реально зможемо підключити до ноутбука. І проблема тут не в кількості роз'ємів, це ми могли дізнатися лише випробувавши систему в зборі.

Як ми евакуювали чергову зміну Яндекса

Тестування

Ми досить комфортно розмістили всі графіки та алерти на чотирьох моніторах і навіть підключили їх до ноутбука, але зіткнулися з проблемою. Відображення 4×4K пікселів на підключених моніторах настільки навантажувало відеокартку, що ноутбук розряджався навіть під час заряджання. На щастя, проблема вирішилася за допомогою док-станції Lenovo ThinkPad Thunderbolt 3 Dock Gen 2. До док-станції вдалося підключити монітор, і живлення, і навіть улюблену мишку з клавіатурою.

Але відразу ж спливла інша проблема: GPU пихкав настільки, що ноутбук перегрівався, а отже, перегрівався ще й акумулятор, який у результаті переходив у захисний режим і переставав приймати заряд. Взагалі це дуже корисний режим, який захищає від небезпечних ситуацій. У ряді випадків проблему вдалося вирішити за допомогою високотехнологічного пристрою — кулькової ручки, що підкладається під ноутбук для покращення вентиляції. Але це допомагало не всім, тому ми ще й викрутили швидкість роботи штатного вентилятора.

Залишалася ще одна неприємна особливість. Усі графіки та алерти повинні розташовуватися на строго певному місці. Уявіть, що ви пілотуєте літак на посадку - і тут покажчики швидкості, висотоміри, варіометри, авіагоризонти, компаси та покажчики положень починають змінювати розмір і стрибати по різних місцях. Так що вирішили зробити програму, яка допоможе з цим. За один вечір ми написали його на Electron.js, взявши готовий API зі створення вікон та управління ними. Додали обробник конфігурацій та їх періодичне оновлення, а також підтримку обмеженої кількості моніторів. Трохи згодом ще додали підтримку різних сетапів.

Складання та доставка

До понеділка чарівники з хелпдеску видобули для нас 40 моніторів, десять ноутбуків та стільки ж док-станцій. Не знаю, як їм це вдалося, але дякую їм велике.

Як ми евакуювали чергову зміну Яндекса

Залишалося розвезти все це квартирами чергових адміністраторів. А це десять адрес у різних куточках Москви: південь, схід, центр, ще й Балашиха, до якої від офісу 45 кілометрів (до речі, пізніше додався ще й стажер із Серпухова). Потрібно було якось розподілити все це між людьми, побудувати логістику.

Вбив усі адреси на наших Картах, там ще є можливість оптимізувати маршрут між різними точками (скористався безкоштовною бета-версією інструменту для кур'єрів). Розбили нашу команду на чотири незалежні бригади по дві особи, кожна отримала свій маршрут. У мене машина виявилася найбільш місткою, тому взяв до себе обладнання одразу для чотирьох співробітників.

Як ми евакуювали чергову зміну Яндекса

На всю доставку пішли рекордні три години. Виїхали з офісу о десятій вечора понеділка. О першій годині ночі я вже був удома. Цієї ж ночі ми вийшли на чергування вже з новим обладнанням.

Що в підсумку

Замість одного великого діагностичного пульта ми зібрали десять відносно портативних у квартирі кожного чергового. Звичайно ж, залишалося ще втрясти деякі дрібниці. Наприклад, раніше у нас був один залізний телефон чергового для повідомлень. У нових умовах це не працювало, тому ми вигадали «віртуальні телефони» для чергових (по суті, канали в месенджері). Були й інші зміни. Але головне, що в рекордні терміни нам вдалося перекласти не просто людей, знизивши ризик їхнього зараження, а всю нашу роботу додому без шкоди для процесів та стабільності продуктів. У такому режимі ми працюємо вже місяць.

Нижче на вас чекають фотографії реальних робочих місць наших чергових.

Як ми евакуювали чергову зміну Яндекса

Як ми евакуювали чергову зміну Яндекса

Як ми евакуювали чергову зміну Яндекса

Як ми евакуювали чергову зміну Яндекса

Як ми евакуювали чергову зміну Яндекса

Джерело: habr.com