LINUX.ORG.RU

А чем микросервис отличается от функции?

 


0

2

Нужно ли мне создавать микросервисы, если я делаю все один?

И еще вопросик по кодовой базе: часто одни и те же функции используются. Нужно в одной папочке все микросервисы хранить? А если по сети взаимодействуют, то нужно каждый микросервис обновлять по отдельности? И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

★★★★

Последнее исправление: gobot (всего исправлений: 1)

Нужно ли мне создавать микросервисы, если я делаю все один?

Нужно! Главное, чтобы!

И еще вопросик по кодовой базе: часто одни и те же функции используются.

Cоболезную.

Нужно в одной папочке все микросервисы хранить?

Гуру нтнрнета говорят - храни другие в другой папочке!

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

Если вдвоем, то вместе!

И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

Практика показала, что проще telnet!

anonymous
()

Нужно ли мне создавать микросервисы, если я делаю все один?

Можно, это serverless функции + EDA (Event driven architecture)

Нужно в одной папочке все микросервисы хранить?

Нет, общие функции хранятся в одном репозитории

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

Этим должна заниматься экосистема в которой функции эти находятся

И что еще получается нужен брокер сообщений Должна быть какая-то шина «событий».

В своем pet проджекте я использую knative экосистему для создания servelress функций, в ее поставки идут брокеры in-memory, kafka-broker, nats-brokker и многие другие

или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

Istio инжектит в каждый pod с функцией свой sidecar который подсовывает событий из брокера конкретно в функцию в формате cloudevent

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)

чем микросервис отличается от функции?

Сервис работает постоянно (принимая и обрабатывая запросы), функция (лямбда) стартует по запросу, делает свою работу и завершается.

То есть сервис минус вебсервер = набор лямбд. Ещё меньше рутинных задач, ещё плотнее фокус разработчика на бизнес-логике.

Чем модная и молодёжная лямбда принципиально отличается от старого доброго CGI-скрипта? А б-г его знает %)

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)
Ответ на: комментарий от FishHook

четыре звезды у чела, о майн готт

Меня смущает что люди оценивают по звёздам что то. Звёзды - это просто сколько времени ты про*рал на этом форуме, не более.

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

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

Ну как бы да, без соответствующей инфраструктуры и CGI-скрипт не заработает %)

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)

Нет, не нужно. Микросервисы помогают сотню человек распределить по командам с относительно независимыми циклами разработки. Обновление, само собой, по отдельности.

neumond
()

Нужно ли мне создавать микросервисы, если я делаю все один?

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

Kolins ★★★★★
()

А для чего тебе микросервисы? Что ты от них хочешь получить?

Разбивка на микросервисы ведь делается не просто так, а с определенными целями.

И от этих целей зависят ответы на твои вопросы.

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

Если не нравяться анонимные fifo (вызов процедур [со сторонними эффектами]), можно использовать unix-socket (функции, возвращающие результат, возможно, чистые). А там недалеко до IP-стека. Где граница микро/макро?

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

Сервис с вебсервером - это микро или макро?

Как-то же должен сервис принимать запросы, будь он микро или макро. То есть какой-то сервер в ём обычно есть.

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

Разбивка на микросервисы ведь делается не просто так, а с определенными целями.

Ага, были стандартные протоколы для rpc (большие и тяжелые из-за универсальности), заменили на нестандартные, у каждого свои, хрен кто влезет со стороны, незаменимость спеца обеспечена, зато микро, по началу, а потом…

anonymous
()

А чем микросервис отличается от функции?

Микросервис это программа, функция это отображение одного множества на другое.

Нужно ли мне создавать микросервисы, если я делаю все один?

Не нужно.

И еще вопросик по кодовой базе: часто одни и те же функции используются. Нужно в одной папочке все микросервисы хранить? А если по сети взаимодействуют, то нужно каждый микросервис обновлять по отдельности? И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

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

vbr ★★★★★
()

микросервисы - это способ решить проблему коммуникаций в большом коллективе.

Если софтина огромная и её пилят как монолит, то неизбежно возникают связи. В коллективе из 5 человек их 20, что само по себе ещё управляемо. Но если что-то сложнее, то нужно уже 100 человек и если это одна программа и одна комната, то они ничего не могут сделать, потому что в центре этой комнаты ринг и там насмерть бьются очкарик с пузаном за табуляцию: пробелы или табы.

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

