Евгений Зайферт: как перевести сервисы на новую архитектуру без простоя

Евгений Зайферт - программист из Москвы у плана миграции сервисов
Евгений Зайферт, бэкенд-разработчик из Москвы, у плана миграции сервисов на новой архитектуре.

Самой сложной задачей за последний год бэкенд-разработчик из Москвы Евгений Зайферт называет не новую функцию и не срочный баг, а перенос части сервисов на новую архитектуру. Главное условие было жёстким: всё должно работать без простоя.

Евгений Зайферт - программист из Москвы следит за метриками при миграции
Евгений Зайферт, бэкенд-разработчик из Москвы, следит за метриками во время постепенного переноса нагрузки.

Евгений Зайферт и задача без права на остановку

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

Евгений шесть лет работает в бэкенд-разработке, пишет на Python и Go и проектирует API и сервисы для веб-платформ. Он говорит, что в бэкенде его всегда привлекала именно инженерия за интерфейсом: архитектура, данные, стабильность. Эта задача проверяла все три сразу.

Разбить на этапы

Первое, что сделал Евгений, - отказался от идеи перенести всё за один раз. Он разбил задачу на этапы. Так каждый шаг становился понятным и проверяемым, а если что-то шло не так, можно было остановиться и разобраться, не затрагивая всю систему.

Договориться с командой

Второй шаг - общий план миграции, согласованный с командой. Евгений часто повторяет, что код - лишь часть работы программиста, а остальное - коммуникация и инженерные решения. В этой истории это было видно особенно ясно: чтобы переезд прошёл гладко, все участники должны были одинаково понимать, что и в каком порядке переносится.

Переносить нагрузку постепенно и смотреть на метрики

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

Результат: без сбоев и с документацией

В итоге команда перевела всё без заметных сбоев. И ещё один результат, о котором Евгений говорит отдельно: после миграции осталась понятная документация. Для следующих разработчиков это не менее ценно, чем сама новая архитектура.

Евгений Зайферт - программист из Москвы передаёт документацию команде
Евгений Зайферт, бэкенд-разработчик из Москвы, передаёт команде документацию после миграции.

Что из этого следует

Из этой истории Евгений Зайферт выносит тот же принцип, который советует начинающим: не пытаться сделать «всё сразу». Сложная задача становится решаемой, когда её разбивают на понятные шаги, обсуждают с командой и проверяют каждый результат.

Сейчас Евгений развивает внутренние сервисы для веб-платформы и участвует в код-ревью. До конца года он планирует заняться оптимизацией производительности и подготовить внутренний доклад по архитектуре для команды. Подробнее - в его интервью Клубу известных тёзок.

Участники в этом материале

Автор материала

Издатель: Редакция клуба

Комментарии

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Все новости