Size: a a a

Software Design/Architecture/Zen

2021 May 21

SP

Sergey Protko in Software Design/Architecture/Zen
ну я повторюсь - не от хорошей жизни в это лезут
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну есть еще вариант что "надо для рюземе и скучно"
источник

k

knopkod4v in Software Design/Architecture/Zen
я пока только таких видел)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
"написал систему из трех микросервисов - микросервис апишки, микросервис базы данных и микросервис крона"
источник

k

knopkod4v in Software Design/Architecture/Zen
микросервис агрегирующий данные из всех других микросервисов не забывай
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а да еще один критерий - если разработчики в душе не понимают что такое bounded context (или схожее понятие какое для вертикальных срезов) - будет пизда
источник

K

Konstantin in Software Design/Architecture/Zen
Для таких хорошо подходит правило одной бд на сервис для допомоги с этими сложными концепциями, не исключает, но хелпует
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
а вынос supportive доменов и сервисов в отдельные сервисы, не трогая кор-домены и субдомены - это уже микросервисы или еще нет?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Можешь релизить эти штуки независимо - чё нет)
источник

ST

Serguei Tarassov in Software Design/Architecture/Zen
"маленькие штуки" проще тестировать только если нет зависимостей от других "маленьких штук". В остальном всё сложнее: компоновка, развертывание, координация. Примерно как генералам дать командовать ресурсами вместо армий отделениями по 10 человек.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
зависимости от других штук - контрактное тестирование. И все становится изи. Не, если конечно зависимости настолько криво менеджатся что ты "хер знает кто как и с кем" то да, будут проблемки. Но это как бы больше про проектирование нормальное
источник

SP

Sergey Protko in Software Design/Architecture/Zen
что до "компановка развертывание etc" - на самом деле для каждого отдельного сервиса это все становится проще. Появляется сложность инфраструктуры между сервисами но большинство эту сложность тащит и так к себе за счет докеров куберов и т.д.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну и опять же, если у тебя те масштабы на которых микросервисы один из возможных путей развития то стоимость этого всего может быть существенно ниже других "стоимостей".

В целом всегда предполагается что у тебя микросервисы это эволюция проекта а не с нуля. То есть ты уже должен подбираться к тем проблемам затраты на которые окупают все эти штуки. Это оч важно понимать что бы не попадать в ситуации в стиле "2 разработчика решили сделать 100 сервисов"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну и опять же - serverless будет вынуждать тебя куда более строгие ограничения делать + куда больше стоимости поддержания инфраструктуры можно "скинуть на кого-то", например амазон или гугл клауд. В этом ключе вопрос только в умении разработчиков такие системы проектировать + характере проекта. Универсальных решений нет, надо понимать когда юзать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
то есть проблема больше в том что люди и с монолитами проектировать не умеют, хотя казалось бы там должно быть проще
источник

A

Artjom Kalita in Software Design/Architecture/Zen
Да вообще люди часто херню в коде пишут )
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну и твоя аналогия не корректна. У тебя и так и так "генералы" будут командовать "отделениями". Просто появится необходимость в отдельном "отделении" которая будет заниматься платформой и помогать продуктовым "отделениям" не отвлекаться от фич.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
как и продукты в сторях, как и клиенты в фича реквестах, мы все умные в ретроспективе
источник

A

Artjom Kalita in Software Design/Architecture/Zen
Я где-то слышал мысль что если вам нужны саги, то возможно вы что-то перемудрили в вашей системе и нужно еще раз подумать на самом деле ли они вам нужны
источник

SP

Sergey Protko in Software Design/Architecture/Zen
лучше уточнить когда саги нужны - когда есть колаборация и действия в рамках одного процесса который сага представляет выполняется несколькими экторами (собственно конкурентные запросы разруливать надо как-то). Как альтернатива распределенным блокировкам
источник