powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование микросервисов.
86 сообщений из 86, показаны все 4 страниц
Масштабирование микросервисов.
    #39642110
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал читать про микросервисы. Как я понял микросервис это нечто автономное, общающееся с внешним миром по сети. Например через jms.

Соответственно микросервисы не должны общаться через базу. Но что если мы понимаем, что нам больше не хватает одной машины для сервиса A, нужно 2 машины. Сервис А использует БД.

Могут ли в таком случае 2 инстанса сервера А исаользовать одну и ту же БД? если не могут, то почему именно и как решить эту проблему(репликация? consistency не будет?)?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642113
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642123
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака.
Т.е. микросервис ~= модуль, превращённый в автономное приложение.
Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса.
Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642125
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Соответственно микросервисы не должны общаться через базу.
Почему?
Чем Вам база не угодила?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642129
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака.
Т.е. микросервис ~= модуль, превращённый в автономное приложение.
Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса.
Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом.

То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642135
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsevredwhite90Соответственно микросервисы не должны общаться через базу.
Почему?
Чем Вам база не угодила?
Ну вот например

https://habr.com/post/249183/ Если коротко, то архитектурный стиль микросервисов — это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP . Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных.


https://habr.com/company/mailru/blog/320962/#2 Микросервисная архитектура — это подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры. То есть вместо того чтобы исполнять все ограниченные контексты приложения на сервере с помощью внутрипроцессных взаимодействий, мы используем несколько небольших приложений, каждое из которых соответствует какому-то ограниченному контексту. Причём эти приложения работают на разных серверах и взаимодействуют друг с другом по сети, например посредством HTTP.

Иными словами, мы инкапсулируем определённые контексты приложения в микросервисы, по одному на каждый, а сами микросервисы крутим на разных серверах.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642137
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642140
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё по теме:

https://habr.com/company/mailru/blog/320962/#2 При микросервисной архитектуре, когда каждый бизнес-компонент представляет собой микросервис, все компоненты обладают собственными базами данных, которые недоступны другим микросервисам. Данные компонента доступны (для чтения и записи) только через соответствующий интерфейс компонентов. Благодаря этому степень устойчивости данных варьируется в зависимости от компонента (Мартин Фаулер, Чед Фаулер).

Вот и возникает у меня вопрос:
Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642144
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90легковесные механизмы, как правило HTTPHTTP настолько "легковесный" протокол, что если мы гоняем данных через JMS или, например, базу, то латентность получается порядка миллисекунд, а как только мы начинаем делать тоже самое через http так латентность сразу начинает исчисляться десятками, если не сотнями, миллисекунд, что в принципе и понятно: постоянные хендшейки, сериализация, отсутствие состояния дешево стоить не могут. Микросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642145
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?Если вы пишите обычный монолит, то работает его модуль с базой или нет - определяется исключительно задумками разработчика.
Это первое.

Второе.
Когда вы пишите обычный монолит, то, вероятно, никто не использует словосочетание "тип модуля"?
Тогда почему вы считаете, что после превращения модуля (группы модулей) в приложение у этого приложения, внезапно, появляется какой-то "тип"?

Хотите сделать какое-то определение?
Дайте описание, адекватное предметной области и предложите короткий термин, который заменит это описание.
Использовать сильно многозначное слово "тип" - как-то не очень хорошо.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642150
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться.
Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу.
Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе?
Это первое.

Второе.
Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом?
Или, опять-таки, "понимаете, что всё будет тип-топ"?

Ну и самое главное ...
Цель разработки приложения - решить поставленную задачу.
Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы?
Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642154
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.
Я так и поверил что ты начал микросервисы писать.
Akka уже написал?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642157
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Petro123redwhite90,
Почему у тебя теория одна?
В прошлой СВОЕЙ теме книжку прочитал?

Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.ну и вопрос был про книжку что тебе дали в прошлом топике.
А ты как журналист, не читая полетел народ спрашивать.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642165
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться.
Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу.
Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе?
Это первое.

Второе.
Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом?
Или, опять-таки, "понимаете, что всё будет тип-топ"?

Ну и самое главное ...
Цель разработки приложения - решить поставленную задачу.
Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы?
Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты?

Я пока на пути понимания концепции. Понятно, что в реальной ситуации иногда приходится отходить от канонов по той или иной причине. Я хочу понять противоречит это концепции или нет.

