Здравствуйте, Miroff, Вы писали:
M>Здравствуйте, VladiCh, Вы писали:
VC>>Интерфейсы между сервисами как правило никто не рефакторит, просто выкатывают новую версию интерфейса (или новый сервис) для замены старой (старого сервиса). VC>>Это во всяком случае более поэтапный и управляемый процесс, чем рефакторинг чего-то в монолите. VC>>И я не вижу в чем тут невозможность — такое происходит сплошь и рядом.
M>Ровно поэтому API между сервисами и не рефакторят, что бесполезно. Выкатишь новую версию, а ресурсов ссадить пользователей со старой силенок не хватит.
Это издержки распределенной системы. Но в то же время и ее преимущество — она заставляет делать версионность API. В монолите в теории можно отрефакторить всю систему за раз, но на практике такие идеи заметают под ковер,
потому что любые крупные изменения или останавливают разработку везде, или мерж будет адский и сломает половину системы.
M>В результате поддерживаешь две версии непонятно зачем. И я не говорю про более серьезные преобразования, типа объединить два сервиса в один или перенести часть функционала в другой сервис. Ни один вменяемый менеджер не возьмет в свой отдел лишний кусок работы и не отдаст крайне необходимый кусок ресурсов.
Понятно зачем. Насколько долго будет старая версия жить — ну это уже от конкретного случая зависит и конкретной организации. Если есть политическая воля, про которую выше говорилось... (и тут ее нужно гораздо меньше, чем в случае постоянного контроля за tech debt).
Нужно согласование между всеми командами, в случае их большого количества это непростой процесс, но для этого есть специальные люди.
M>Поэтому, кстати, архитектура системы и копирует архитектуру организации, как еще во времена Брукса заметили.
Это не баг а фича в данном случае. Одна из причин почему вообще микросервисный подход работает.
M>Мелкие рефакторинги в своей песочнице, пожалуйста, хоть все на хаскель перепишите. А что-то более серьезное завязнет еще на этапе согласования.
Ну так... Как я и сказал, это и есть одна из целей — команды получают контроль над изменениями в своих песочницах, хотя бы.
С монолитным подходом этого нет.