Микросервисы
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 01.05.23 16:04
Оценка:
Посоветуйте видеоурок какой, не хочется читать просто, хотя можно и книгу, но лучше статью. Хотелось бы что-то не слишком большое или с возможностью набирать код, тогда можно подольше видос. Про архитектуру и практически как реализовать на примере. Куча примеров на торрентах, но там на английском, что я на слух иногда плохо воспринимаю и так много всего что не знаю что лучше. Спасибо!
Re: Микросервисы
От: gyraboo  
Дата: 01.05.23 16:14
Оценка: :)
Здравствуйте, dsalodki, Вы писали:

D>Посоветуйте видеоурок какой


Чего там учить. Ты же знаешь, что такое монолит. Вот микросервисы — это те же монолиты, только они маленькие, их много, и они копошаться (читай — взаимодействуют), как пчёлы в улье, ну или как глисты в копре. Всё, урок окончен. Иди делай.
Отредактировано 01.05.2023 16:16 gyraboo . Предыдущая версия . Еще …
Отредактировано 01.05.2023 16:15 gyraboo . Предыдущая версия .
Отредактировано 01.05.2023 16:14 gyraboo . Предыдущая версия .
Re[2]: Микросервисы
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 01.05.23 17:29
Оценка:
G>Чего там учить. Ты же знаешь, что такое монолит. Вот микросервисы — это те же монолиты, только они маленькие, их много, и они копошаться (читай — взаимодействуют), как пчёлы в улье, ну или как глисты в копре. Всё, урок окончен. Иди делай.

Там вроде шина нужна, типа RabitMQ вот это я не знаю, паттерны какие-то есть
Re: Микросервисы
От: Sharov Россия  
Дата: 01.05.23 17:34
Оценка:
Здравствуйте, dsalodki, Вы писали:

D>Посоветуйте видеоурок какой, не хочется читать просто, хотя можно и книгу, но лучше статью. Хотелось бы что-то не слишком большое или с возможностью набирать код, тогда можно подольше видос. Про архитектуру и практически как реализовать на примере. Куча примеров на торрентах, но там на английском, что я на слух иногда плохо воспринимаю и так много всего что не знаю что лучше. Спасибо!


На ютбуе вбейте .net микросервисы + есть субтитры, т.е. автопереводчик английских каналов.
На степике есть курсы, но там вроде не .net (хотя и на .net может есть).
Кодом людям нужно помогать!
Re[3]: Микросервисы
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 01.05.23 18:00
Оценка:
Здравствуйте, dsalodki, Вы писали:

G>>Чего там учить. Ты же знаешь, что такое монолит. Вот микросервисы — это те же монолиты, только они маленькие, их много, и они копошаться (читай — взаимодействуют), как пчёлы в улье, ну или как глисты в копре. Всё, урок окончен. Иди делай.


D>Там вроде шина нужна, типа RabitMQ вот это я не знаю, паттерны какие-то есть


Кому нужна? Обычно всё по http работает, REST'ы там всякие, или gRPC ещё
Маньяк Робокряк колесит по городу
Re[3]: Микросервисы
От: gyraboo  
Дата: 01.05.23 18:17
Оценка: +1 :))) :)))
Здравствуйте, dsalodki, Вы писали:

G>>Чего там учить. Ты же знаешь, что такое монолит. Вот микросервисы — это те же монолиты, только они маленькие, их много, и они копошаться (читай — взаимодействуют), как пчёлы в улье, ну или как глисты в копре. Всё, урок окончен. Иди делай.


D>Там вроде шина нужна, типа RabitMQ вот это я не знаю, паттерны какие-то есть


Шина — это были сервисно-ориентированная архитектура, 20 лет назад. Сейчас же микросервисная, она распределённая, поэтому никаких серверных сессий, авторизация по токену, остальные паттерны сам додумай, в том же стиле. Т.е. если твоё решение не является распределённым, то оно не является микросервисным.
Хотя, сейчас уже есть и наносервисы, учи лучше сразу их. Хотя, пока выучишь, там уже придет квантовый компьютинг и ИИ со своими парадигмами, которые мы, стариков, уже не осилим своими слабенькими мозгами, нас вытеснят те, кто умеет прогать кубиты. Так что лучше сразу учи кубиты. Хотя там много матеши, пока всё освоить, уже приидет технологическая сингулярность и всех нас засосет в единый планетарный разум, тогда тебе вообще не нужно будет ничего учить, ты будешь знать всё, т.к. будешь частью улья. Но как часть улья, тебе не позволят расслабляться, бухать, гамать, путешествовать. Поэтому лучше займись этими вещами, пока есть такая возможность.
Re[2]: Микросервисы
От: vaa  
Дата: 02.05.23 00:02
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Здравствуйте, dsalodki, Вы писали:


D>>Посоветуйте видеоурок какой


G>Чего там учить. Ты же знаешь, что такое монолит. Вот микросервисы — это те же монолиты, только они маленькие, их много, и они копошаться (читай — взаимодействуют), как пчёлы в улье, ну или как глисты в копре. Всё, урок окончен. Иди делай.

не в монолите можно все изменения с базой в одной транзакции делать, а в микросервисах придется с этим жить.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Микросервисы
От: RushDevion Россия  
Дата: 02.05.23 07:14
Оценка: 7 (1)
Вот хороший законченный пример разработки приложения: https://www.youtube.com/watch?v=-AfZxdXa7yc
Можешь включить английские субтитры или поискать русский перевод.
Вот его репозиторий: https://github.com/EdwinVW/pitstop
Может просто посмотреть код.
Re: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 02.05.23 15:35
Оценка:
Здравствуйте, dsalodki, Вы писали:

.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед
и солнце б утром не вставало, когда бы не было меня
Re[2]: Микросервисы
От: m2user  
Дата: 03.05.23 04:09
Оценка: +1
S>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед

Как это применимо к микросервисы, которые, как правило, stateless?

Также в статье написано, что в отличие от .NET Remoting не нужно наследование от MarshalByRefObject. Как в этом случае реализована lifetime policy?
Re[3]: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.05.23 09:41
Оценка:
Здравствуйте, m2user, Вы писали:

S>>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед


M>Как это применимо к микросервисы, которые, как правило, stateless?


M>Также в статье написано, что в отличие от .NET Remoting не нужно наследование от MarshalByRefObject. Как в этом случае реализована lifetime policy?

Ну подправь свой протокол через TCP/IP с портами отличных от 80. Передавай свои токены, шифрованные данные итд. Это делается не на уровне объекта, а транспорта.
Кроме того сам сервис может запускаться в песочнице. Это уже мелочи
и солнце б утром не вставало, когда бы не было меня
Отредактировано 03.05.2023 10:13 Serginio1 . Предыдущая версия .
Re[2]: Микросервисы
От: RushDevion Россия  
Дата: 03.05.23 11:00
Оценка:
S>.Net Core, AppDomain, WCF, RPC маршалинг по Tcp/Ip свой велосипед

Это интересный академический пример.
Вот только для понимания принципов микросервисной архитектуры он будет полезен чуть более чем никак.

В том смысле, что в подавляющем большинстве случаев транспортом для взаимодействия между микросервисами будет что-то простое и стандартное (а, значит, поддерживаемое не только в .NET):
REST, WebSockets, JSON-RPC, GRPC, Thrift и т.п. — для синхронного request-response общения.
Либо JSON/Protobuf/Thrift/Avro и т.п. — для асинхронного общения через шину (RabbitMQ, ActiveMQ, Kafka и т.п.).
Это как раз тот самый микросервисный принцип dumb pipes, smart endpoints.
Никто по доброй воле не выберет для этого самописный stafefull протокол, заточенный под конкретную платформу.
Re[3]: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.05.23 11:09
Оценка:
Здравствуйте, RushDevion, Вы писали:

RD>Никто по доброй воле не выберет для этого самописный stafefull протокол, заточенный под конкретную платформу.

А почему ты решил, что под конкретную платформу?
Там под .Net Core. Что касается REST, WebSockets, JSON-RPC, GRPC, Thrift и т.п. — для синхронного request-response общения.
То это протоколы поверх TCp/Ip. Их также можешь применять, вместо Tcp/IP
Просто представлен универсальный маршалинг между двумя процессами. Только и всего. Суть микросервисов как раз в работе в разных процессах и обменом сообщений.
Только в моем случае это сделано более прозрачно, без всякого лишнего слоя. Только и всего.
То есть можно отладить реальный код в одном процессе и натравить этот же код на обмен между процессами.
и солнце б утром не вставало, когда бы не было меня
Re[4]: Микросервисы
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.05.23 11:13
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> Просто представлен универсальный маршалинг между двумя процессами. Только и всего. Суть микросервисов как раз в работе в разных процессах и обменом сообщений.

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

