Шаблоны проектирования для микросервисов

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 68

  • @enterprise7585
    @enterprise7585 2 дня назад +1

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

  • @abaitoguzbayev5736
    @abaitoguzbayev5736 Год назад +12

    02:04 Начало
    03:50 Введение в предм область
    05:56 Стратегии декомпозиции
    12:39 Межпроцессное взаимодействие
    18:10 Паттерны для надежности синхр взаимодействия
    27:54 Паттерны для надежности асинхр взаимодействия (Messaging)
    44:20 Запросы и CQRS
    50:48 API Composer vs CQRS
    53:18 API Gateway
    55:15 BFF
    55:55 Production-ready services (про надежность микросервисов)
    57:40 Работа с конфигами
    1:04:06 Итоги
    1:06:00 Вопросы

  • @nkochubashev
    @nkochubashev 9 месяцев назад +2

    Благодарю Александр, хороший доклад, теория с практическими примерами!

  • @nadzhafox
    @nadzhafox 12 дней назад +2

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

    • @ABarmin
      @ABarmin  4 дня назад

      Да, это частая ситуация с микросервисами - вроде в большом монолите все работало, но сложность выросла настолько, что решили разделить. И тут сложность выросла еще больше!

  • @pashapofactu3897
    @pashapofactu3897 2 месяца назад +1

    Благодарю за море полезной информации 🤝

    • @ABarmin
      @ABarmin  2 месяца назад

      Пожалуйста!

  • @derter2007
    @derter2007 11 месяцев назад +2

    Отличный и супер-полезный доклад, спасибо огромное

  • @yanaya7230
    @yanaya7230 Месяц назад

    С чего
    Требования:
    Функциональные - системные операции
    Не функциональные - качества
    Что должна делать система?
    Понять, какие внешние операции будут?
    Разделить приложение на отдельные сервисы.
    (2 стратегии)
    По бизнес функциям
    (Внутри больших б.ф ест функции меньше.)
    Взглянув на функцию управления курьерами, мы понимаем, что она большая.
    Одна функция свапится на о дельный серфис/приложения.
    Какие гаицы сервиса и агрегаты.
    1 прил - 1 бизнес функция.
    и по дизайну доменов
    Начинаем с пректирования ддд. Смотрим какие функции мапятся на большие функции.
    3. Определение операций между сервисами. (Между собой обмениватся ?)
    (Модель запросов и ответов request/response)
    Запрос - синхронно и ответ ассинхронно.
    Клиент отправил множество запросов
    Как понять к какому пришёл ответ?
    Идентификатор к вопросу и к ответу
    Ассинхронное взаимодействие.
    Если есть несколько клиентов и взаимодействие с ними ассинхронно.
    Publish subscribe
    У ассинхронного и синхронного взаимодействия...
    И клиент и сервер должны быть доступны.
    Если они не доступны - такой запрос не обработать.
    Каждая система отвечает ассинхронно.
    Надёжность:
    Как вызывать сервисы?
    Бизнес логика - порт. Прокси.
    Проблемы сильной связи.
    И через сервисный
    Удаленный вызов.
    Месседжинг
    Не надо из бизнес логики
    Корреляционный айди.
    И
    Приёмник сообщений.
    Архитектура с брокером или без?
    Корреляция - триггер и
    Брокер - прмежуточное хранилище.
    Записывать обработанные идентификаторы сообщений в промеждуточную таблицу
    Дублирующиеся сообщения.
    У каждого серфиса есть приежуточныц буфер, куда он сохр. Сообщения перед отправкой.
    Чем больше серфисов в обработке запроса - тем меньше надежность системы.
    Избавиться от асинхронного взаимодействия. И добавляем очередь
    У него есть промежуточные состояния и хранилища.
    Если система не требует синхронного ответа.
    Если требует.
    Нет ли каких-то данных, кот. Нужны этому серфису входному?
    Нет и таких у зависимых сервисов?
    Репликация данных (подход)
    Какие-то запросы этот сервис может синхронно обрабатывать.
    Нет единого верного решения. Мы смотрим на варианты. Что мы можем сделать?

  • @timurnav
    @timurnav Год назад +6

    Отличный доклад!

  • @bortwone
    @bortwone Год назад +5

    Большое спасибо за доклад

    • @ABarmin
      @ABarmin  Год назад

      Очеь рад, что понравилось!

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Моделировать - создавать образ, строить схему.

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    capacity, capability - возможность, способность

  • @Vladimir-pz5eo
    @Vladimir-pz5eo 6 месяцев назад +3

    Просто о сложном . Спасибо!

    • @ABarmin
      @ABarmin  6 месяцев назад

      Рад, что нравится!

  • @sssLAKIsss
    @sssLAKIsss Год назад +6

    Информативно, спасибо за доклад

    • @ABarmin
      @ABarmin  Год назад

      Очень рад, что понравилось

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Service это служба, обслуживание, предоставление услуг.

  • @davitkostandyan5103
    @davitkostandyan5103 Год назад +1

    Очень крутой докладб доходчиво и понятно, спасибо!!!

  • @ОльгаЕсенина-ч7т
    @ОльгаЕсенина-ч7т 6 месяцев назад +1

    Спасибо! Офигенно полезная информация!

    • @ABarmin
      @ABarmin  6 месяцев назад

      Спасибо!

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Domain Driven Design - предметно-ориентированное проектирование.

  • @АлександрЧепрасов-с4й

    лучшее что я нашел!

  • @alekseykirillov1212
    @alekseykirillov1212 Год назад +2

    Александр, спасибо огромное за доклад!) Очень круто, что получилось уместить такой большой объём информации в один час. Некоторые моменты пересматривал по несколько раз и делал заметки для дальнейшего изучения) Такие обзорные лекции очень помогают в изучении МСА. И подача в целом очень лайтовая, воспринимается очень хорошо)

  • @alekseyshibayev5243
    @alekseyshibayev5243 Год назад +1

    Очень круто, спасибо тебе.

    • @ABarmin
      @ABarmin  Год назад

      Очень рад, что нравится

    • @alekseyshibayev5243
      @alekseyshibayev5243 Год назад

      ​@@ABarminя так понимаю, ты реализуешь верхушку пирамиды Маслоу, общественное признание? Очень хорошо получается. Рекомендую всем айти корешам 😀

  • @БогданГуківський
    @БогданГуківський Год назад +23

    Главный паттерн микросервисной архитектуры - не использовать микросервисную архитектуру, если в ней нет настоящей необходимости.

    • @ABarmin
      @ABarmin  Год назад +1

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

    • @VoimiX2008
      @VoimiX2008 8 месяцев назад

      Что ж поделать
      Все люто дрочат сейчас на микросервисы
      Ну, ничего
      Скоро отпустит

    • @alexgavril385
      @alexgavril385 8 месяцев назад

      Нету никакой микросервисной архитектуры, не существует. Epam Chief executive UK... Позор бля

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Мапится - Map - отображается, сопоставляется, каптируется.

  • @Saycka
    @Saycka 25 дней назад

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

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    hierarchy - вертикаль, соподчинённость

  • @ВасяЖуйкин
    @ВасяЖуйкин 9 месяцев назад +1

    Главный Паттерн докладчика это чмокать в микрофон+_+. А так интересный материал и видео получилось.

    • @ABarmin
      @ABarmin  9 месяцев назад

      Ахахах! Это точно +1!

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Model - образец, схема, шаблон

  • @STRIKERinAOC
    @STRIKERinAOC Год назад +10

    Пересказ книги "Микросервисы" От Криса Ричардсона

    • @TheEegmen
      @TheEegmen 8 месяцев назад

      лучше мне кажется ничего не придумали пока)

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    Т.е разложение по предметам или возможностям.

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 9 месяцев назад +1

    Service discovery - обнаружение службы.

    • @dardev6471
      @dardev6471 8 дней назад

      зачем вы все это написали? вы же наверное на английском языке программируете и читаете документацию и статьи. К чему этот перевод?

    • @konstantinchvilyov9602
      @konstantinchvilyov9602 8 дней назад

      @@dardev6471 Чтобы точно понимать, что это значит.

  • @romanbush5164
    @romanbush5164 8 месяцев назад +1

    хотел узнать, что такое паттерн Service Template, прозвучал ли он в видео?

    • @ABarmin
      @ABarmin  7 месяцев назад +1

      Шаблон проекта, по которому создаются новые сервисы. Ближайший аналог - Maven Archetype, из которого можно сразу создать проект с нужной структурой пакетов, заранее добавленными зависимостями и, например, сконфигурированными метриками.

  • @RasimAlimgukov
    @RasimAlimgukov 2 месяца назад +1

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

    • @ABarmin
      @ABarmin  2 месяца назад

      Спасибо за замечания. Надеюсь, более новые видео более хорошего качества.

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 Год назад +2

    Спасибо. Полезная информация. Но часто сложно понять на каком языке вы говорите следующее слово и что оно значит.

  • @abaitoguzbayev5736
    @abaitoguzbayev5736 3 месяца назад +1

    37:30 Вопросы

  • @konstantinchvilyov9602
    @konstantinchvilyov9602 10 месяцев назад +1

    sub-domain - под-предмет, подобласть.

    • @vb7038
      @vb7038 2 месяца назад

      Самому не тошно от такого перевода?

    • @konstantinchvilyov9602
      @konstantinchvilyov9602 2 месяца назад

      @@vb7038 Нет. А что не нравится?

    • @vb7038
      @vb7038 Месяц назад

      @@konstantinchvilyov9602 С этимо корявыми переводами от каждого знатока мы получаем десяток кривых вариантов на каждое иностранное слово. По 5 названий на каждый английский термин. Что значительно усложняет поиск и сопоставление информации при изучении. Лучше уж использовать оригинальные англоязычные названия. It слишком быстро развивается чтобы успевать давать каждому новому термину общепринятый перевод. Да и развивается оно в первую очередь в англоязычной среде. Один перевод слова Model чего стоит. Образец - sample. Схема - scheme. Шаблон - template, pattern. Hierarchy - так сложно было перевести как иерархия? Заимстованные слова в языке есть и от них никуда не дется, а с текущими темпами развития технологий, только и остаётся что заимствовать и заимствовать. Transactional - Передаточный. Серьёзно? А слово транзакция куда делось? Это устоявшийся перевод и все знают что это значит. Даже в психологии транзакции есть. Тогда можно уже и дургие заимствованные словам переводить, например госпиталь - гостинная

  • @ODuoBatteries
    @ODuoBatteries 9 месяцев назад +5

    На каждый чих придумали отдельный паттерн. Столько само собой разумеющихся стратегий или коробочных решений, под которые выделили паттерны. Составил короткий список паттернов, которые спрашивают на собесах, и их оказалось порядка 100! Идиотизм. Причем незнание термина паттерна автоматически приравнивают к незнанию самого паттерна/решения. Несколько лет вообще кодил без знания о каких-то паттернах в МСА в 2017-2019гг. Впервые столкнулся с паттернами на очередном цикле собесов. С этим мракобесием надо бороться. Более того, такой подход как будто сразу ограничивает возможности разработчика - он думает только в рамках паттерна и не пытается твочрески подойти и поискать альтернативное решение.

    • @ABarmin
      @ABarmin  9 месяцев назад +1

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

    • @romanbush5164
      @romanbush5164 8 месяцев назад

      в коммерческой разработке сайтов нет места творчеству, особенно при работе по спринтам... к сожалению

    • @MichioSempai
      @MichioSempai 3 месяца назад +1

      Звучит странно. При постройке домов архитекторы используют готовый набор архитектурных решений. И странно слышать от строителя многоэтажки "архитекторы мешают мне творчески мыслить, вот я бы крышу совсем по другому прикрутил бы"

  • @rostislavk3230
    @rostislavk3230 Год назад +2

    жесть, че то слишком сложна

  • @a.d.4418
    @a.d.4418 Год назад +1

    Есть свист от микрофона в видео мешает слушать

    • @ABarmin
      @ABarmin  10 месяцев назад

      Спасибо, поменял микрофон и сейчас вроде бы получше.

  • @НикитаБ-л4д
    @НикитаБ-л4д 6 месяцев назад +1

    Комментарии про то, что спикер чавкает. Походу следующие комментарии будут про то, что он открывает рот....

    • @ABarmin
      @ABarmin  6 месяцев назад

      Да вообще!

  • @chaywithlemon
    @chaywithlemon 6 месяцев назад +1

    Много чавкает

    • @ABarmin
      @ABarmin  6 месяцев назад

      Ой, это, видимо, случайно так получается