|
|
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Начал читать про микросервисы. Как я понял микросервис это нечто автономное, общающееся с внешним миром по сети. Например через jms. Соответственно микросервисы не должны общаться через базу. Но что если мы понимаем, что нам больше не хватает одной машины для сервиса A, нужно 2 машины. Сервис А использует БД. Могут ли в таком случае 2 инстанса сервера А исаользовать одну и ту же БД? если не могут, то почему именно и как решить эту проблему(репликация? consistency не будет?)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:24 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:32 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака. Т.е. микросервис ~= модуль, превращённый в автономное приложение. Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса. Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Соответственно микросервисы не должны общаться через базу. Почему? Чем Вам база не угодила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Начал читать про микросервисы. Как я понял Микросервис это попытка разменять сложность разработки многомодульного приложения на сложность развёртывания многосервисного облака. Т.е. микросервис ~= модуль, превращённый в автономное приложение. Точно также, как у вас может быть несколько экземпляров модуля в памяти монолитного приложения, точно также у вас может быть несколько экземпляров микросервиса. Сколько экземпляров работают с базой - определяется логикой системы и здравым смыслом. То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 16:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevredwhite90Соответственно микросервисы не должны общаться через базу. Почему? Чем Вам база не угодила? Ну вот например https://habr.com/post/249183/ Если коротко, то архитектурный стиль микросервисов — это подход, при котором единое приложение строится как набор небольших сервисов, каждый из которых работает в собственном процессе и коммуницирует с остальными используя легковесные механизмы, как правило HTTP . Эти сервисы построены вокруг бизнес-потребностей и развертываются независимо с использованием полностью автоматизированной среды. Существует абсолютный минимум централизованного управления этими сервисами. Сами по себе эти сервисы могут быть написаны на разных языках и использовать разные технологии хранения данных. https://habr.com/company/mailru/blog/320962/#2 Микросервисная архитектура — это подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры. То есть вместо того чтобы исполнять все ограниченные контексты приложения на сервере с помощью внутрипроцессных взаимодействий, мы используем несколько небольших приложений, каждое из которых соответствует какому-то ограниченному контексту. Причём эти приложения работают на разных серверах и взаимодействуют друг с другом по сети, например посредством HTTP. Иными словами, мы инкапсулируем определённые контексты приложения в микросервисы, по одному на каждый, а сами микросервисы крутим на разных серверах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:02 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вот ещё по теме: https://habr.com/company/mailru/blog/320962/#2 При микросервисной архитектуре, когда каждый бизнес-компонент представляет собой микросервис, все компоненты обладают собственными базами данных, которые недоступны другим микросервисам. Данные компонента доступны (для чтения и записи) только через соответствующий интерфейс компонентов. Благодаря этому степень устойчивости данных варьируется в зависимости от компонента (Мартин Фаулер, Чед Фаулер). Вот и возникает у меня вопрос: Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:07 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90легковесные механизмы, как правило HTTPHTTP настолько "легковесный" протокол, что если мы гоняем данных через JMS или, например, базу, то латентность получается порядка миллисекунд, а как только мы начинаем делать тоже самое через http так латентность сразу начинает исчисляться десятками, если не сотнями, миллисекунд, что в принципе и понятно: постоянные хендшейки, сериализация, отсутствие состояния дешево стоить не могут. Микросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:22 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90То есть микросервисы одного типа могут работать с одной базой, а микросервисы разного типа не могут?Если вы пишите обычный монолит, то работает его модуль с базой или нет - определяется исключительно задумками разработчика. Это первое. Второе. Когда вы пишите обычный монолит, то, вероятно, никто не использует словосочетание "тип модуля"? Тогда почему вы считаете, что после превращения модуля (группы модулей) в приложение у этого приложения, внезапно, появляется какой-то "тип"? Хотите сделать какое-то определение? Дайте описание, адекватное предметной области и предложите короткий термин, который заменит это описание. Использовать сильно многозначное слово "тип" - как-то не очень хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:26 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе? Это первое. Второе. Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом? Или, опять-таки, "понимаете, что всё будет тип-топ"? Ну и самое главное ... Цель разработки приложения - решить поставленную задачу. Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы? Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:33 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо. Я так и поверил что ты начал микросервисы писать. Akka уже написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:35 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Petro123redwhite90, Почему у тебя теория одна? В прошлой СВОЕЙ теме книжку прочитал? Чтобы что-то начать делать нужна какая-то теоретическая основа и понимание нафига оно надо.ну и вопрос был про книжку что тебе дали в прошлом топике. А ты как журналист, не читая полетел народ спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 17:39 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Допустим я понял, что мы упёрлись в производительность Stock service и приходит понимание, что надо масштабироваться. Поднимаем рядом ещё одну машинку и получается, что 2 инстанса Stock service используют одну и ту же базу. Это нормально?Вы именно "поняли" или, всё-таки, спрофилировали ваше приложение и обнаружили дефицитный ресурс, который нельзя смасштабировать на имеющемся железе? Это первое. Второе. Вы уже сделали оценку дополнительной нагрузки и можете обоснованно предположить, что СУБД не станет новым узким местом? Или, опять-таки, "понимаете, что всё будет тип-топ"? Ну и самое главное ... Цель разработки приложения - решить поставленную задачу. Если решение задачи требует использовать цать клиентов, работающих с базой вместо одного, то какие могут быть проблемы? Вам деньги платят авторы материалов разной степени (бес)полезности или, всё-таки, (не)довольные клиенты? Я пока на пути понимания концепции. Понятно, что в реальной ситуации иногда приходится отходить от канонов по той или иной причине. Я хочу понять противоречит это концепции или нет. "Чтобы работало" часто можно написать по разному. Так что не считаю это достоверным показателем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 18:14 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Я хочу понять противоречит это концепции или нет.Концепция у микросервисов ровно одна - превращение модулей (групп модулей, подсистем) монолитного приложения в отдельные автономные приложения. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:07 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
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. Что на это скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Что на это скажете?А что вы хотите услышать??? Моё личное мнение об абстрактных микросервисах в вакууме или высосанное из пальца обсуждение двух предложений и сказанных в одном неизвестном и процитированных в другом непонятном контексте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 19:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Микросервисы могут использовать общую БД. И кто сказал, что это одна машина? Это может быть и распределенный кластер. Во всех перечисленных ссылках говорится об ОБЩЕНИИ модулей между собой. Это может и не быть http, а tcp. На одной машине - пайпы или shared memory ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 20:12 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях. P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 20:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovArm79или shared memoryОсобенно гармонично эта нативная возможность смотрится в Java-приложениях. P.S. Да, я в курсе, что общение IP-сокеты на localhost по эффективности сравнимы с общение через общую память. Во-первых, вы ушли от темя сабжа Во-вторых, вы хотите меня уверить, что Java не умеет работать с Share Memory? Первая же ссылка на Хабре ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 21:10 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79Первая же ссылка ..."В Linux объекты Shared Memory реализованы посредством специальной файловой системы, монтируемой к /dev/shm". А Windows объекты разделяемой памяти реализованы не так. Мы и дальше будем страдать фигнёй, обсуждая использование завязанных на систему особенностей в кросплатформенной среде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 21:51 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
...В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методами map0 и unmap0...Такой механизм будет работать как в Linux, так и под Windows... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:06 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79В Oracle JDK есть класс sun.nio.ch.FileChannelImpl с приватными методамиОсобо упёртым замечу, что наличие приватных методов никак не влияет на интерфейс Java SE API. Особо непонятливым поясню, что даже открытый интерфейс не позволит работать с файлом /dev/shmem под виндой так, как хрюниксах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:17 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Особо упертым - мне в общем плевать. Я лишь иллюстрировал мысль, что канал общения между микросервисами неважен. Будем считать, что товарищ Basil прав, а дурачок Андрей Пангин с его примерами на гитхаб - неправ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2018, 22:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
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 еще какой-то треш написан, но уже как-то не имеет смысла писать в чем там вранье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 05:20 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Arm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 05:24 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловArm79Это может и не быть http, а tcpВот жеж беда, оказывается все строители кластеров дебилы и используют multicast для общения, который по определению UDP. Наверное дебилы не они, а те, кто применяет неподходящие инструменты для определенных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 11:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вообще мой вопрос связан с местом хранения состояния. База это не средство коммуникации, а средство хранения состояния. Может в таком случае два однородных сервера использовать одну и ту же БД ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:19 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Может в таком случае два однородных сервера использовать одну и ту же БД ?нет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90База это не средство коммуникации, а средство хранения состояния вот ты в ту книгу загляни, и увидишь что там написано всё наоборот. Теоретик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2018, 18:32 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Вот жеж развели тут В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы. Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д. Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл никВот жеж развели тут В каноническом понимании микросервисов, один микросервис = bounded context из терминологии DDD Почитать можно тут - https://martinfowler.com/bliki/BoundedContext.html Один Bounded context = одно хранилище состояния. Если кто-то другой пишет в те же таблицы - значит хреновые у вас микросервисы. Причем ничего не мешает двум микросервисам использовать другую схему в той же базе и т.д. Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка Ну хоть один человек ответил на мой вопрос. вадянет ни в коем случае , это будет крах всего проекта. это как же несколько приложений и вдруг будут писать в одну таблицу? А что будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:14 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Ну хоть один человек ответил на мой вопрос. Вопрос глупый. Из той книги EIP: - Общая БД это один из методов высшего уровня интеграции. ИХ МНОГО. А микросервисы это просто архитектурный стиль, как например REST. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90А что будет?а вот на этот вопрос сам ответ дай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
вадяredwhite90А что будет?а вот на этот вопрос сам ответ дайон не дает ответов. Он пол года спрашивает по архитектуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 12:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123он не дает ответов. Он пол года спрашивает по архитектуре.а я и не жду... я надеялся что чел поймет чёрный юмор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:15 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovredwhite90Ну хоть один человек ответил на мой вопрос.Только ответ неправильный - считать таблицу "единицей состояния" ... Ну, "это мы дадим в конце". Откуда в Вас злости то столько? перед кем Вы пытаетесь самоутвердиться? я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:17 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Откуда в Вас злости то столько?"Добро пожаловать в реальный мир, Фёдор Сумкин"перед кем Вы пытаетесь самоутвердиться?Я, что, сильно похож на прыщавого юнца, который хочет понравится девушке?я ж пришёл с посылом, что я этого не знаю, но хочу узнать. Пока что Ваши ответы слабо коррелируют с тем, что я спрашивалВы уж определитесь: или "я не знаю" или "слабо коррелируют с вопросом". P.S. Лично я, начиная что-то изучать, беру любую информацию, которую удастся найти: в процессе изучения придёт понимание, что коррелирует, а что - не очень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:27 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90что я этого не знаю, но хочу узнать.начните писать код. Тогда будет баланс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 13:51 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловМикросервисы - это про то, как жаваскрипт в браузере взаимодействует с модулями системы, а не про то как модули системы взаимодействуют между собой. Из чего следует такое определение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 14:00 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл ник Ну и отвечая на непонятный вопрос ТС - да, если микросервис должен масштабироваться и работать на нескольких нодах - то никто не мешает ему писать в одну и ту же базу, почему нет? Смысл всей этой свистопляски в том, чтобы можно было задеплоить микросервис не ожидая каких-либо других приложений\сервисов. А в случае с разделяемой базой такое случится наверняка Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось): 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 16:39 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90, Не надо сюда копипастить. И да, пишут что могут быть проблемы для неумелых рук. Так же как и использование одной переменной класса из разных мест и потоков. Ничего нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2018, 17:04 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Вот что пишут(лучше пройти по ссылке, чтобы прочитать - тут совсем некрасиво отформатировалось): https://stackoverflow.com/a/30742466/2674303 Multiple applications accessing the same database tables can be (and usually is) a concurrency nightmare.Там пишут, что на обычные проблемы конкурентного обращения, в случае микросервисов, могут накладываться проблемы разных версий. Лично я согласен, что мигрировать запись одной структуры на запись другой структуры в самом приложении - очень сложно. Соответственно, лучше сделать так, чтобы хвост не вилял собакой: менять структуру базы отдельным от разработки микросервисов процессом, централизованно обновляя и саму базу и (микро)сервисы, которые с этой базой работают. P.S. Царский университет, юрфак, девушка (на отлично) сдаёт экзамен. Профессор, считающий, что женщинам в юриспуриденции не место, хочет "срезать" экзаменуемую, смутив её. - Предположим, что я попытался вас изнасиловать. Как бы вы квалифицировали это деяние? - Как попытку с негодными средствами! Не надо делать очевидно неподъёмные вещи. Сделайте менее продвинутым, но посильным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 01:27 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли. [youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2018, 17:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 04:23 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей Панфиловredwhite90Мужик годно объясняет. Всё с нуля, по делу и , главное, понятно изъясняет мысли.И в каком месте это отвечает на ваш вопрос? Первые пять минут презентации уделены не то что неочевидному, а даже спорному утверждению, что если мы возьмем нормально работающее приложение, разрежем его на куски, которые между собой будут общаться теперь не через память, а через HTTP, то у нас, "внезапно", приложение начнет лучше масштабироваться (примерно как здесь: https://blog.risingstack.com/why-you-should-start-using-microservices/ ). А остальные 40 минут посвящены тому, как героически решать проблемы, возникшие после такого вот неочевидного подхода. В целом по теме микросервисов я имел ввиду. Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:11 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) Знаешь, как шутят о микросервисах? То что все о них говорят, но никто их не видел. На этом форуме пара мемберов за 4 года. Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 11:57 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё) Знаешь, как шутят о микросервисах? То что все о них говорят, но никто их не видел. На этом форуме пара мемберов за 4 года. Так что продолжай брать инервью у программистов и жаловаться что тут срут для журналистов. Ну я видел в живую на живом проекте. Не знаю, вошел ли в "пара мемберов", может меня уже подсчитали. то что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили. Но никто в такую теорию, можно ли работать с базой, нельзя работать с базой.... не углублялся. Нужно - работаем, не нужно - не работаем. Обмен данными был по HTTP через прокси-балансир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:41 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
redwhite90Почему спорное? нормальное такое утверждение. Докладчик в отличии от большинства местных отвечателей пытается донести информацию, а не тупо засрать всё)Ну вообще с целом какбы принято, что если мы какие-то утверждения называем очевидными, то они либо являются общеизвестными фактами, либо не составляет никакой сложности их доказать - мне так кажется что с обоими способами доказательства, что микросервисы - это всегда хорошо, у вас возникнут проблемы. Вот посмотрите на самый первый слайд из вашей презентации по микросервисам (приложил внизу), как вот в этой архитектуре удалить клиента вместе со всеми его счетами и историей (или к примеру объеденить два счета вместе)? В той "архитектуре", которая нарисована - никак, потому что транзакций там никаких нет, а чтобы это реализовать и при этом придерживаться выбранной "архитектуры" нужно создать еще два микросвервиса: один будет записывать команды на удаление, а второй будет обрабатывать эти команды. Как по мне, так это попахивает каким-то лютым пи......ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:44 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей Панфиловмне так кажется что с обоими способами доказательства, что микросервисы - это всегда хорошо, у вас возникнут проблемы Я согласен, что это далеко не серебряная пуля. Есть проблемы, много проблем, но бывают ситуации(во всяком случае я в это верю) когда микросервисы могут быть подходящим вариантом. И не знакомиться с ними только потому, что в них есть какие-то там проблемы на мой взгляд глупо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 12:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevможет меня уже подсчитали.да)))) У вас практика есть. У ТС теория на уровне сферического коня которого он не пишет и не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 13:24 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.Если что-то можно безболезненно остановить, то это что-то можно и не включать потом на самом деле у нас к примеру, много где BPM уже лет 15 используется и его можно прямо в рабочее время взять и выключить, а потом включить, однако чет этот BPM никто микросервисом не называет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 13:58 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловLeonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили.Если что-то можно безболезненно остановить, то это что-то можно и не включать потом на самом деле у нас к примеру, много где BPM уже лет 15 используется и его можно прямо в рабочее время взять и выключить, а потом включить, однако чет этот BPM никто микросервисом не называет. Не. Не включать было нельзя ))) Там сотни тысяч юзеров. Скорее действовал принцип "быстро поднятое, упавшим не считается". Т.к. при ошибках шел ретрай и при повторных ошибках - переключение на резерные сервисы/серверную. Т.к. микросервисы были написаны на чистой java + apache http library, то перезапускались достаточно быстро. Ну отвлалились подписчики.... ну через пару секунд подключились обратно. Никто и не заметил, что это на проде программисты под рутовым паролем развлекаются ))) Т.е. кволити услуги наверное понижалось, но если быстро - не критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:23 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили. ... Обмен данными был по HTTP через прокси-балансир.Когда на одной из прошлых работ я поднимал кластер "обычных монолитов", пользователи тоже не замечали, что перезапускаются отдельные узлы этого кластера. Сама по себе фишка "остановил, обновил, запустил и никто ничего не заметил" - доступна давным давно. Микросервисы как таковые не добавляют к этой возможности ничего нового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2018, 14:50 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovLeonid Kudryavtsevто что я видел - было круто. Остановил микросервис на проде, залил новую версию, запустил - юзеры даже не заметили. ... Обмен данными был по HTTP через прокси-балансир.Когда на одной из прошлых работ я поднимал кластер "обычных монолитов", пользователи тоже не замечали, что перезапускаются отдельные узлы этого кластера. Сама по себе фишка "остановил, обновил, запустил и никто ничего не заметил" - доступна давным давно. Микросервисы как таковые не добавляют к этой возможности ничего нового. ветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 13:45 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Герой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тпОй, ну вы что вообще, пара сотен лишних мегабайт особой роли не сыграют, учитывая что сейчас даже у разработчиков десктопы по 32Gb и выше (у меня 64 о 16 ядрах), а что там на серверах даже страшно представить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 13:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Герой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп"Вы не гугл, не фэйсбук и не амазон". В моём случае было ~6 экземпляров (так потребовал разработчик), которые прекрасно умещались на одном физическом сервере с восемью гигабайтами памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 18:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovГерой дняветка про масштабирование, у тебя приходится плодить монолиты при нагрузке, а это лишние расходы по памяти и тп"Вы не гугл, не фэйсбук и не амазон". В моём случае было ~6 экземпляров (так потребовал разработчик), которые прекрасно умещались на одном физическом сервере с восемью гигабайтами памяти. Там где я видел микросервисы, было под 50 экземпляров микросервиса на одном из серверов который получал данные с биржи. Я так понимаю, в первом приближение по экземпляру микросервису на биржу-источник информации. Это только один микросервис. Остальные куски системы еще больше. Когда они хостились на amazon'е, говорили, что кол-во инстанцев амазона было больше 100. Они динамически их еще запускали/гасили в зависимости от нагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 19:31 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, У меня был проект, один exe и 120 длл к нему. Микросервисы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 19:38 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevТам где я видел микросервисы ...Когда вы приводили пример с микросервисами, то у вас был балансировщик. Я отметил, что за балансировщиком одинаково работает и кластер микросервисов и кластер монолитных приложений. То есть, возможность кластеризации не есть достоинство микросервисов. Экономия ресурсов среды исполнения ... Для системы с динамической и ленивой загрузкой классов ... Вы точно уверены, что у нас достаточно данных для такого обсуждения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2018, 19:53 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Микросервисы нужны для того, чтобы monkey-кодеры быстро нафигачили код, а добрые дяди dev-ops'ы это дерьмо разгребали. Причем хороший микросервис должен быть такого размера, что его не жалко "взять и переписать". А уж к какой БД, и кто подключается, это зависит от "кривизны" рук архитектора/тим лида. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 05:25 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
mad_nazgulBasil A. Sidorov, Микросервисы нужны для того, чтобы monkey-кодеры быстро нафигачили код, а добрые дяди dev-ops'ы это дерьмо разгребали. Причем хороший микросервис должен быть такого размера, что его не жалко "взять и переписать". А уж к какой БД, и кто подключается, это зависит от "кривизны" рук архитектора/тим лида. В Ваших словах содержится крошечная доля истины :) На самом деле основная проблема в том, что в типичном случае задача ставится как "поди не знаю туда принеси не знаю что". Это если не продукт пилим новый, где вообще не ясно, что нужно и взлетит ли. Поэтому на старте точно ясно только одно- код будет переписан и по несколько раз. Кстати, границы микросервисов- это тоже тоже то, что будет переделано много раз. Альтернатива? Ну например твиттер, где, после удачного старта, старый код был выкинут вообще весь и всё написано заново на другом языке с другой инфраструктурой. Но такое себе мало кто может позволить. Из успешного опыта- мы написали нечто (сначала в виде монолита, но с прицелом на разделение), потом, когда стало ясно, какие куски кода тормозят и что надо мастабировать- быстро разделили на части с разными требованиями- бэкенд к UI - один и без задержек и глюков (простой и тупой). А сложные расчёты с нейронками и прочим блэкджеком- в виде масштабируемых кусков (которые можно запускать в любом количестве и отстреливать, если бага привела к коллапсу). Разделение заняло пару человеко-дней. Интеграцию сделали через шину и БД (команды и результаты расчётов). Потому что так было правильно в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 07:23 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, у вас пример уж очень сильно на поверхности лежит, т.е. у нас есть разные модули с разным профилем нагрузки (разными источниками данных, конфликтующими зависимостями, разными SLA и пр.) - давайте сделаем так, чтобы эти модули жили своей жизнью - здесь никакой новизны нет. А вот в приведенном "докладе" (здесь специально в кавычках, потому как с такой манерой говорить на доклад оно ну с очень сильной натяжкой смахивает) концепция такая: у нас есть сущности из одного и того же домена, давайте DAO, обслуживающие эти сущности растащим не то что по разным модулям, а даже по разным сетевым сервисам - хоть какая-то толика здравого смысла в этом есть, если внутри мы не используем уловки, которые сводятся к тому, что у получившихся модулей разный профиль нагрузки и т.п.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 08:17 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей Панфилову вас пример уж очень сильно на поверхности лежит, +1 Декомпозиция всегда есть и будет. Это обычный процесс, и к микросервисам относится только как возведенный в абсолют или притянутый за уши. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 09:07 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловА вот в приведенном "докладе" (здесь специально в кавычках, потому как с такой манерой говорить на доклад оно ну с очень сильной натяжкой смахивает) концепция такая: у нас есть сущности из одного и того же домена, давайте DAO, обслуживающие эти сущности растащим не то что по разным модулям, а даже по разным сетевым сервисам - хоть какая-то толика здравого смысла в этом есть, если внутри мы не используем уловки, которые сводятся к тому, что у получившихся модулей разный профиль нагрузки и т.п.? Собственно у любого действия всегда должна быть причина. Если кода становится хоть чуть больше- это должно иметь веские причины- только удалять код можно "потому что его возможно удалить" Микросервисы всегда приводят к увеличению кода. На это должна быть причина. Причём всегда индивудуальная, почему ИМЕННО СЕЙЧАС нужно добавить кода. Возможные причины- разные профили нагрузки, разное время жизни в проде, разные циклы релизов, разные команды и прочие. Но это сложный кейс, и сказать без знания приложения нужно ли делать- невозможно. А все доклады полезны только в смысле изучить чужой опыт, чтобы потом принять СВОЁ решение. Если речь про того мужика с клиентами отдельно от счетов- ну фиг знает, может именно в его случае это оправдано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 10:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
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 - оно упало, т.ч. настройки откатили обратно". То, что "упало" по совершенно другим причинам - никого нафиг не волнует ))) просто откатили и доказывай, что настройки вообще не при чем ))) С микросервисами - как это этот процесс организационно должен проходить проще. Надеюсь ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 12:23 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevТо, что "упало" по совершенно другим причинам - никого нафиг не волнует ))) просто откатили и доказывай, что настройки вообще не при чем ))) ну дык докажи, фигле просто трепаться? по сабжу в основном, масштабируемости препятствует совместное использование общих ресурсов. в бд - это блокировки и неоптимальные запросы, на серверах приложений, - это неподходящие таймауты и неоптимальный код, например обработка больших xml От того, как будет запускаться код приклада - из одного war файла или нескольких, или из одной директории или из нескольких, нифига не зависит. зависит от того как используются процы и память такшта связь между микросервисами и масштабируемостью, если и есть, то только косвенная, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 16:44 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
в общем единственный плюс микросервисов - это модульность, причем модульность чисто для прогеров, чтоб не в одном большом проекте ковыряться, а в мелких. Для одминов - одни минусы. Вместо одного war файла будет много, вместо одного процесса или потока на сессию, будет тоже много, т.к. разные сервисы - это по сути будут разные процессы. С деплоем монолита ваще не вижу проблем. Скопировать war в несколько десятков Mb - не проблема, также как и дернуть сервера приложений в кластере. на пхп ваще скрипты заливают по отдельности и никаких проблем с деплоем кроме того нужен внешний аутентификатор, и нужно шарить сессии если данные сессии, скажем коллекция, храниться прям в сессии то доступ к ней быстрей чем к мемкэшу на другом сервере, а объем использованной памяти такой же. Конекты к внешним ресурсам, то бишь аутентификатору и базе данных с сессиями, врят ли улучшат масштабируемость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 16:52 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЗапихивая все в "монолит",слово монолит в данном топике не должно присутствовать. Микросервисы не с монолитом сравнивают. А например, с шиной предприятия. Оркестровкой сервисов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:45 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
казинакС деплоем монолита ваще не вижу проблем. Скопировать war в несколько десятков Mb - не проблема, также как и дернуть сервера приложений в кластере. на пхп ваще скрипты заливают по отдельности и никаких проблем с деплоем Речь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:46 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123.....А например, с шиной предприятия. Оркестровкой сервисов и т.д. Ой,ой... Вы так не пугайте ((( Нафиг, нафиг. Все эти шины, BIPL'ы, BPM'ы и прочее ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:47 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevPetro123.....А например, с шиной предприятия. Оркестровкой сервисов и т.д. Ой,ой... Вы так не пугайте ((( Нафиг, нафиг. Все эти шины, BIPL'ы, BPM'ы и прочее ((( Ну они тоже не от простой жизни придуманы. Микросервисы только еще более усложняют интеграцию\версионирование и тд. Там хоть есть одно место, откуда можно начать все раскручивать, а в микросервисах все размазно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:49 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Се́рвис-ориенти́рованная архитекту́ра (SOA, англ. service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по ... ..... BPM другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:54 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Сколько лет термину микросервисы и где стандарт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 18:56 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл никРечь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно тот факт что добавление новой фичи или какой нить багфикс несет с собой риск того, что можно сломать что то еще, говорит о том, что проект хреновый. Слишком связный или есть библиотеки, которые используются везде. Такой проект и на микросервисы разделить непросто, т.к. придется дублировать библиотеки во всех сервисах, либо организовывать тесное общение между сервисами. В общем если проект такой, что там километры переплетающегося г-кода, и толпа обезьянко-кодеров в команде, то ни микросервисы, ни что либо другое не помогут. Но это вопрос организации и кадров. Здесь это офтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 03:43 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
забыл ник... а то что думают админы или девелоперы по большому счету сейлсам все равно насмешил сейлсы могут заказчику обещать, что угодно, но пока програмеры и разрабы не сделают свою работу, нихрена не будет такшто на сейлсов мы смотрим, как на говорящие головы не более того ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 04:29 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
казинаксейлсы могут заказчику обещать, что угодно, но пока програмеры и разрабы не сделают свою работу, нихрена не будет такшто на сейлсов мы смотрим, как на говорящие головыРечь шла об сисадминах и родственных им девопсах. И тем и другим нет принципиальной разницы, что разворачивать - монолит или микросервисы. До определённых размеров можно даже управлять всем этим на коленке. P.S. Мне, правда, в любом случае не очень понятно, откуда берутся и программисты и продажники, если речь идёт о промышленной эксплуатации у клиента, который не зарабатывает деньги продажей ПО ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 05:08 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
казинакзабыл никРечь вообще не об этом, при планировании\спринтах монолита невозможно всунуть фичу очень быстро, несмотря на то что она бизнесу нужна еще вчера. Потому что надо провести регрессию, убедиться что другие истории\фиксы ничего не ломают и тд и тп, это долгий процесс. В случае с микросервисами(хотя у меня тоже двоякое к ним отношение) это возможно и цикл между запросили фичу\получили короткий, что бизнесу очень нравится, а то что думают админы или девелоперы по большому счету сейлсам все равно тот факт что добавление новой фичи или какой нить багфикс несет с собой риск того, что можно сломать что то еще, говорит о том, что проект хреновый. Слишком связный или есть библиотеки, которые используются везде. Такой проект и на микросервисы разделить непросто, т.к. придется дублировать библиотеки во всех сервисах, либо организовывать тесное общение между сервисами. В общем если проект такой, что там километры переплетающегося г-кода, и толпа обезьянко-кодеров в команде, то ни микросервисы, ни что либо другое не помогут. Но это вопрос организации и кадров. Здесь это офтоп. — 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 есть люди готовые думать головой, а не ж.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 15:20 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Bsplesk...А можно, мопвашуять, не выкладывать картинки нев...й ширины? Особенно те, которые вообще не добавляют содержания вашему сообщению? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 16:09 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Мне вот что подумалось. Были монолитные приложения. Их писали долго, использовали тоже долго, а потом поменять уже нельзя. ТОгда рядом стали появлятся новые приложения, вместо допиливания старого. Появились интеграционные шины и прочая фигня- лет 10 назад все по ним балдели. Но результат- в целом хреновый. Появилось новое решение- микросервисы. Мы сразу пишем кусочки, которые потом можно легко изменить/поправить/выкинуть. Это не то, чтобы золотая пуля, это ещё одна попытка выжить в мире потребностей большого бизнес-заказчика. Кстати, девопс- это по сути следствие внедрения микросервисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2018, 11:28 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, вообще то да. это как банде четырех пришло в голову систематизировать изыски и казуистику ооп в паттерны. зы На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и устаревшую, но довольно верную защиту Филидора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2018, 11:39 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, согласен. 2 шага вперёд, одни шаг назад. КИС(монолит) -> SOA -> Облако->SOA под соусом микросервисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2018, 12:20 |
|
||
|
Масштабирование микросервисов.
|
|||
|---|---|---|---|
|
#18+
Petro123 КИС(монолит) -> SOA -> Облако->SOA под соусом микросервисов. пытаются прийти к асинхронной событийной модели и пока не получается. Язык типа erlang слишком сложный)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2018, 12:22 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2122042]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
125ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 355ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...