Бэкенд Главной страницы Яндекса был исторически написан на Perl, и сегодня это мешает его развивать, поддерживать и нанимать новых разработчиков. Мы решили переписать его на Go. Нужно было сделать это так, чтобы не останавливать продуктовое развитие, и чтобы пользователи ничего не заметили.
Я расскажу про созданную схему, при которой в ходе переезда два бэкенда — Perl и Go — работали параллельно. Мы использовали real-time-сравнение данных из двух бэкендов, чтобы убедиться в правильности переписанного кода. Расскажу, почему мы решили использовать Apphost — экосистему управления сетевыми сервисами.
В результате нам удалось переписать бОльшую часть нашего кода на Go. Это дало толчок в развитии сервиса — мы стали нанимать молодых и талантливых разработчиков, ускорили разработку новых фич, и сумели сократить время ответа бэкенда на десятки процентов.