LINUX.ORG.RU
ФорумTalks

Какие проблемы решают микросервисы?

 ,


0

1

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

У кого какие аргументы за?

★★★★★

Ответ на: комментарий от ya-betmen

Есть такая штука - переиспользование кода, существует отдельно от микросервисов.

Если можно поменять пару опций в конфиге, зачем пердолиться с программированием?

kirk_johnson ★☆
()
Ответ на: комментарий от next_time

Ну такое тоже делали, например в Java это называлось OSGi. Что-то не взлетело совсем.

Например у тебя есть какой-то алгоритм, который пожирает 10 ГБ на инстанс. Если он микросервис, то при росте клиентов его возможно нужно масштабировать, возможно нет. Например может не нужно если он не перегружен запросами.

Если это .so, то его нужно загрузить на тех же машинах, значит заплатить эту цену для каждого клиента.

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

Когда таких языков несколько, то иногда нужно их связывать и до сих пор связь между Java/Go и например С++ делается в разы чище по сетевому протоколу, чем внутри процесса.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

Я про реальность говорил а не про чьи то влажные фантазии

Ну разговор не очень предметный, согласен.

kirk_johnson ★☆
()
Ответ на: комментарий от no-such-file

речь про лямбды, которые ни разу ни микросервисы и вообще не сервисы/серверы

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

next_time ★★★★★
()
Ответ на: комментарий от next_time

классические микросервисы

Классический микросервис это таки сервис, т.е. демон который крутится постоянно, хотя бы в контейнере. А лямбда вообще нигде не крутится.

no-such-file ★★★★★
()

Не представляю, как у кого-то может возникнуть желание заиметь вместо одного сервера 20. Причем совершенно разных, требующих дирежирования.

PatrickKilpatrick
()
Ответ на: комментарий от PatrickKilpatrick

дирИжирования, конечно. Не пойму, почему здесь нельзя редактировать свои посты.

PatrickKilpatrick
()
Ответ на: комментарий от no-such-file

С микросервисами получается более тонкое масштабирование, т.к. масштабируется только то, что требуется в данный момент и настолько, насколько требуется, а не сразу + целая VM.

Распространенное заблуждение, подобный автоскейлинг скорее приведет к тому что просто не хватит денег заплатить какому-нить амазону за 100500 инстанс.

Когда у тебя в результате какого-нить слешдот эффетка набегает куча юзеров то скейлить нужно весь базовый флоу (как бы скорее всего все флоу в соответствии со шляпой Гаусса). А вот если у тебя при стандартном числе юзеров внезапно начинает расти нагрузка только на один сервис то это скорее всего баг/атака и нужно разбираться чего там вообще случилось.

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от no-such-file

Всякую охинею про «проще тестировать», «можно писать на любом языке» и т.п. морковки для гребцов можно не рассматривать

чё сразу гребцов?

самое интересное, что «масштабирование» никогда не было целью микросервисов, а является результатом маркетинга постфактум.

system-root ★★★★★
()
Ответ на: комментарий от system-root

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

Ну как бы все эти микросервисы и прочие «гомоморфизмы монад» нахрен никому не впёрлись вне контекста маркетинга и денег.

no-such-file ★★★★★
()
Ответ на: комментарий от system-root

Вот кстати не факт. Если предположить, что джун пишет немасштабируемый код с вероятностью 60% и тормозной код с вероятностью скажем 40%, то если все 50 джунов пишут совместный код, то вероятность того что он тормозит 1 - 0.4^50 и что он при этом не масштабируется 1 - 0.6^50.

А в случае микросервисов никакого общего кода нет, поэтому из 50 сервисов тормозить будут только 20, а замасштабировать нельзя будет только 30. При чем одновременно обе проблемы будут только у части.

Так что своя логика тут есть.

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

«постлогика».
когда хайп только начинался, и уже все вокруг впаривали про микросервисы - нормального AWS/GCP ещё не было, а за терраформ вообще могли назвать фантазёром.
теперь-то, конечно, с промытыми маркетингом «масштабированием» мозгами легко рассуждать, что твой говнокод будет выдерживать наплыв трильёнов леммингов с помощью масштабирования и микросервисов, ведь твой сервис (иногда) такой популярный.

на деле, это просто была борьба со сложностью.

system-root ★★★★★
()
Ответ на: комментарий от system-root

А при чем тут наплыв лемингов? От такого система нагнется в самой слабой точке и встанет колом независимо от того на микросервисах она или нет.

ya-betmen ★★★★★
() автор топика
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от ya-betmen

при чем тут наплыв лемингов?

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

system-root ★★★★★
()
Ответ на: комментарий от system-root

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

ya-betmen ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.