"Чтобы работало" часто можно написать по разному. Так что не считаю это достоверным показателем.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642178
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642183
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё.

Ну то есть одну базу 2 разных микросервиса могут использовать вне зависимости занимаются они одним(являются братьями близнецами друг друга) и тем же или нет?

https://martinfowler.com/articles/microservices.html At a first approximation, we can observe that services map to runtime processes, but that is only a first approximation. A service may consist of multiple processes that will always be developed and deployed together, such as an application process and a database that's only used by that service.

Что на это скажете?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642185
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Что на это скажете?А что вы хотите услышать???
Моё личное мнение об абстрактных микросервисах в вакууме или высосанное из пальца обсуждение двух предложений и сказанных в одном неизвестном и процитированных в другом непонятном контексте?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642191
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микросервисы могут использовать общую БД. И кто сказал, что это одна машина? Это может быть и распределенный кластер.

Во всех перечисленных ссылках говорится об ОБЩЕНИИ модулей между собой. Это может и не быть http, а tcp. На одной машине - пайпы или shared memory
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642192
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях.

P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642197
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovArm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях.

P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память.
Во-первых, вы ушли от темя сабжа
Во-вторых, вы хотите меня уверить, что Java не умеет работать с Share Memory? Первая же ссылка на Хабре
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642207
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Первая же ссылка ..."В Linux объекты Shared Memory реализованы посредством специальной файловой системы, монтируемой к /dev/shm".
А Windows объекты разделяемой памяти реализованы не так.

Мы и дальше будем страдать фигнёй, обсуждая использование завязанных на систему особенностей в кросплатформенной среде?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642217
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методами map0 и unmap0...Такой механизм будет работать как в Linux, так и под Windows...
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642220
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методамиОсобо упёртым замечу, что наличие приватных методов никак не влияет на интерфейс Java SE API.
Особо непонятливым поясню, что даже открытый интерфейс не позволит работать с файлом /dev/shmem под виндой так, как хрюниксах.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642226
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особо упертым - мне в общем плевать. Я лишь иллюстрировал мысль, что канал общения между микросервисами неважен. Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642262
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ.ну какбы так и есть...apanginСамый главный недостаток этого метода заключается в том, что нельзя отображать файлы размером более 2 GB, что и описано в Javadoc к методу map: The size of the region to be mapped; must be non-negative and no greater than Integer.MAX_VALUE.На английском написано примерно так: файл может быть любого размера, однако в ByteBuffer можно отобразить любую его часть размером не более 2Gb, для выбора отображаемой части нужно использовать параметры position и size. Каким образом из этого предложения возникло утверждение что размер файла не может быть больше 2Gb мне как-то непонятно... Там про shared memory еще какой-то треш написан, но уже как-то не имеет смысла писать в чем там вранье.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642263
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642300
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловArm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP.
Наверное дебилы не они, а те, кто применяет неподходящие инструменты для определенных задач.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642403
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще мой вопрос связан с местом хранения состояния. База это не средство коммуникации, а средство хранения состояния. Может в таком случае два однородных сервера использовать одну и ту же БД ?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642404
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Может в таком случае два однородных сервера использовать одну и ту же БД ?нет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90База это не средство коммуникации, а средство хранения состояния
вот ты в ту книгу загляни, и увидишь что там написано всё наоборот. Теоретик.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642551
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот жеж развели тут

В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html

Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы.

Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д.

Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642561
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никВот жеж развели тут

В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html

Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы.

Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д.

Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка

Ну хоть один человек ответил на мой вопрос.

вадянет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу?


А что будет?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642581
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Ну хоть один человек ответил на мой вопрос.
Вопрос глупый.
Из той книги EIP:
- Общая БД это один из методов высшего уровня интеграции. ИХ МНОГО.
А микросервисы это просто архитектурный стиль, как например REST.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642582
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90А что будет?а вот на этот вопрос сам ответ дай
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642592
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяredwhite90А что будет?а вот на этот вопрос сам ответ дайон не дает ответов. Он пол года спрашивает по архитектуре.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642595
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце".
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642607
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123он не дает ответов. Он пол года спрашивает по архитектуре.а я и не жду...
я надеялся что чел поймет чёрный юмор
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642609
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovredwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце".