Ну, это не микросервисы. Это DCOM скорее
Маньяк Робокряк колесит по городу
Re[5]: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.05.23 11:27
Оценка:
Здравствуйте, Marty, Вы писали:

S>> Просто представлен универсальный маршалинг между двумя процессами. Только и всего. Суть микросервисов как раз в работе в разных процессах и обменом сообщений.

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

M>Ну, это не микросервисы. Это DCOM скорее

Ну суть то по сути одна. Разделяем приложение на несколько процессов. Причем процессы могут быть на разных компах.
DCOM это просто протокол обмена и маршализация данных.
Тот же gRPC мало чем отличается от DCOM
и солнце б утром не вставало, когда бы не было меня
Re[4]: Микросервисы
От: RushDevion Россия  
Дата: 03.05.23 11:45
Оценка:
S>А почему ты решил, что под конкретную платформу?
Ну вот у меня есть сервис на NodeJS, еще один на Rust и третий на Go.
И все они хотят общаться с твоим сервисом на .NET (Core) в который воткнули этот самописный маршалинг.
Как их подружить? Имхо, либо никак, либо нужно рожать поддержку такого же самописного маршалинга под каждую платформу.
Поэтому "под конкретную платформу".

S>Там под .Net Core. Что касается REST, WebSockets, JSON-RPC, GRPC, Thrift и т.п. — для синхронного request-response общения.

S>То это протоколы поверх TCp/Ip. Их также можешь применять, вместо Tcp/IP
Тут не понял. "Проколы поверх TCP/IP, применять вместо TCP/IP". Как это?
Но в любом случае мой посыл был в том, что это стандартные протоколы.
И если я, например, говорю, что мой микросервис предоставляет REST API поверх HTTP.
То таким API без проблем смогут воспользоваться и Rust, и NodeJS, и Go-разработчики в своих микросервисах.

S>Суть микросервисов как раз в работе в разных процессах и обменом сообщений.

Нет. Это подразумевается из соображений отказоустойчивости и масшатабируемости.
Но суть — в единоличном владении данными/процессами некоторой предметной области и предоставлении доступа к этому только через декларированное публичное API.

А углубляться в детали конкретных протоколов и тем паче, делать свою кастомную имплементацию протокола...
Ну это как если бы человек попросил рассказать в общих чертах про ООП, а ты ему начал объяснять, как работает ассемблер.
Отредактировано 03.05.2023 12:14 RushDevion . Предыдущая версия .
Re[5]: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.05.23 12:51
Оценка:
Здравствуйте, RushDevion, Вы писали:

S>>А почему ты решил, что под конкретную платформу?

RD>Ну вот у меня есть сервис на NodeJS, еще один на Rust и третий на Go.
RD>И все они хотят общаться с твоим сервисом на .NET (Core) в который воткнули этот самописный маршалинг.
RD>Как их подружить? Имхо, либо никак, либо нужно рожать поддержку такого же самописного маршалинга под каждую платформу.
RD>Поэтому "под конкретную платформу".
Да это для .Net. Но никто тебе не запрещает использовать зоопарк под разные платформы используя стандартное API.
А вот при использовании .Net как раз удобнее мой подход, так как проще отлаживать сначала библиотеки, а затем использую тот же код уже маршалинг.


S>>Там под .Net Core. Что касается REST, WebSockets, JSON-RPC, GRPC, Thrift и т.п. — для синхронного request-response общения.

S>>То это протоколы поверх TCp/Ip. Их также можешь применять, вместо Tcp/IP
RD>Тут не понял. "Проколы поверх TCP/IP, применять вместо TCP/IP". Как это?
RD>Но в любом случае мой посыл был в том, что это стандартные протоколы.
RD>И если я, например, говорю, что мой микросервис предоставляет REST API поверх HTTP.
RD>То таким API без проблем смогут воспользоваться и Rust, и NodeJS, и Go-разработчики в своих микросервисах.
Проблемы будут всегда, особенно при использовании зоопарков.

S>>Суть микросервисов как раз в работе в разных процессах и обменом сообщений.

RD>Нет. Это подразумевается из соображений отказоустойчивости и масшатабируемости.
RD>Но суть — в единоличном владении данными/процессами некоторой предметной области и предоставлении доступа к этому только через декларированное публичное API.
Это уже твое видение. Возьми мой RPC и сделай его публичным. Я кстати его использую в своих приложениях. Поэтому и советую.

