5 вещей, которые разработчики не могут сказать своим клиентам при сбое в продакшене

0
38
views

Адаптированный перевод статьи «5 Truths Engineers Can’t Tell Their Clients During a Production Outage».

Photo by Amy Tran on Unsplash

В этом году моим подарком на день рождения был сбой в продакшене.

Кто-то в день рождения ест пирожные с мороженым, кто-то планирует увлекательную поездку. У меня вместо поездки было отключение электричества. И это было совсем не весело.

Пытаясь разобраться с возникшей ситуацией, мы с коллегой потихоньку ворчали, выражая свое недовольство тем, как сложно найти источник проблемы. Помимо непосредственно решения проблемы нам еще нужно было выстроить максимально эффективную коммуникацию с пострадавшим клиентом.

Клиенту нужно было знать, что мы все исправим, причем быстро, и что больше подобное не случится.

Мы посылали ему электронные письма, стараясь выражаться как можно тактичнее, и успокаивали по телефону. Мы часто сообщали о прогрессе и обеспечивали необходимую степень прозрачности и технической осведомленности.

Но вот несколько истин, которые мы просто не могли сказать клиенту.

1. Мы не были готовы к этому

Как и многие другие разработчики во многих других проектах, это приложение мы унаследовали. Нам досталось небольшое количество документации и плохие инструменты отладки. А подвижных частей в этом приложении было так много, что и не сосчитать.

По ощущениям это похоже на попытки потушить лесной пожар огнетушителем.

Выделенные время и бюджет не позволили нам хорошо подготовиться к возможности того, что продакшен выйдет из строя, и теперь нам приходилось лихорадочно искать выход. Мы не были готовы к подобному во многих аспектах.

2. Причиной сбоя может быть любая из 20 причин

В чем причина перебоев в работе? Может быть, дело в сервере. А может, в коде. Это может быть база данных или сторонний пакет. Возможно, пищевое отравление. Может быть, это наша вина. А может, ваша.

Как решить эту проблему? Возможно, потребуется просто перезагрузка. Может, нужно обновить пакет или параметр конфигурации. Или же понадобится Пепто-Бисмол (лекарство от несварения, — прим. ред). Возможно, придется сжечь все это к чертовой матери и начать заново.

3. Мы понятия не имеем, сколько времени понадобится, чтобы все наладить

Перезапуск сервера может занять десять минут. А восстановление сервера может занять от десяти часов до десяти дней. Возможно, мы сможем отследить ошибку за несколько минут, а можем и никогда не узнать, что произошло на самом деле.

Все зависит от причины поломки, а мы уже установили, что вариантов причин у нас 20 (и более). Мы также установили, что не были к этому готовы.

Можете просто оставить нас в покое и поверить, что мы очень стараемся справиться с проблемой как можно быстрее.

А пока мы предлагаем вам пересмотреть ваше определение слова «быстро».

4. Чтобы выяснить причину сбоя, нам нужно, чтобы проблема проявилась снова

Поскольку у нас мало инструментов и документации, мы в основном действуем вслепую. К счастью, мы уже установили несколько инструментов мониторинга — это нам поможет.

Но дело в том, что эти инструменты могут только следить за развитием событий. Поэтому, чтобы диагностировать проблему, нам нужно, чтобы она проявилась снова.

Мы, конечно, могли бы ставить эти эксперименты в стейджинге или тестовой среде (и мы это сделали), но там не возникает тех же проблем, которые возникли в продакшене. И это, в общем-то, логично, потому что все настройки там другие.

На данный момент наш единственный вариант — снова дать продакшену упасть. Скажите своей команде, чтобы они держались, ведь пока что мы пытаемся не исправить проблему, а хотя бы просто воспроизвести ее. Только так наши инструменты смогут уловить, что происходит.

5. Вам определенно стоит платить нам больше за такой стресс

Мы не спим. Можно сказать, и не едим. Наши семьи не видели нас несколько дней. Мы проводим все время за компьютером, за исключением коротких походов к холодильнику и в туалет (а еще — в какой-нибудь темный угол, чтобы свернуться там в позе эмбриона).

Такой уровень стресса требует как минимум двойной оплаты. Но мы понимаем, что сейчас не время заключать новый контракт. Мы все находимся в режиме выживания, и очевидно, что здоровье продакшена важнее нашего.

Вот почему во время аварийной ситуации вы должны платить нам (намного) больше.

Итоги

Все это — истины, которые разработчики совершенно не могут сообщить своим клиентам во время кризиса, вызванного сбоем в продакшене.

Если вам приходили в голову подобные мысли, просто знайте, что вы не одиноки. Если вас охватывали подобные чувства, знайте, что то же самое чувствуют и другие разработчики.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here