Откуда в Вас злости то столько? перед кем Вы пытаетесь самоутвердиться? я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивал
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642621
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Откуда в Вас злости то столько?"Добро пожаловать в реальный мир, Фёдор Сумкин"перед кем Вы пытаетесь самоутвердиться?Я, что, сильно похож на прыщавого юнца, который хочет понравится девушке?я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивалВы уж определитесь: или "я не знаю" или "слабо коррелируют с вопросом".

P.S. Лично я, начиная что-то изучать, беру любую информацию, которую удастся найти: в процессе изучения придёт понимание, что коррелирует, а что - не очень.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642640
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90что я этого не знаю, но хочу узнать.начните писать код. Тогда будет баланс.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642650
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловМикросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой.

Из чего следует такое определение?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642800
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник
Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка

Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось):

https://stackoverflow.com/a/30742466/2674303 Multiple applications accessing the same database tables can be (and usually is) a concurrency nightmare. Just adding a version column to tables does not help because each application may use different concurrency management mechanisms. Common problems encountered when sharing a database across applications (assuming read-write access for all and in no particular order):

Concurrency mismatch: Imagine one application using optimistic locking throughout, another using pessimistic locking and a third using no locking at all (since all are maintained by different teams). Even if there is a central architecture group handing out good application architecture advice to everyone, developers can do whatever they like and end up causing concurrency hell.
Deadlocks: Imagine one application using SERIALIZABLE isolation level for all transactions and performing long-running operations on the database, causing queues, deadlocks and timeouts. Even if other applications do not corrupt data, they may end up seeing too many errors due to deadlocks and timeouts, reducing their usefulness.
Data validity: It is common for developers to use in-memory caches for storing fixed or slow-changing data to save repeated database roundtrips. In a JPA application backed by Hibernate, developers could use a second-level cache. However, if another application updates the database, the cache would be holding stale (and therefore inaccurate) data.
Data integrity: Different applications may use different parts of the data. If all are allowed to update the common data independently, how is referential integrity maintained? What about business rules? Will they have to be duplicated across the applications?
Team communication overhead: Each team has to keep the other teams informed about changes they need to make to the schema so that they do not step on to each others' toes. This may even reduce agility if other teams do not agree with changes required by a team or if priorities cannot be aligned.
Schema errors: What happens if someone deletes, renames, moves or archives tables or columns required by an application?
Access control: If the underlying data is sensitive and requires authentication and authorization, access control checks will have to be duplicated across the applications.
Ownership: Who owns the common tables becomes a challenge as each team may have its own stakeholders, roadmap, constraints and priorities.
Portability: If the underlying database (vendor and type) has to be changed some day, all applications will need to be changed.
Auditing and versioning: If common data needs to be audited and/or versioned (multiple versions of data rows), the code will either have to be duplicated across applications or built into the database (which may not be easy within the database, for example, knowing which application user changed a record). If done within the database, portability is affected again because the syntax may vary from one database vendor to another.
Database-specific optimizations: Some scenarios (for example, reporting) may require native queries or other optimizations that may not be possible or too hard to perform using an ORM technology like JPA. If multiple applications require access to optimized queries, such functionality will either have to be built into the database (stored procedures) or duplicated across the applications (in possibly different ways).
Archival and partitioning: Different applications may have different archival and partitioning requirements. Who makes sure that everyone's needs are met equally?
Standardization: If different teams are allowed to manage the common database objects on their own, how are things such as data dictionary, naming conventions, etc. managed? A table that is used by different teams may have differently (and mostly annoyingly) named columns, constraints, etc.
A better approach is to expose the common database tables using a service. The service can keep things consistent and controlled at all times. A common team handling changes to the service can ensure that unexpected changes are minimized and also communicated to all affected parties in a timely manner.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642817
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90,
Не надо сюда копипастить.
И да, пишут что могут быть проблемы для неумелых рук.
Так же как и использование одной переменной класса из разных мест и потоков.
Ничего нового.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39642969
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось): https://stackoverflow.com/a/30742466/2674303 Multiple applications accessing the same database tables can be (and usually is) a concurrency nightmare.Там пишут, что на обычные проблемы конкурентного обращения, в случае микросервисов, могут накладываться проблемы разных версий.

Лично я согласен, что мигрировать запись одной структуры на запись другой структуры в самом приложении - очень сложно.
Соответственно, лучше сделать так, чтобы хвост не вилял собакой: менять структуру базы отдельным от разработки микросервисов процессом, централизованно обновляя и саму базу и (микро)сервисы, которые с этой базой работают.

