Микросервисы - Простым Языком на Понятном Примере

  Переглядів 19,696

Артём Шумейко

Артём Шумейко

День тому

Микросервисы на простом примере. Для тех кто не понимает, что это такое.
Разверните IT-инфраструктуру для веб-проектов любой сложности со скидкой 20%: slc.tl/vum0w
Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития разработчиков в телеграм канале - подписывайся: t.me/artemshumeiko
Заполните форму, если хотите курс по авторизации: forms.gle/krPVortjDERNRAgZ7
Погружение в Backend разработку за 3 месяца - научись писать API с нуля до вывода в продакшен на моем авторском курсе: clck.ru/3AHAXK (есть 3 бесплатных урока)
Прочитать отзывы к курсу можно на Stepik: clck.ru/3AHAZN
Python сообщество в телеграме (здесь тебе помогут с любым вопросом): t.me/python_community_rus
Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
0:00 - Микросервисы нужно знать!
0:36 - Пример монолита
3:41 - Проблемы монолита
6:24 - Пример микросервисов
11:04 - Плюсы и минусы микросервисов
16:56 - Мой опыт работы с микросервисами в компании
18:48 - Нужны ли микросервисы в пет-проектах и стартапах?
#микросервисы #шумейко

КОМЕНТАРІ: 95
@artemshumeiko
@artemshumeiko 9 днів тому
Пишу про свой стартап для подготовки к собеседованиям, рынок труда и способы развития разработчиков в телеграм канале - подписывайся: t.me/artemshumeiko Заполните форму, если хотите курс по авторизации: forms.gle/krPVortjDERNRAgZ7 Погружение в Backend разработку за 3 месяца - научись писать API с нуля до вывода в продакшен на моем авторском курсе: clck.ru/3AHAXK (есть 3 бесплатных урока) Прочитать отзывы к курсу можно на Stepik: clck.ru/3AHAZN
@Chel1k7
@Chel1k7 9 днів тому
Поработал я в компании, где был монолит + древний питон 2 (в 2024) это просто жесть:)
@user-qq2js4rb8c
@user-qq2js4rb8c 2 дні тому
Завершение рассказв очень напомнило мне урок географии в 1985 году, когда, не побоюсь этого слова, мастер разговорного жанра, неонила Семеновна, минут сорок рассказывала о преимкществах краснодарского чая перед индийским, и закончила свою леккцию слвами - «Лично мне он не нравится» Вот так и здесь - «использую ли я микросервисы в своем стартапе? - Конечно, нет!»
@ivan_adamovich
@ivan_adamovich 8 днів тому
как сказал один синьор знакомый: "научитесь пожалуйста делать нормальные монолиты, прежде чем прикасаться к микросервисам" Микросервисы, это то, что делают, если уже нельзя обойтись монолитом
@ZVA_NOOK
@ZVA_NOOK 7 днів тому
Прикол в том, что монолит, пилят на микромонолиты и, продают их как микросервисы.
@nbzp28
@nbzp28 8 днів тому
Просим реальный пример🤝 Поднять свой локальный кластер на кубере Написать пару сервисов + гейтвей Это будет топовый топ
@artemshumeiko
@artemshumeiko 4 дні тому
сделаю!
@ZheKaYT
@ZheKaYT 8 днів тому
Интересно узнать про общение микросервисов)
@ZVA_NOOK
@ZVA_NOOK 7 днів тому
Че там узнавать, брокер сообщений или база.
@rkpstam
@rkpstam 8 днів тому
По поводу дублирования, можно выносить общие части в отдельные пакеты, которые просто подключаются. Или в субмодули в гите. К микросервисам обычно идёт ещё логирование в одном месте, что может обеспечить kafka, rabbitmq.
@EStepan0v
@EStepan0v 8 днів тому
По сути монолит и микросервисы различаются тем, что монолите разные блоки лежат на одном сервере и общаются напрямую, а в микросервисах общаются через http. Но это не значит, что чтобы что-то изменить в монолите, надо изучить весь код. Если надо изменить что-то в авторизации, ты лезешь в авторизацию и разбираешься с ней. С таким же успехом можно сказать, что надо изучить все микросервисы, чтобы внести правку с один из них.
@frexil2210
@frexil2210 8 днів тому
Существует такое вещь как gRPC чтобы общаться между серверами)
@victorbrylew1775
@victorbrylew1775 8 днів тому
Микросервисы тоже могут деплоится на один сервер и работать рядом друг с другом особенно когда они маленькие и ненагруженные. Различие в том что микросервисы позволяют оптимизировать отдельно каждый сервис под конкретные бизнес требования. Допустим один сервис должен быстро что-то считать - добавляем ему CPU получше. Другой сервис у нас обрабатывает данные о пользователях - настраиваем там шифрование и дополнительную защиту чтобы ФИО и адреса хакеры не похакали. Третий сервис может обрабатывать много запросов но каждый запрос простой - добавляем памяти. Если бы был монолит то все такие оптимизации нужно было бы делать на одном сервисе а это дорого и неудобно т.к. способы оптимизации могут конфликтовать между собой.
@EStepan0v
@EStepan0v 8 днів тому
​@@frexil2210 gRPC тоже общается через http, только через http/2. Но речь не об этом, а о тезисе, что в монолит сложно вносить изменения, потому что его сначала надо весь изучить (весь код).
@user-qx8ol8dc9l
@user-qx8ol8dc9l 7 днів тому
Отчасти это правда. Изменения бизнес логики в одном месте программы могут привести к ошибкам в казалось бы не связанных модулях. Именно потому что всё переплетено. Поэтому изучать может потребоваться много.
@EStepan0v
@EStepan0v 7 днів тому
@@user-qx8ol8dc9l такое и в микросервисах может быть. В интерфейсе что-то поменяли и ищи свищи, где это аукнется )
@VaeV1ct1s
@VaeV1ct1s 8 днів тому
А почему ты решил, что память которую ест монолит равна суммарной памяти микросервисов? Монолит при прочих равных должен есть меньше
@ViacheslavFomenko
@ViacheslavFomenko 6 днів тому
Ждём реальный пример, спасибо за видео
@augustsionis6542
@augustsionis6542 2 дні тому
лайк, теперь ждем видео по распределенным транзакциям)
@Anklav24
@Anklav24 7 днів тому
Хотелось бы видео где будет рассказано масштабирование бд в микросервисах и как добиваться её консистентности
@salahytus
@salahytus 9 днів тому
Так жду этот выпуск
@qazaqbalasy916
@qazaqbalasy916 8 днів тому
Артем, в видео сказал, что не используешь микросервисы для своего стартапа в силу объективных причин, а какой монолит тогда используешь?
@artemshumeiko
@artemshumeiko 8 днів тому
всмысле какой? На FastAPI одно единое приложение
@vadimv1501
@vadimv1501 2 дні тому
Нужно техническое видео. Что такое микросервисы в общем много где сказано. Но новичку понятнее не становится. Как именно происходит связь? Общая ли у них бд? Если разные, то как он вообще синхранизирует информацию? Как организовывать кодовую базу и репозитории?
@artemshumeiko
@artemshumeiko 2 дні тому
такое видео будет!)
@KUBD996
@KUBD996 8 днів тому
Ожидаем реальные примеры)
@artemshumeiko
@artemshumeiko 8 днів тому
будут!
@xionnnn719
@xionnnn719 9 днів тому
ну такое. просто байт на микросервисы, хотя у микросервисов минусы более значительные и построить их нормально (хотя бы нормально) в разы тяжелее, чем построить монолит с чистой архитекторуй. джуну микросервисы не нужны - это бред, шиза
@andreyarefev445
@andreyarefev445 8 днів тому
Хайп. Сейчас только ленивый не пилит монолит на микросервисы))
@OYAnap
@OYAnap 5 годин тому
ох уж эти любители монореп. когда делаешь изменение в троке и сидишь минут 20 пока перебилдится что бы проверить.
@nevdupIenysh
@nevdupIenysh 7 днів тому
11:35 # душность mode on "манго" во всех падежах и числах пишется одинаково "маракуйя" в Р.П. мн.ч. будет - "маракуй" # душность mode off Спасибо за видео! Заставило задуматься над архитектурой своего проекта)
@igorratnik2357
@igorratnik2357 5 днів тому
В Django, все велосипеды уже реализованы. С аутентификацией , авторизацией и прочее.
@kir7765
@kir7765 9 днів тому
Приятная картина. Хорошее качество и освещение
@artemshumeiko
@artemshumeiko 9 днів тому
спасибо!
@kir7765
@kir7765 9 днів тому
Никогда не жалко приятных слов приятному человеку
@lovepeace6795
@lovepeace6795 5 днів тому
Но со звуком не очень, какие-то шумы Можно было бы прогнать звуковую дорожку через нейросеть
@YNV2011
@YNV2011 8 днів тому
Хорошее видео, но с нагрузкой напутано. Карточки товаров самое низконагруженная часть.
@ookhands3843
@ookhands3843 9 днів тому
Не хочу душнить, но придется))) на мапе сервисов показана аутентификация а написано авторизация.
@ZVA_NOOK
@ZVA_NOOK 7 днів тому
Дык, еще и про идентификацию можно добавить )
@user-ng6nx1uo5u
@user-ng6nx1uo5u 6 днів тому
Возник такой вопрос: насколько оправданным и реализуемым может быть проект, в котором есть база данных, админка от нее будет на Джанго, а API для обычных пользователей написано на FastAPI. Есть тут рациональное зерно в экономии на создании более-менее приличной админки, или проще все написать на 1 фреймворке?
@victorbrylew1775
@victorbrylew1775 5 днів тому
Чем меньше в проекте фреймворков тем легче найти разработчика который все напишет и сможет поддерживать. Поэтому Django с админкой + АПИ на DRF или FastAPI + fastapi-admin.
@user-ng6nx1uo5u
@user-ng6nx1uo5u 5 днів тому
@@victorbrylew1775 спасибо, надо познакомиться с fastapi-admin
@vladislove1337
@vladislove1337 9 днів тому
Годный контент
@artemshumeiko
@artemshumeiko 8 днів тому
Спасибо!
@user-zs3tk1gn2x
@user-zs3tk1gn2x 9 днів тому
Спасибо!
@JulfyHere
@JulfyHere 5 днів тому
8:27 ошибка монтажа? про один сервис рассказал два раза
@artemshumeiko
@artemshumeiko 4 дні тому
Спасибо, поправил
@user-wl4nl8wy9p
@user-wl4nl8wy9p 9 днів тому
Давно хотел об этом узнать спасибо!
@ookhands3843
@ookhands3843 9 днів тому
Общение между сервисами хттп - это верно... Очереди используются не для общения... И апи у брокеров тоже может быть через хттп...
@ivan_adamovich
@ivan_adamovich 8 днів тому
ток http2 + gRPC, а не обычный rest api :)
@bolotbekbatilov9929
@bolotbekbatilov9929 9 днів тому
спасибо
@nateriver8261
@nateriver8261 9 днів тому
Артем, а Вы не думали сделать на вашем сайте возможность выкладывать платные курсы (просто вариант образовательной платформы, хотя бы в формате видео). Сайт доступен не из рф без впн, что сильно упрощает жизнь)
@killerix_fx
@killerix_fx 9 днів тому
Спасибо за ролик, всë как всегда круто 😎
@techmisha
@techmisha 9 днів тому
Эмм... А как же персистентность данных, саги, ретраи и т.д.? Так то красиво всё, но если начать писать микросервисы судя по таким видео, то можно вообще не стартануть. До них нужно дорасти. Берите golang, rust и т.д., за глаза хватит без всяких микросервисов для старта и хорошей такой нагрузки. Если вы из этого вырастите, то я вас поздравляю, вы единорог и можете нанять индусов которые вам быстро и задёшево распилят монолит. Если крупная компания, да, микросервисы, в остальных случаях - монолит. Дёшево и сердито. Ну и нагрузку распределить на монолите можно не хуже чем в микросервисах.
@galandec2000
@galandec2000 8 днів тому
на Go монолит собрались пилить? вы серьезно или не подумав? вас гугел за такое в аду лично жарить будет..🤣
@nateriver8261
@nateriver8261 9 днів тому
Есть в планах записать видео по паттернам, которые используються в микросервисах по типу saga, transactional outbox, back for fronend, CQRS, api getaweay etc. Что Вы на практике используете
@Allsee77
@Allsee77 9 днів тому
Спасибо за видео, отличный разбор верхнеуровневый) Да, было бы круто увидеть какой-то подробный технический разбор того, как грамотно организовать микросервисную архитектуру на бэкенде, настроить общение сервисов через брокеры и т.п., чтобы можно было на каких-то простейших примерах пощупать это всё. Особенно в отношении работы с брокерами было бы полезно, они сейчас на любой вакансии джуновской нужны.
@artemshumeiko
@artemshumeiko 9 днів тому
будет!
@Allsee77
@Allsee77 9 днів тому
@@artemshumeikoэто прям супер)
@ilya1.079
@ilya1.079 9 днів тому
Стоит ли полностью переходить с Джанго на go?
@artemshumeiko
@artemshumeiko 9 днів тому
Если вы уже работаете мидлом или сеньором, то в свободное время я бы учил. Если ищете работу или работаете на стартовых позициях, я бы не распылялся и пытался добиться успеха в Джанго
@ilya1.079
@ilya1.079 3 дні тому
@@artemshumeiko спасибо большое за ответ
@amazingmmahighlights2304
@amazingmmahighlights2304 9 днів тому
Очень интересный выпуск, спасибо. У меня вот на работе микросервисная архитектура, но в единственном экземпляре. Т.е. масштабируемость не требуется. В целом удобно для разработки, т.к. можешь концентрироваться на отдельном микросервисе. Но про дебаг жиза - сложно порой разобраться. P.S. насчет изменений в авторизации и => изменениях во всех репозиториях - не согласен. Для таких ситуаций авторизация, например, должена быть вынесена как отдельный пакет) Тогда удобно обновить можно
@Ivan-Bagrintsev
@Ivan-Bagrintsev 8 днів тому
Отдельный пакет подойдёт, если язык один. В ролике был упор на то, что языки могут использоваться разные
@ZVA_NOOK
@ZVA_NOOK 7 днів тому
Руководство для РП-ника, как выжать деньги из заказчика...
@viormusic2076
@viormusic2076 2 дні тому
За Монолит
@qazaqbalasy916
@qazaqbalasy916 9 днів тому
Артем, какой микросервис быстрее, на Go или Fastapi?
@artemshumeiko
@artemshumeiko 9 днів тому
Go конечно, сам язык быстрее Питона
@marcoinsane149
@marcoinsane149 8 днів тому
твой вопрос звучит как "что быстрее фреймворк или язык", звучит довольно странно
@qazaqbalasy916
@qazaqbalasy916 8 днів тому
@@marcoinsane149 у тебя с пониманием прочитанного проблемы? Написано какой микросервис.
@qazaqbalasy916
@qazaqbalasy916 8 днів тому
@@AntiBandera да знаю я это, что за токсичный тип ))
@qazaqbalasy916
@qazaqbalasy916 8 днів тому
@@AntiBandera дебилок, не тебе писал
@galandec2000
@galandec2000 8 днів тому
новичку норм объяснение, сойдет.))) ну если совсем на тоненького, то сойдет. стоит подучить как масштабируются приложения на разных яп. а то получилось как будто у ИИ спросил и зачитал.😁
@dodibilder
@dodibilder 8 днів тому
Че за прикол делать видео мега тихим, даде с шумодавом по улице в наущниках идк, н***я не слышу
@100ksmurf-8
@100ksmurf-8 9 днів тому
Не в обиду автору, но ожидал чего-то большего, чем повторения ролика годовой давности. Очень поверхностно, почти никакие технологии не затронуты, про брокеры пару слов мельком, про логирование микросервисов ещё меньше сказал... Ну, такое... Можно было бы полностью разобрать весь технический стэк, с докером, кубером, консулом, брокерами (рэбит/кафка), логированием (кибана/графана) и показать на примере как всё это в коде реализовать. А так, получилась очень маленькая статья, которая есть в гугле по каждой ссылке и читается за 5 минут, только растянутая на 20 минут видео. P.S. Я не хейтер и посмотрел ВСЕ видео на твоём канале. Чистый конструктив. Слишком поверхностно получилось.
@artemshumeiko
@artemshumeiko 9 днів тому
Спасибо за отзыв! Видео и рассчитано на новичков) Поэтому оно и называется «простым языком». Видео с написанием кода микросервисов, перечислением стека и т.п. обязательно будет. Смешивать воедино фундамент и прикладное использование мне кажется плохой идеей, поэтому и не стал тут углубляться в детали реализации
@100ksmurf-8
@100ksmurf-8 9 днів тому
Ну это прям слишком "простым языком", просто каждая статья плюс-минус то же самое описывает, а вот практических примеров с парой микросервисов их оркестированием и логгирование -- вот этого мало.
@100ksmurf-8
@100ksmurf-8 9 днів тому
@@artemshumeiko Было бы здорово взять пример скажем с 3 микросервисами и показать как выстроить взаимодействие между ними. С пробрасыванием request_id сквозь всю цепочку микросервисов используемых в запросе пользователя для логирования, регистрацией в consul и т.д. Вот этого добра маловато в ютубе.
@100ksmurf-8
@100ksmurf-8 7 годин тому
@@artemshumeiko Привет. В один из видео ты говорил что записываешь видео на ютуб только по тем темам, которые плохо раскрыты на СНГ-ютубе. Если это действительно так - сделай хороший обзор на библиотеку FastStream. Недавно для себя её открыл - это нечто. Либа из коробки поддерживает 5 брокеров сообщений и имеет структуру как FastAPI, кучу интеграций, инструменты тестирования и CI. В общем, конфетка, но вот на СНГ-ютубе буквально 0 видео по ней. Тупо нечего посмотреть. Хорошая тема была бы, как раз в догонку по микросервисам.
@ookhands3843
@ookhands3843 9 днів тому
Дублирование кода - это не минус архитектуры микросервисов, а минус дизайна кода...
@Ivan-Bagrintsev
@Ivan-Bagrintsev 8 днів тому
И как его избежать, если у тебя действительно все сервисы на разных языках? Не делать сервисы на разных языках?)
@ookhands3843
@ookhands3843 8 днів тому
@@Ivan-Bagrintsev вынести общий код в компонент или даже в микросервис. Сорсы компонента можно хранить в отдельной ветке. Так сойдет?
@Ivan-Bagrintsev
@Ivan-Bagrintsev 8 днів тому
@@ookhands3843, если у тебя везде разные языки, один компонент не сильно поможет. Если у тебя все utils в одном микросервисе, то ты только что сломал отказоустойчивость всего проекта
@Ivan-Bagrintsev
@Ivan-Bagrintsev 8 днів тому
​@@ookhands3843 если у тебя всё на разных языках, один компонент тебе не сильно поможет. Если у тебя все utilities в одном микросервисе, поздравляю, ты сломал отказоустойчивость всего проекта
@Ivan-Bagrintsev
@Ivan-Bagrintsev 7 днів тому
Если у тебя сервисы на разных языках, общий компонент тебе не поможет. Если у тебя есть сервис со всеми утилитарными вещами, к которому обращаются все другие сервисы, у тебя нет отказоустойчивости
@slava_zxz
@slava_zxz 4 дні тому
да какой курс? я нищий, мне надо научиться сначала работать программистом, чтобы было чем оплачивать курсы
@gccode1076
@gccode1076 9 днів тому
Как говорится, чтобы понимать на какие куски делить, нужно сначала монолит запилить)) а где база в этой солянке? Все таки истина должна быть одна.
@KybaLioN66
@KybaLioN66 9 днів тому
ты втираешь мне какую то дичь 🤦‍♂🤦‍♂🤦‍♂🤦‍♂🤦‍♂ читаете: Building Microservices: Designing Fine-Grained Systems Designing Data-Intensive Applications
@artemshumeiko
@artemshumeiko 9 днів тому
конструктив будет?
@KybaLioN66
@KybaLioN66 8 днів тому
​@@artemshumeiko please find constructive in the books that I mentioned 😊
@gayratsaidakhmedov5451
@gayratsaidakhmedov5451 9 днів тому
спасибо
Разбираем основы Kafka и RabbitMQ
26:54
Digital train | Alex Babin
Переглядів 6 тис.
Про микросервисы за 8 минут
8:01
Merion Academy
Переглядів 104 тис.
Первый Алгоритм Для Изучения в 2024
8:13
Саша Лукин
Переглядів 39 тис.
Сайт на Python без знания HTML/CSS/JS - FastUI
22:51
Артём Шумейко
Переглядів 20 тис.