Size: a a a

Software Design/Architecture/Zen

2020 October 23

АР

Александр Ремизов... in Software Design/Architecture/Zen
Собрались как-то молодые и амбициозные в чате. У того 40 микросервисов, у этого 400, у третьего 4000. Да у нас на планете людей столько нет, чтоб всем этим пользоваться.
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
knopkod4v
т.к. я злой человек - каждого любителя(ну или профессионала) микросервисов мне хочется спросить - "У вас они друг в друга ходют?"
По больному...
"Сегодня в завтрашний день не все могут смотреть. Вернее, смотреть могут не только лишь все, мало кто может это делать." (с)
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
Mixer
Карочи за архитектур/инфраструктуру. Тут в разговоре у нас с пацанами возникло понимание. Типа считается на микросервис вешать базу - паттерн. А если у нас несколько микросервисов работают с одной базой - то это типа антипаттерн. И вот нас жутко бомбит с того что это антипаттерн и слепо многие коллэги  40 баз на 40 микросервисов поднимают.  И типа это гуд. А мы говорим что не особо гуд)
Это не антипаттерн.
Допустим у нас обычная ситуация, был модульный монолит смотрящий в одну бд, возникла необходимость масштабировать, но бд все ещё справляется, это означает что её не трогаем, разбиваем монолит, в итоге у нас стал скажем монолит и N микросервисов и 1 бд.
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
Руслан
У нас на одном микросервисе с логами база дохнет, а тут прямо несколько будут одну насиловать? Хотя у нас умудрились таскать 50% данных между всеми сервисами через очередь. Неизвестно, что хуже - синкать через эвенты или в одну базу лезть
Известно. Синкать через эвенты. Пока можно решить проблемы на уровне хранения не нужно лезть выше. Но тут уж на что компетенций хватит и денежек)
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Nikita Fedorov
Известно. Синкать через эвенты. Пока можно решить проблемы на уровне хранения не нужно лезть выше. Но тут уж на что компетенций хватит и денежек)
Или на что мозга хватит - реляционность головного мозга тоже не одним днём выкорчёвывается))
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Nikita Fedorov
Это не антипаттерн.
Допустим у нас обычная ситуация, был модульный монолит смотрящий в одну бд, возникла необходимость масштабировать, но бд все ещё справляется, это означает что её не трогаем, разбиваем монолит, в итоге у нас стал скажем монолит и N микросервисов и 1 бд.
То что вы используете общую базу на несколько микросервисов, и живёте как-то, ещё не означает что это хорошо.

Оч странное решение, почему бы просто дешевого железа не накинуть в стойку, для решения проблем с производительностью?

Разделенный сетью модуль монолита с общей базой не есть микросервис.
источник

МФ

Максим Федоров... in Software Design/Architecture/Zen
Artem Zakirullin
То что вы используете общую базу на несколько микросервисов, и живёте как-то, ещё не означает что это хорошо.

Оч странное решение, почему бы просто дешевого железа не накинуть в стойку, для решения проблем с производительностью?

Разделенный сетью модуль монолита с общей базой не есть микросервис.
Ну значит он ошибся не с решением, а с тем, что обозвал это микросервисами

Не велика ошибка
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Artem Zakirullin
То что вы используете общую базу на несколько микросервисов, и живёте как-то, ещё не означает что это хорошо.

Оч странное решение, почему бы просто дешевого железа не накинуть в стойку, для решения проблем с производительностью?

Разделенный сетью модуль монолита с общей базой не есть микросервис.
Шаринг базы тащемта не хорошо и не плохо. Есть по этому делу даже целые толстые книги
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Максим Федоров
Ну значит он ошибся не с решением, а с тем, что обозвал это микросервисами

Не велика ошибка
Если все это работает, то вообще нет проблем.
Ошибка в том, что делались какие-то выводы про общую бд и микросервисы на основе того, что не является микросервисом
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Андрей Ява
Шаринг базы тащемта не хорошо и не плохо. Есть по этому делу даже целые толстые книги
Да некоторые ещё заменяют шаринг базу на шаринг Кафки (к примеру). И такие и так пойдет я починил. Я вместо базы стал в кафке все данные хранить.
Поменял схему данных на схему сообщений.
источник
2020 October 24

NF

Nikita Fedorov in Software Design/Architecture/Zen
Artem Zakirullin
То что вы используете общую базу на несколько микросервисов, и живёте как-то, ещё не означает что это хорошо.