P.S. Царский университет, юрфак, девушка (на отлично) сдаёт экзамен.
Профессор, считающий, что женщинам в юриспуриденции не место, хочет "срезать" экзаменуемую, смутив её.
- Предположим, что я попытался вас изнасиловать. Как бы вы квалифицировали это деяние?
- Как попытку с негодными средствами!

Не надо делать очевидно неподъёмные вещи.
Сделайте менее продвинутым, но посильным способом.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39643414
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.
[youtube=
YouTube Video
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644096
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644265
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловredwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода.

В целом по теме микросервисов я имел ввиду.

Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644309
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)
Знаешь, как шутят о микросервисах?
То что все о них говорят, но никто их не видел.
На этом форуме пара мемберов за 4 года.
Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644338
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)
Знаешь, как шутят о микросервисах?
То что все о них говорят, но никто их не видел.
На этом форуме пара мемберов за 4 года.
Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов.
Ну я видел в живую на живом проекте.
Не знаю, вошел ли в "пара мемберов", может меня уже подсчитали.

то что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.

Но никто в такую теорию, можно ли работать с базой, нельзя работать с базой.... не углублялся. Нужно - работаем, не нужно - не работаем. Обмен данными был по HTTP через прокси-балансир.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644339
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)Ну вообще с целом какбы принято, что если мы какие-то утверждения называем очевидными, то они либо являются общеизвестными фактами, либо не составляет никакой сложности их доказать - мне так кажется что с обоими способами доказательства, что микросервисы - это всегда хорошо, у вас возникнут проблемы. Вот посмотрите на самый первый слайд из вашей презентации по микросервисам (приложил внизу), как вот в этой архитектуре удалить клиента вместе со всеми его счетами и историей (или к примеру объеденить два счета вместе)? В той "архитектуре", которая нарисована - никак, потому что транзакций там никаких нет, а чтобы это реализовать и при этом придерживаться выбранной "архитектуры" нужно создать еще два микросвервиса: один будет записывать команды на удаление, а второй будет обрабатывать эти команды. Как по мне, так это попахивает каким-то лютым пи......ом.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644346
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфиловмне так кажется что с обоими способами доказательства, что микросервисы - это всегда хорошо, у вас возникнут проблемы



Я согласен, что это далеко не серебряная пуля. Есть проблемы, много проблем, но бывают ситуации(во всяком случае я в это верю) когда микросервисы могут быть подходящим вариантом. И не знакомиться с ними только потому, что в них есть какие-то там проблемы на мой взгляд глупо
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644378
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevможет меня уже подсчитали.да))))
У вас практика есть.
У ТС теория на уровне сферического коня которого он не пишет и не будет.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644408
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.Если что-то можно безболезненно остановить, то это что-то можно и не включать потом на самом деле у нас к примеру, много где BPM уже лет 15 используется и его можно прямо в рабочее время взять и выключить, а потом включить, однако чет этот BPM никто микросервисом не называет.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644432
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловLeonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.Если что-то можно безболезненно остановить, то это что-то можно и не включать потом на самом деле у нас к примеру, много где BPM уже лет 15 используется и его можно прямо в рабочее время взять и выключить, а потом включить, однако чет этот BPM никто микросервисом не называет.
Не. Не включать было нельзя ))) Там сотни тысяч юзеров.

Скорее действовал принцип "быстро поднятое, упавшим не считается". Т.к. при ошибках шел ретрай и при повторных ошибках - переключение на резерные сервисы/серверную. Т.к. микросервисы были написаны на чистой java + apache http library, то перезапускались достаточно быстро. Ну отвлалились подписчики.... ну через пару секунд подключились обратно. Никто и не заметил, что это на проде программисты под рутовым паролем развлекаются )))

Т.е. кволити услуги наверное понижалось, но если быстро - не критично.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644456
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.
...
Обмен данными был по HTTP через прокси-балансир.Когда на одной из прошлых работ я поднимал кластер "обычных монолитов", пользователи тоже не замечали, что перезапускаются отдельные узлы этого кластера.

