К основному содержимому
к выпуску
Конспект выпуска2025CTO

Надёжность: не раскатывать на весь прод разом

Пятьдесят шестой выпуск Code of Leadership: Александр говорит с Алексеем Горбовым, штаб-инженером команды Databases в Т-Банке, о пути от интернет-центра в Ижевске до Cassandra как сервиса — с трёхдневным падением Одноклассников, переездом дата-центра за два месяца и разговором о том, как устроены секции траблшутинга и кодинга.

Code of Leadership · выпуск №567 минут

Конспект сокращён относительно полного выпуска; примеры и оценки передают опыт и позиции участников.

Основная линия материала
01

От интернет-центра до отказоустойчивого телекома

Гость представляется штаб-инженером команды Databases под началом Алексея Светличного, с которым в подкасте незадолго до этого записали отдельный выпуск. По собственной оценке, хорошо он знает одну базу — Cassandra; остальное, от Postgres до векторного Qdrant и кэшей, идёт на уровне среднего DBA, а большую часть времени съедает не инженерия, а платформизация: превратить базы в удобный сервис. Работа стала скорее менеджерской и архитекторской, драйва от рук меньше, хотя при большой эксплуатации и малом числе людей руками всё равно приходится. Родился он в Ижевске, взрослел на распаде Союза, когда из развлечений оставались улица и библиотека; страсть к чтению осталась на всю жизнь, только читает он не техническую, а художественную литературу и донатит современным авторам. В 1998-м поступил в провинциальный вуз — на Москву не было денег, — где на экзамен разрешали прийти с учебниками, но отвечать с чистого листа, и один ответ мог тянуться до шести часов.

В том же году Джордж Сорос открывал интернет-центры в российской глубинке, и в новом корпусе университета гость впервые увидел Linux: непонятные бегущие строчки оказались магией, и с тех пор он живёт на Debian, отступая только на корпоративном ноутбуке с Ubuntu по требованию безопасников. Карьера собиралась из кусков: олимпиадники в родной школе, аптечная сеть, кафедра, исследовательская контора, а в 2003-м государственные электросети, где филиалы по всей республике ходили тонкими клиентами по SSH к серверу со старым приложением на FoxPro под DOS — заменить удобное приложение было нельзя. Около 2005-го в телекоме он собрал на восьми серверах отказоустойчивые почту, хостинг и DNS: LXC и BGP дали контейнеры задолго до Docker, и отказ канала или сервера клиенты не замечали. Работу он менял, когда становилось скучно, а рынок предлагал кратно больше.

02

Одноклассники: трёхдневный простой и переезд ЦОДа

В Одноклассники он ушёл иначе: после конфликта в Ростелекоме психанул, откликнулся на вакансию, будущий руководитель позвонил из Латвии, и готовность купить незнакомому человеку билеты и гостиницу по одному разговору казалась дикой. Собеседование он называет одним из самых лёгких в жизни: разговор о том, что делал, где ошибался и как исправлял; с тогдашним CTO они и вовсе говорили об оружии, у гостя КМС по пулевой стрельбе. Шёл 2012 год, удалёнку не жаловали, и он переехал в Москву. Меньше сотни разработчиков и админов держали сервис, по трафику больше нынешнего; на дежурстве ты отвечал за всё и мог осадить любого CTO или дозвониться до руководителя головной компании. Новичок две недели вгрызался в документацию — тогда её не называли ранбуками, но по сути это были они. Там же он впервые встретил Cassandra, которая сначала не понравилась, и считался специалистом по Voldemort, распределённой базе на часах Лампорта; связку с Tarantool, работавшим не так, как нужно проду, он перевёл на Cassandra.