Для того, чтобы всё это изолировать, дробят на микросервисы: в этой палате^W комнате пишут платежную часть, тут скрепер сайтов, здесь вылизывают ленту фидов. Неизбежно остается платформенная команда - это те, кто обходят этот паноптикум, приносят еду, отмывают со стен кал и поддерживают в рабочем состоянии общую кафку.

Так что если у тебя 6 микросервисов шарят один код, то либо это твой новый stdlib и тогда оформляй его соответствующе: пиши документы, статьи как им пользоваться, желательно найти на гитхабе дураков, которые будут тебе его бесплатно чинить и развивать. Если не хочешь, то ты зря распилил и себя обманул.

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

Звёзды дают за балаболию, а не за знания.

я тоже хочу пять звезд, чем я хуже

Товарищ gobot еще как минимум в 2022м году начал работать с микросервисами. И к 2025му раздуплился вопросом, а что это вообще такое.

Нет. Софртина - кластер, состоящий из микросервисов, общающихся меж собой посредством Кролика. Это по сути Framework. Хотя с другой стороны - из коробки рабочая система с веь-админкой. Я кастомизирую все это под себя. Мне надо по событию Х запустить некое действие. Можно конечно логи парсить и там отлавливать, но я решил делать это на уровне Кролика

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

FishHook
()
Последнее исправление: FishHook (всего исправлений: 1)
Ответ на: комментарий от anonymous

«микросервисы» - это про софт-скиллы

ну ещё как минимум возможность разные ЯП для микросервисов использовать.

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

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

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

Но как одно из проявлений - да, безусловно

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

где нужны синхронные ответы и т.п.

в EDA классические синхронные «request-response» не нужны, и именно по этому, попытка сделать по «старинке» усложняет жизненный цикл событий.

Между «внешним миром» и EDA должны существовать API gateway, в которых request-response превращается в создание событий и ожидания нужных.

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)

Нужно ли мне создавать микросервисы, если я делаю все один?

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

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

нет, так не пойдет. Если ответ на запрос нужен, значит он нужен.

Если он не нужен, значит в принципе не существует понятия ответ, просто кто-то что-то когда-то пришлет.

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

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

нет, так не пойдет.

кому не пойдет?

Если ответ на запрос нужен, значит он нужен.

Но когда нужен нормальный ответ в разумное время

Вы видимо невнимательно читали часть про api-gateway А чем микросервис отличается от функции? (комментарий)

то вся эта ваша шина превращается в очень мешающую штуку.

Да и шина не моя, будьте любезны не приписывайте мне лишнего.

gagarin0
()

FaaS – прослойка к БД. Сервис – буквально служба.

Да это всё пошло от Ruby on Rails, или даже раньше. Когда тормозная башка выполняет элементарную работу перекладывая вообще всё что можно на службы.

Если смотреть на микросервисы, то это развитие этого подхода.

Только в роли тормозной башки теперь фронт. А всё остальное – службы. Варианты их взаимной организации.

thegoldone ★★
()

И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

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

Когда идёт запрос информации. И выдать её нужно здесь и сейчас. То брокер не нужен. Хотя и может использоваться как балансировщик. Раскидывающий запросы на N обработчиков.

thegoldone ★★
()

Нужно ли мне создавать микросервисы, если я делаю все один?

Микросервисы делят проект на домены или команды. И им обязательно нужна мощная инфра, Kubernetes как минимум и понимание как реализовать инфраструктурные паттерны. Если проект планируется для обучения, пожалуйста. Иначе не вывезешь.

Нужно в одной папочке все микросервисы хранить?

В микросервисах фундамент — не папочки, а автоматизированный деплоймент.

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

Разумеется. Желательно, чтобы это происходило бесшовно (старый сервис работает, новый выкатывается, трафик распределён).

И что еще получается нужен брокер сообщений или лучше на каждом МС поднимать свой http сервер(имхо так проще)?

sync API vs. async API. Разные вещи для разных задач.

kaldeon
()

Ерунда это всё, не слушай никого. Делай, как тебе удобнее.

Ничерта всё это модное не делает полезного. Обвешались Куберами/Кафками сугубо чтобы щёки раздувать и хвастаться перед друг другом. Всё это падает и ломается от любого чиха. Толком взаимодействовать между командами/сервисами не выходит легко и просто. Настройки ПГ запрятаны в какие-то жопы подов, что аж целый образ надо просить девопса пересобирать если хочется wal_level=logical или shared_buffers подкрутить, например.

Тьфу, эта ваша заливная рыба.

Toxo2 ★★★★
()