Сама по себе фишка "остановил, обновил, запустил и никто ничего не заметил" - доступна давным давно.
Микросервисы как таковые не добавляют к этой возможности ничего нового.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644984
Фотография Герой дня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovLeonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.
...
Обмен данными был по HTTP через прокси-балансир.Когда на одной из прошлых работ я поднимал кластер "обычных монолитов", пользователи тоже не замечали, что перезапускаются отдельные узлы этого кластера.

Сама по себе фишка "остановил, обновил, запустил и никто ничего не заметил" - доступна давным давно.
Микросервисы как таковые не добавляют к этой возможности ничего нового.

ветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39644992
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Герой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тпОй, ну вы что вообще, пара сотен лишних мегабайт особой роли не сыграют, учитывая что сейчас даже у разработчиков десктопы по 32Gb и выше (у меня 64 о 16 ядрах), а что там на серверах даже страшно представить.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39645168
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Герой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп"Вы не гугл, не фэйсбук и не амазон".
В моём случае было ~6 экземпляров (так потребовал разработчик), которые прекрасно умещались на одном физическом сервере с восемью гигабайтами памяти.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39645188
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovГерой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп"Вы не гугл, не фэйсбук и не амазон".
В моём случае было ~6 экземпляров (так потребовал разработчик), которые прекрасно умещались на одном физическом сервере с восемью гигабайтами памяти.

Там где я видел микросервисы, было под 50 экземпляров микросервиса на одном из серверов который получал данные с биржи. Я так понимаю, в первом приближение по экземпляру микросервису на биржу-источник информации. Это только один микросервис.

Остальные куски системы еще больше. Когда они хостились на amazon'е, говорили, что кол-во инстанцев амазона было больше 100. Они динамически их еще запускали/гасили в зависимости от нагрузки.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39645192
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
У меня был проект, один exe и 120 длл к нему.
Микросервисы?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39645197
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТам где я видел микросервисы ...Когда вы приводили пример с микросервисами, то у вас был балансировщик.

Я отметил, что за балансировщиком одинаково работает и кластер микросервисов и кластер монолитных приложений.
То есть, возможность кластеризации не есть достоинство микросервисов.

Экономия ресурсов среды исполнения ...
Для системы с динамической и ленивой загрузкой классов ...
Вы точно уверены, что у нас достаточно данных для такого обсуждения?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646457
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

Микросервисы нужны для того, чтобы monkey-кодеры быстро нафигачили код, а добрые дяди dev-ops'ы это дерьмо разгребали.
Причем хороший микросервис должен быть такого размера, что его не жалко "взять и переписать".
А уж к какой БД, и кто подключается, это зависит от "кривизны" рук архитектора/тим лида.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646476
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulBasil A. Sidorov,

Микросервисы нужны для того, чтобы monkey-кодеры быстро нафигачили код, а добрые дяди dev-ops'ы это дерьмо разгребали.
Причем хороший микросервис должен быть такого размера, что его не жалко "взять и переписать".
А уж к какой БД, и кто подключается, это зависит от "кривизны" рук архитектора/тим лида.

В Ваших словах содержится крошечная доля истины :)

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

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

Из успешного опыта- мы написали нечто (сначала в виде монолита, но с прицелом на разделение), потом, когда стало ясно, какие куски кода тормозят и что надо мастабировать- быстро разделили на части с разными требованиями- бэкенд к UI - один и без задержек и глюков (простой и тупой).
А сложные расчёты с нейронками и прочим блэкджеком- в виде масштабируемых кусков (которые можно запускать в любом количестве и отстреливать, если бага привела к коллапсу). Разделение заняло пару человеко-дней.
Интеграцию сделали через шину и БД (команды и результаты расчётов). Потому что так было правильно в данном
случае.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646500
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,

у вас пример уж очень сильно на поверхности лежит, т.е. у нас есть разные модули с разным профилем нагрузки (разными источниками данных, конфликтующими зависимостями, разными SLA и пр.) - давайте сделаем так, чтобы эти модули жили своей жизнью - здесь никакой новизны нет. А вот в приведенном "докладе" (здесь специально в кавычках, потому как с такой манерой говорить на доклад оно ну с очень сильной натяжкой смахивает) концепция такая: у нас есть сущности из одного и того же домена, давайте DAO, обслуживающие эти сущности растащим не то что по разным модулям, а даже по разным сетевым сервисам - хоть какая-то толика здравого смысла в этом есть, если внутри мы не используем уловки, которые сводятся к тому, что у получившихся модулей разный профиль нагрузки и т.п.?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646518
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилову вас пример уж очень сильно на поверхности лежит,
+1 Декомпозиция всегда есть и будет.
Это обычный процесс, и к микросервисам относится только как возведенный в абсолют или притянутый за уши.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646576
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловА вот в приведенном "докладе" (здесь специально в кавычках, потому как с такой манерой говорить на доклад оно ну с очень сильной натяжкой смахивает) концепция такая: у нас есть сущности из одного и того же домена, давайте DAO, обслуживающие эти сущности растащим не то что по разным модулям, а даже по разным сетевым сервисам - хоть какая-то толика здравого смысла в этом есть, если внутри мы не используем уловки, которые сводятся к тому, что у получившихся модулей разный профиль нагрузки и т.п.?

