← Все новости
Технический долг — это не только legacy: как мы уменьшаем разброс решений между Go-сервисами

Технический долг — это не только legacy: как мы уменьшаем разброс решений между Go-сервисами

Когда компания растёт из одного продуктового направления в несколько, технический долг начинает выглядеть иначе. Проблема уже не в «старом коде», устаревших зависимостях или сложной поддержке legacy-системы. Долг начинает накапливаться в расхождении инженерных решений между сервисами.Для нас в QIC digital hub это особенно заметно на фоне миграции на новый Go-бэкенд. Исторически платформа развивалась на разнородном стеке: разные части системы были написаны на разных технологиях. Сейчас мы постепенно переезжаем на Go. Часть сервисов уже в проде, часть ещё на пути. Именно в такой момент легко создать новый слой техдолга поверх старого: переписать поведение на новом языке, но оставить команды один на один с десятками одинаковых инфраструктурных задач, которые каждая решает по-своему.Мы стараемся не просто переносить сервисы на новый стек, а одновременно пересобирать инженерную инфраструктуру вокруг них. В нашем случае это несколько взаимосвязанных инструментов:- go-kit — общая библиотека с переиспользуемыми инженерными решениями;- go-service-template — шаблон, который делает эти решения стандартным способом запуска нового сервиса;- shared-renovate-config — общий Renovate-конфиг с единой политикой обновления зависимостей для всех репозиториев.Ниже — честная инженерная история о том, как мы стараемся замедлить накопление нового техдолга в растущей мультидоменной платформе. Читать далее