Оч странное решение, почему бы просто дешевого железа не накинуть в стойку, для решения проблем с производительностью?

Разделенный сетью модуль монолита с общей базой не есть микросервис.
Почему вы считаете что разделенный сетью модуль монолита с общей базой не микросервис? Вы имеете ввиду что эти вещи взаимоисключающие или просто недостаточные для заключения?

Ну докинуть всегда можно, но это не всегда работает и не всегда дешевле. Я не могу привести достаточные факты для подтверждения, но думаю в этом чате есть те кто смогут.
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Nikita Fedorov
Почему вы считаете что разделенный сетью модуль монолита с общей базой не микросервис? Вы имеете ввиду что эти вещи взаимоисключающие или просто недостаточные для заключения?

Ну докинуть всегда можно, но это не всегда работает и не всегда дешевле. Я не могу привести достаточные факты для подтверждения, но думаю в этом чате есть те кто смогут.
Зачем делить сетью монолит, создавая себе еще больше проблем? Не проще нормально выделить контексты, независимые вертикальные слайсы, а потом уже задумаваться от делении на независимые юниты деплоймента (& добавлять сеть)?

К тому же, далеко не с первого раза удается верно выделить контексты, и в случае монолита дёшево будет поменять границы. Не вижу пойнта в добавлении сети, и погоне за мифическими "микросервисами" на пустом месте.

Топик стартер говорил про проблемы с производительностью, это дешево решается железом. Т.е. ничего не было про низкую скорость доставки фич/размер команды и т.п.
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
Artem Zakirullin
Зачем делить сетью монолит, создавая себе еще больше проблем? Не проще нормально выделить контексты, независимые вертикальные слайсы, а потом уже задумаваться от делении на независимые юниты деплоймента (& добавлять сеть)?

К тому же, далеко не с первого раза удается верно выделить контексты, и в случае монолита дёшево будет поменять границы. Не вижу пойнта в добавлении сети, и погоне за мифическими "микросервисами" на пустом месте.

Топик стартер говорил про проблемы с производительностью, это дешево решается железом. Т.е. ничего не было про низкую скорость доставки фич/размер команды и т.п.
под модульным монолитом я подразумеваю, что контексты уже выделены
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Artem Zakirullin
Зачем делить сетью монолит, создавая себе еще больше проблем? Не проще нормально выделить контексты, независимые вертикальные слайсы, а потом уже задумаваться от делении на независимые юниты деплоймента (& добавлять сеть)?

К тому же, далеко не с первого раза удается верно выделить контексты, и в случае монолита дёшево будет поменять границы. Не вижу пойнта в добавлении сети, и погоне за мифическими "микросервисами" на пустом месте.

Топик стартер говорил про проблемы с производительностью, это дешево решается железом. Т.е. ничего не было про низкую скорость доставки фич/размер команды и т.п.
Можно дробить базу и так получить Профит. Мол вдруг есть кусок интенсивно задействованный и его можно вынести. И в целом нет нужды все отпиливать
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Nikita Fedorov
под модульным монолитом я подразумеваю, что контексты уже выделены
До тех пор, пока модули ходят в одну бд и общие таблицы, такие себе модули
источник

AZ

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

Где нет четких границ, и сервисы/whatever запускают грязные руки в общие данные
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nikita Fedorov
Почему вы считаете что разделенный сетью модуль монолита с общей базой не микросервис? Вы имеете ввиду что эти вещи взаимоисключающие или просто недостаточные для заключения?

Ну докинуть всегда можно, но это не всегда работает и не всегда дешевле. Я не могу привести достаточные факты для подтверждения, но думаю в этом чате есть те кто смогут.
Разделить базу сложнее и профита больше потому нет смысла сначала заменять вызовы методов на запросы в апишку
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
это ваше все вот это разбивается о то что можно сделать сервис для чтения и сервис для записи и ясен фиг они будут смотреть в одну бд, но сервис на чтение мы будем неограниченно скейлить, а сервис для записи у нас будет скажем 1
источник

NF

Nikita Fedorov in Software Design/Architecture/Zen
Nikita Fedorov
это ваше все вот это разбивается о то что можно сделать сервис для чтения и сервис для записи и ясен фиг они будут смотреть в одну бд, но сервис на чтение мы будем неограниченно скейлить, а сервис для записи у нас будет скажем 1
и они все ещё могут смотреть в ту же бд что и монолит, и это будет норм особенно если нам не надо через монолит писать туда куда смотрит наш прекрасный сервис для записи
источник

SP

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