Собственно у любого действия всегда должна быть причина.
Если кода становится хоть чуть больше- это должно иметь веские причины- только удалять код можно "потому что его возможно удалить"
Микросервисы всегда приводят к увеличению кода. На это должна быть причина. Причём всегда индивудуальная, почему ИМЕННО СЕЙЧАС нужно добавить кода.
Возможные причины- разные профили нагрузки, разное время жизни в проде, разные циклы релизов, разные команды и прочие.
Но это сложный кейс, и сказать без знания приложения нужно ли делать- невозможно.
А все доклады полезны только в смысле изучить чужой опыт, чтобы потом принять СВОЁ решение.

Если речь про того мужика с клиентами отдельно от счетов- ну фиг знает, может именно в его случае это оправдано?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646625
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin...и всё написано заново на другом языке с другой инфраструктурой. Но такое себе мало кто может позволить...
Если общение между микросервисами на HTTP - то язык и инфраструктура в общем-то пофиг
Хотим фигачим один из микросервисов на Java, хотим на Go, а можем и на Erlang'е ))) Нужно только, что бы язык/библиотека поддерживала базовые возможности HTTP.

Alexey Tomin....Микросервисы всегда приводят к увеличению кода....
На мой взгляд спорно.

Даже понятие "строки кода" - и то спорно. Т.к. можно написать "простыню" в 3 тысячи строк, которую потом будет никак не поддержать. Можно разбить на 10 хорошо продуманных классов по 500 строк, где все будет ясно и понятно. Строк стало больше, но суммарная сложность - меньше.

Alexey Tomin... разные профили нагрузки...

Что для современной Java (как минимум до 1G collector ) - крайне важно

Модуль обработки Web-запросов - нужно много eden области и мало old heap
Модуль кэширования, хранения данных - нужно мало eden области и много old heap.

Совершенно разные профили нагрузки. Запихивая все в "монолит", мы теряем возможность вручную управлять heap. Мало того, AFAIK для Java вполне реальны проблемы, когда ошибка в одном модуле "убила" весь heap и повесила весь сервер (или нештатное потребление heap значите выше предполагаемого, либо банальный resource leak)

IMHO & AFAIK

Alexey Tominразные циклы релизов, разные команды и прочие.

С точки зрения проектов, особенно в России. IMHO огромный плюс.

Есть микросервис, есть протокол взаимодействия, извечная проблема "кто виноват", достаточно быстро локализуется как минимум до конкретного микросервиса

Так же и низависимый деплой.

Т.к. на "монолите" наблюдал ситуацию, когда банальнейшие настройки GC, админы не могут на проде годами поставить (согласовать). Ответ один "сейчас все работает, а вдруг станет хуже", а при любых проблемах "раньше работало, а сейчас поменяли настройки GC - оно упало, т.ч. настройки откатили обратно". То, что "упало" по совершенно другим причинам - никого нафиг не волнует ))) просто откатили и доказывай, что настройки вообще не при чем )))

С микросервисами - как это этот процесс организационно должен проходить проще. Надеюсь )))
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646807
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТо, что "упало" по совершенно другим причинам - никого нафиг не волнует ))) просто откатили и доказывай, что настройки вообще не при чем )))

ну дык докажи,
фигле просто трепаться?


по сабжу
в основном, масштабируемости препятствует совместное использование общих ресурсов.
в бд - это блокировки и неоптимальные запросы,
на серверах приложений, - это неподходящие таймауты и неоптимальный код, например обработка больших xml

От того, как будет запускаться код приклада - из одного war файла или нескольких, или из одной директории или из нескольких, нифига не зависит.
зависит от того как используются процы и память

