Миграция 4 млн игроков: Claude Code нашёл узкие места, но не всё
Миграция 4 млн игроков: Claude Code нашёл узкие места, но не всё За день до переноса 4,2 млн игроков мобильной игры на новую версию инфраструктура российского сегмента легла: дата-центр Yandex Cloud, где она жила, атаковали, и вся зона стала недоступна. Об этом рассказывает тимлид инфраструктуры игровой студии. Игроки аварии не заметили — старая версия была поднята в двух дата-центрах, а новый кластер для российского сегмента команда подняла за 14 часов до старта миграции, во многом с помощью Claude Code — ИИ-агента, который пишет и правит код. К переезду готовились год. Старая версия — монолит на PHP с базами MySQL и Redis на собственных серверах Hetzner; новую делали на языке Go из нескольких десятков микросервисов — небольших независимых сервисов — в облаке DigitalOcean. Причины: Unity вводила плату за каждую установку игры, архитектура устарела, а bare metal — физические серверы, которые заказываются заявкой и ждут часами, — не давал гибкости. Нагрузочные тесты прогноза не дали: новая архитектура генерировала столько больше запросов, что сравнивать со старой оказалось «как километры с литрами». Реальный масштаб показали только волны переноса: сначала 10 тысяч игроков, затем за неделю до миграции — 200 тысяч. Главный вклад ИИ-агента — аудит. За месяц до переезда команда подключила Claude Code ко всем системам через MCP — протокол доступа к внешним данным: коду, метрикам, логам и кластерам Kubernetes, системе запуска контейнеров. Агент составил приоритизированный список рисков, а после волны на 200 тысяч нашёл незаметные проблемы: запрос к базе Postgres сканировал целиком крошечную таблицу из 599 строк — суммарно 310 миллионов раз (агент сам исправил запрос и частоту), метрики с лишними гистограммами едва не переполнили Prometheus — сервер мониторинга, у которого и так подходил к лимиту в 8 ГБ памяти, неравномерно распределились данные в хранилищах, а правило «один под сервиса на ноду» не давало некоторым сервисам масштабироваться до нужных 20–30 копий. Полагаться на агента вслепую нельзя, подчёркивает автор: он «уверенно формулирует и верные, и неверные выводы» — выводы по балансировщикам и сертификатам команда перепроверяла вручную. Агент отвечал на заданные вопросы и искал в доступных данных, но не предсказал, что автоматическое масштабирование будет опаздывать на минуты, что памяти Prometheus всё равно не хватит, и не связал намёки на проблемы DNS — после миграции 70% запросов к системе имён оказались мусором; её настройку (ndots) поправили, и объём запросов упал со 114 до 51 млн в сутки. День миграции: игра лежала около двух запланированных часов, данные переносились логически через API — интерфейс обмена между программами, а не копированием баз. Трафик подскочил с 600–700 до 5,1 тысячи запросов в секунду: новый клиент обращается к серверу в 6–7 раз чаще старого. Задержки чтения в базе Cassandra выросли в 4 раза — вылечили расширением кластера с 9 до 12 узлов. Свежие переписки игроков оказались в самом низу списка чатов — сделали быстрый фикс. Запас ресурсов, заложенный заранее, спас от отказов, но потом инфраструктуру пришлось ужимать. Источник: https://habr.com/ru/articles/1099984/