В 2015-м сайт лёг на три дня: изменения применяли на весь прод разом, безопасники включили аудит в bash, и на тогдашней ОС — по памяти гостя, SUSE 10 — баг подвешивал оболочку, а перезагрузка не спасала, потому что bash запускался и при старте; флот поднимали частично руками, а сам он три дня не спал и не поехал на пятилетие дочери. После этого в надёжность пошла вся компания: часть людей поворот не пережила, зато потом дата-центр отключали незаметно для пользователей, а пожар в ЦОДе будил троих-четверых инженеров, а не всех. Александр добавляет, что сбои такого масштаба внутри называют чёрными: они запускают год надёжности и стандарты вроде поэтапной раскатки, которая показала бы проблему на первых машинах. Отдельная гордость гостя — переезд дата-центра за два месяца, где он оказался проджект-менеджером от инфраструктуры: карты стоек и подсетей, диски, не пережившие перевозку, ограничение в 50 миллисекунд, из-за которого нельзя было увезти один из координаторов облака, и в итоге пара даунтаймов по пять-семь минут без потери данных.

03

Собеседования и Cassandra как сервис

В Т-Банке разговор с вице-президентом не сложился, зато секция по Cassandra обернулась тем, что час спрашивал он сам: почему такие буферы и почему так сделано. Лучшим собеседованием в жизни он называет разговор с руководителем центра надёжности — спокойно, без видимого давления, с записью ключевых вещей и вопросами по ним; вышел выжатым, но счастливым. Траблшутинг после недавнего разбора инцидента показался лёгким, а на кодинге решение в одну строку с двумя пайпами не приняли, и он развернул его в циклы, считая, что пайпы — те же библиотеки; Александр соглашается. Оба сходятся, что сложность задачи должна быть вариативной, как у гейм-мастера в DnD, но формализовать это трудно, и гость, недавно ставший лидером секции, как раз пытается собрать масштабируемую задачу. Заодно он въедливо разобрал наём: расходящиеся цифры от рекрутера и бухгалтерии и приложение подрядчика, где новичку были видны данные всех кандидатов на этапе оффера.

В первый день он попросил список кластеров и инцидентов, и от увиденного, по его словам, волосы встали дыбом: неправильного было очень много, схему данных под Cassandra мало кто проектировал хорошо, а сама она — обычное JVM-приложение, где при штатных настройках хип в 32 гигабайта оставляет памяти меньше, чем 27. Чинил он двумя путями, технически и просвещением: встречался с командами, объяснял базовые вещи, тогда же завелись встречи по Cassandra, сейчас заглохшие. Через полгода пришёл первый вызов — вынести данные из базы, которая, по его словам, была на Oracle, в Cassandra: модель данных долго собирали вдвоём с сильным инженером, кластер тестировали, гася узлы и целый дата-центр, и переезд прошёл с нулевым даунтаймом, а сложнее технической части оказалось выбить железо. Дальше выросла Cassandra как сервис: несколько рантаймов, любая база в подах, по тому же шаблону делают векторный Qdrant, а крупным клиентам помогают рисовать диаграммы Чеботко. Напоследок гость советует читать, в том числе художественное, чтобы учиться пропускать воду и находить её в документации.

Выводы

Что стоит унести с собой

  1. 01Одновременная раскатка на весь прод стоила Одноклассникам трёх дней: включённый аудит подвесил оболочку на всём флоте, а перезагрузка не помогала — поэтапная раскатка остановила бы это на первых машинах.
  2. 02Переезд дата-центра упирается не в технологии: карты стоек и подсетей, диски, не пережившие перевозку, и ограничение в 50 миллисекунд для одного из координаторов облака; везти железо машинами всё равно дешевле, чем переливать данные по сети.
  3. 03Cassandra — обычное JVM-приложение: при штатных настройках хип в 32 гигабайта оставляет ей меньше памяти, чем 27, и антипаттерны такого рода дороже, чем кажется.
  4. 04Выбор базы решает эксплуатация: понятный код и стек-трейсы, эксперты, которых реально нанять с рынка, и предсказуемое время восстановления важнее маркетинга.

Источники