такшта связь между микросервисами и масштабируемостью, если и есть, то только косвенная,
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646811
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем единственный плюс микросервисов - это модульность, причем модульность чисто для прогеров, чтоб не в одном большом проекте ковыряться, а в мелких. Для одминов - одни минусы. Вместо одного war файла будет много, вместо одного процесса или потока на сессию, будет тоже много, т.к. разные сервисы - это по сути будут разные процессы.

С деплоем монолита ваще не вижу проблем. Скопировать war в несколько десятков Mb - не проблема, также как и дернуть сервера приложений в кластере.
на пхп ваще скрипты заливают по отдельности и никаких проблем с деплоем


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

Конекты к внешним ресурсам, то бишь аутентификатору и базе данных с сессиями, врят ли улучшат масштабируемость.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646852
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЗапихивая все в "монолит",слово монолит в данном топике не должно присутствовать.
Микросервисы не с монолитом сравнивают. А например, с шиной предприятия. Оркестровкой сервисов и т.д.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646853
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакС деплоем монолита ваще не вижу проблем. Скопировать war в несколько десятков Mb - не проблема, также как и дернуть сервера приложений в кластере.
на пхп ваще скрипты заливают по отдельности и никаких проблем с деплоем


Речь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646854
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123.....А например, с шиной предприятия. Оркестровкой сервисов и т.д.
Ой,ой... Вы так не пугайте (((
Нафиг, нафиг. Все эти шины, BIPL'ы, BPM'ы и прочее (((
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646855
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevPetro123.....А например, с шиной предприятия. Оркестровкой сервисов и т.д.
Ой,ой... Вы так не пугайте (((
Нафиг, нафиг. Все эти шины, BIPL'ы, BPM'ы и прочее (((


Ну они тоже не от простой жизни придуманы. Микросервисы только еще более усложняют интеграцию\версионирование и тд. Там хоть есть одно место, откуда можно начать все раскручивать, а в микросервисах все размазно
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Се́рвис-ориенти́рованная архитекту́ра (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по ...
.....
BPM другое.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646861
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Сколько лет термину микросервисы и где стандарт?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646876
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOA
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646981
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никРечь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно
тот факт что добавление новой фичи или какой нить багфикс несет с собой риск того, что можно сломать что то еще, говорит о том, что проект хреновый. Слишком связный или есть библиотеки, которые используются везде. Такой проект и на микросервисы разделить непросто, т.к. придется дублировать библиотеки во всех сервисах, либо организовывать тесное общение между сервисами.

В общем если проект такой, что там километры переплетающегося г-кода, и толпа обезьянко-кодеров в команде, то ни микросервисы, ни что либо другое не помогут.

Но это вопрос организации и кадров. Здесь это офтоп.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646982
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник... а то что думают админы или девелоперы по большому счету сейлсам все равно
насмешил
сейлсы могут заказчику обещать, что угодно, но пока програмеры и разрабы не сделают свою работу, нихрена не будет
такшто на сейлсов мы смотрим, как на говорящие головы
не более того
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39646984
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинаксейлсы могут заказчику обещать, что угодно, но пока програмеры и разрабы не сделают свою работу, нихрена не будет
такшто на сейлсов мы смотрим, как на говорящие головыРечь шла об сисадминах и родственных им девопсах.
И тем и другим нет принципиальной разницы, что разворачивать - монолит или микросервисы.
До определённых размеров можно даже управлять всем этим на коленке.

P.S.
Мне, правда, в любом случае не очень понятно, откуда берутся и программисты и продажники, если речь идёт о промышленной эксплуатации у клиента, который не зарабатывает деньги продажей ПО ...
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647054
Bsplesk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
казинакзабыл никРечь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно
тот факт что добавление новой фичи или какой нить багфикс несет с собой риск того, что можно сломать что то еще, говорит о том, что проект хреновый. Слишком связный или есть библиотеки, которые используются везде. Такой проект и на микросервисы разделить непросто, т.к. придется дублировать библиотеки во всех сервисах, либо организовывать тесное общение между сервисами.

В общем если проект такой, что там километры переплетающегося г-кода, и толпа обезьянко-кодеров в команде, то ни микросервисы, ни что либо другое не помогут.

Но это вопрос организации и кадров. Здесь это офтоп.

— Traps on the Path to Microservices, George Woskob, ThoughtWorks

Самый честный доклад про микросервисы, который я когда-либо слышал! Товарищ из ThoughtWorks (той самой ThoughtWorks, в которой работает Мартин Фаулер ) вначале похвастался тем, что распилил уже не один монолит и что знает всё про микросервисы. А потом прошёлся по «болевым точкам» перехода от монолита к микросервисам. Вкратце доклад можно сформулировать так: «Они обещали нам рай с микросервисами, а в реальности чаще всего получается такой адище, что лучше уж оставаться на монолите» . Например, как-то так, по мнению автора, выглядит типичный процесс перехода на микросервисы:



https://habr.com/company/badoo/blog/358814/


тот факт что добавление новой фичи или какой нить багфикс несет с собой риск того, что можно сломать что то еще, говорит о том, что проект хреновый.
В качестве примера:
В каждой системе чуть сложней "лайканья" котиков необходимо разграничение доступов, а это сервер(пусть cluster) выполняющий процессы authentication/authorization. Пусть это будет microservice+load balancing/cluster.
И вот обнаружилась critical spectre - что дальше? проект хреновый? хипстеры в панике бегут искать новое место работы, где еще не хреново?

Слишком связный или есть библиотеки, которые используются везде. Такой проект и на микросервисы разделить непросто, т.к. придется дублировать библиотеки во всех сервисах, либо организовывать тесное общение между сервисами.
Да мир несовершенен, сервисы между собой общаются. Кто-то слишком, кто-то не слишком. Ещё к примеру логируют свои действия(при возможности при помощи единой библиотеки - чтобы в случае изменения формата не изменять в 100-500 местах), и часто складывают в единое хранилище для анализа и разборов "кто, где насрал", в едином формате, а ещё кто-то их заставляет отчитыватся "Online" для выстраивания и отслеживания бизнес процессов+мониторинга - вообще жуть.
Слишком связный или есть библиотеки --> Это примерно, как отличие спекулянта от инвестора/порнографии от проституции.
Сточки зрения банка у него много-много микросевисов, что зрения ЦБ каждый банк это все лишь микросервис.

В общем если проект такой, что там километры переплетающегося г-кода, и толпа обезьянко-кодеров в команде, то ни микросервисы, ни что либо другое не помогут.

Но это вопрос организации и кадров. Здесь это офтоп.


Не сотвори себе кумира и всякаго подобия, елика на небеси горе, и елика на земли низу, и елика в водах под землею: да не поклонишися им, ни послужиши им.
(даже в компании, где работает кумир - ThoughtWorks есть люди готовые думать головой, а не ж.)
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647058
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bsplesk...А можно, мопвашуять, не выкладывать картинки нев...й ширины?
Особенно те, которые вообще не добавляют содержания вашему сообщению?
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647205
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне вот что подумалось.
Были монолитные приложения. Их писали долго, использовали тоже долго, а потом поменять уже нельзя.
ТОгда рядом стали появлятся новые приложения, вместо допиливания старого.
Появились интеграционные шины и прочая фигня- лет 10 назад все по ним балдели. Но результат- в целом хреновый.
Появилось новое решение- микросервисы. Мы сразу пишем кусочки, которые потом можно легко изменить/поправить/выкинуть. Это не то, чтобы золотая пуля, это ещё одна попытка выжить в мире потребностей большого бизнес-заказчика.
Кстати, девопс- это по сути следствие внедрения микросервисов.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647210
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,
вообще то да.
это как банде четырех пришло в голову систематизировать изыски и казуистику ооп в паттерны.

зы На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и устаревшую, но довольно верную защиту Филидора.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,
согласен. 2 шага вперёд, одни шаг назад.
КИС(монолит) -> SOA -> Облако->SOA под соусом микросервисов.
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647219
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 КИС(монолит) -> SOA -> Облако->SOA под соусом микросервисов.
пытаются прийти к асинхронной событийной модели и пока не получается.
Язык типа erlang слишком сложный))
...
Рейтинг: 0 / 0
Масштабирование микросервисов.
    #39647270
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominКстати, девопс- это по сути следствие внедрения микросервисов.Вы сейчас еще новых мифов придумаете... массовость DevOps - это следствие смещения Service Transition в сторону agile.
...
Рейтинг: 0 / 0
86 сообщений из 86, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Масштабирование микросервисов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]