Size: a a a

Software Design/Architecture/Zen

2021 May 21

k

knopkod4v in Software Design/Architecture/Zen
вот спросил у гугла, а там
Бенефиты от микросервисов
1.Microservices can reduce risk and improve stability (поставим сеть между штуками - импрув стабилити, ага да)
2. Microservices can reduce time to market (конечно, теперь мы будем собирать ивенты, делать агрегации на фронте и т.п. вместо такой долгой штуки как SQL join-ы). Не, ну вообще могут, наверное, но могут и нет 🤔
3. Microservices are more scalable - каждый второй хочет скейлится как гугель и всем это надо прям позарез.
4. Microservices enable greater technology flexibility (а кто-то это может назвать зоопарком технологий)
5. Microservices create greater team flexibility (ХЗ, говорят что да - а у вас точно 100500 разработчиков чтобы это сработало?)
Вот отсюда https://enterprisersproject.com/article/2017/8/how-make-case-microservices

Наверное так это и происходит
источник

SP

Sergey Protko in Software Design/Architecture/Zen
p.s. лучше в serverless тогда вкладываться)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
> 2. Microservices can reduce time to market (конечно, теперь мы будем собирать ивенты, делать агрегации на фронте и т.п. вместо такой долгой штуки как SQL join-ы). Не, ну вообще могут, наверное, но могут и нет

вот тут не надо путать расходы на разработку и time to market. Это разные показатели
источник

SP

Sergey Protko in Software Design/Architecture/Zen
например не редко можно встретить компании у которых фича разработчиками пилится скажем за неделю, но висит в ручном QA еще неделю потом квартальный релиз - еще 2-3 месяца, и до этого еще в бэклоге висела пол года
источник

SP

Sergey Protko in Software Design/Architecture/Zen
итого 1 неделя разработки и 9 месяцев time to market
источник

k

knopkod4v in Software Design/Architecture/Zen
тогда непонятно при чём тут микросервисы 🤔
типа за счёт снижения каплинга меньше тестить?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
> 5. Microservices create greater team flexibility

Есть у тебя отдел джавистов который достался в довесок от поглащения очередного стартапа - у них глаза горят хотят фичи писать. Вот только от php у них закатываются глазки и они потихоньку уволняются.

ну как пример
источник

SP

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

K

Konstantin in Software Design/Architecture/Zen
Как пример, 6и летний монолит пхп раздербаниваем на микро, SLA был говно (<96%) и bottleneck при релизах был настолько охуенен раньше, что было несколько релизеров которые вручную всё чекали и только они рулили всей конторой.

Прикинь ситуацию когда 6 команд с общим кол-вом в 70 разрабов релизят каждый день в один монолит
источник

k

knopkod4v in Software Design/Architecture/Zen
ну вот просто не у всех есть отдел джавистов. Даже полный отдел пхп-шников не у всех есть. Но микросервисы нужны всем
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну так и микросервисы не всем нужны)
источник

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
мне нравится объяснять суть микросервисов через риск менеджмент - мол если ты раз в день выкатываешь всю систему вероятность что что-то пойдет не так выше. А если ты выкатываешь 1% кода раз в день то ты точно знаешь что сломалось где когда и кем и можно легко откатиться
источник

K

Konstantin in Software Design/Architecture/Zen
Именно так, когда что-то лопалось в монолите была сильная боль везде у всех. Когда что-то лопается сейчас, мягкая нотификация или плейсхолдер «загляните попозже, извиняемся»
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну или как там у Ньюмана - "reduce blast radius"
источник

SP

Sergey Protko in Software Design/Architecture/Zen
у меня например есть еще один пример хороший - есть "данные" которые никак и ни при каких обстоятельствах не должны выходить за пределы региона скажем. Какие-нибудь личные данные и т.д. Закон обязывает. С этими данными работают 2-3 сервиса, остальным 90 похеру и ты можешь их деплоить где хочешь и как хочешь. Легко сегментировать систему по такому принципу
источник

K

Konstantin in Software Design/Architecture/Zen
Ну не знаааю (с)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
блин не могу сча загуглить доклад... там статистическую корреляцию через объем изменений + характер изменений приводили
источник