RD>А углубляться в детали конкретных протоколов и тем паче, делать свою кастомную имплементацию протокола...

RD>Ну это как если бы человек попросил рассказать в общих чертах про ООП, а ты ему начал объяснять, как работает ассемблер.
На самом деле это чертовски интересно для познавания. Как это работает.
Как раз эта статья и показывает механизм работы стандартных API
и солнце б утром не вставало, когда бы не было меня
Re[6]: Микросервисы
От: RushDevion Россия  
Дата: 03.05.23 13:36
Оценка:
RD>>Поэтому "под конкретную платформу".
S>Да это для .Net. Но никто тебе не запрещает использовать зоопарк под разные платформы используя стандартное API.
Вот так легко и непринужденно мы только что отказались от одной из главных фишек микросервисного подхода — возможности разработки на разных ЯП

S>А вот при использовании .Net как раз удобнее мой подход, так как проще отлаживать сначала библиотеки, а затем использую тот же код уже маршалинг.

И даже на .NET большинству моих знакомых все же удобнее использовать проверенные вещи: .NET Remoting, WCF/WCF Core, REST + Swagger, GRPC с автогенерацией как клиентской, так и серверной частей. А не заниматься "отладкой маршалинга" в самописной имплементации.

RD>>То таким API без проблем смогут воспользоваться и Rust, и NodeJS, и Go-разработчики в своих микросервисах.

S> Проблемы будут всегда, особенно при использовании зоопарков.
Да, но со стандартными протоколами и отлаженными имплементациями под конкретную платформу проблем будет в разы меньше, чем с самописной либой.

S>>>Суть микросервисов как раз в работе в разных процессах и обменом сообщений.

RD>>Нет. Это подразумевается из соображений отказоустойчивости и масшатабируемости.
RD>>Но суть — в единоличном владении данными/процессами некоторой предметной области и предоставлении доступа к этому только через декларированное публичное API.
S> А это уже твое видение. Возьми мой RPC и сделай его публичным. Я кстати его использую в своих приложениях. Поэтому и советую.

Это не мое видение. Это то, как микросервисный подход возник в Амазоне. Погугли историю перехода Амазона на микросервисы.
Мне твой RPC, при всем уважении, не нужен совершенно
У меня на одном проекте 12-летней давности свой похожий был. Только им за пределами того проекта никто пользоваться не захотел.

RD>>А углубляться в детали конкретных протоколов и тем паче, делать свою кастомную имплементацию протокола...

RD>>Ну это как если бы человек попросил рассказать в общих чертах про ООП, а ты ему начал объяснять, как работает ассемблер.
S> На самом деле это чертовски интересно для познавания. Как это работает.
S>Как раз эта статья и показывает механизм работы стандартных API

Безусловно, это интересно. Но бесполезно (а скорее, даже вредно) для человека, который только-только начал разбираться с микросервисами.
Re[7]: Микросервисы
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 03.05.23 14:04
Оценка:
Здравствуйте, RushDevion, Вы писали:


RD>У меня на одном проекте 12-летней давности свой похожий был. Только им за пределами того проекта никто пользоваться не захотел.

Это понятно. Лучше пользоваться монструозными библиотеками на все случаи жизни.


S>>Как раз эта статья и показывает механизм работы стандартных API


RD>Безусловно, это интересно. Но бесполезно (а скорее, даже вредно) для человека, который только-только начал разбираться с микросервисами.

Еще раз микросервисы это отдельные процессы. Нужны они были прежде всего для разделения процессов программирования по командам.
Есть как много плюсов, так и минусов.
Но по жизни нужно обмениваться не только с микросервисами. Та же отладка использует Tcp/ip итд.
и солнце б утром не вставало, когда бы не было меня
Re[6]: Микросервисы
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 03.05.23 14:32
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

M>>Ну, это не микросервисы. Это DCOM скорее

S> Ну суть то по сути одна. Разделяем приложение на несколько процессов. Причем процессы могут быть на разных компах.
S>DCOM это просто протокол обмена и маршализация данных.
S>Тот же gRPC мало чем отличается от DCOM

Нет. Микросервисы — они стейтлес, ну, или стейт им передаётся каждый раз в параметрах. DCOM/COM+ объекты живут долго в чужом процессе, как и у тебя
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.