Re[8]: О микросервисах
От: VladiCh  
Дата: 07.02.22 16:23
Оценка: 5 (1) +1
Здравствуйте, Miroff, Вы писали:

M>Здравствуйте, VladiCh, Вы писали:


VC>>Интерфейсы между сервисами как правило никто не рефакторит, просто выкатывают новую версию интерфейса (или новый сервис) для замены старой (старого сервиса).

VC>>Это во всяком случае более поэтапный и управляемый процесс, чем рефакторинг чего-то в монолите.
VC>>И я не вижу в чем тут невозможность — такое происходит сплошь и рядом.

M>Ровно поэтому API между сервисами и не рефакторят, что бесполезно. Выкатишь новую версию, а ресурсов ссадить пользователей со старой силенок не хватит.


Это издержки распределенной системы. Но в то же время и ее преимущество — она заставляет делать версионность API. В монолите в теории можно отрефакторить всю систему за раз, но на практике такие идеи заметают под ковер,
потому что любые крупные изменения или останавливают разработку везде, или мерж будет адский и сломает половину системы.

M>В результате поддерживаешь две версии непонятно зачем. И я не говорю про более серьезные преобразования, типа объединить два сервиса в один или перенести часть функционала в другой сервис. Ни один вменяемый менеджер не возьмет в свой отдел лишний кусок работы и не отдаст крайне необходимый кусок ресурсов.


Понятно зачем. Насколько долго будет старая версия жить — ну это уже от конкретного случая зависит и конкретной организации. Если есть политическая воля, про которую выше говорилось... (и тут ее нужно гораздо меньше, чем в случае постоянного контроля за tech debt).
Нужно согласование между всеми командами, в случае их большого количества это непростой процесс, но для этого есть специальные люди.

M>Поэтому, кстати, архитектура системы и копирует архитектуру организации, как еще во времена Брукса заметили.


Это не баг а фича в данном случае. Одна из причин почему вообще микросервисный подход работает.

M>Мелкие рефакторинги в своей песочнице, пожалуйста, хоть все на хаскель перепишите. А что-то более серьезное завязнет еще на этапе согласования.


Ну так... Как я и сказал, это и есть одна из целей — команды получают контроль над изменениями в своих песочницах, хотя бы.
С монолитным подходом этого нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.