[PurpleSchool] Microservices - паттерны и практика построения микросервисов (Антон Ларичев)

Цена:
462
doneМного
doneЗаканчивается
highlight_offНет в наличии
notifications_none
Уведомить

[?IMG]?

Полный курс по микросервисной архитектуре и построению асинхронных систем на примере Node.js, Nest.js, RabbitMQ и Nx

Всё больше компаний обращает своё внимание на микросервисную архитектуру, так как она решает множество проблем монолитных приложений: непростое горизонтальное масштабирование, устаревающий стек, высокая связанность и запутанность кода, а так же медленные процессы сборки, тестирования и выкладки. За счёт атомарности, микросервисная архитектура призвана решить все эти проблемы, а так же повысить отказоустойчивость и упростить поддержку. Но для всего есть и обратная сторона. Микросервисная архитектура требует совершенно другого подхода в проектировании и реализации. В курсы мы как раз посмотрим на все особенность построения микросервисной архитектуры. Мы разберём паттерны взаимодействия, декомпозиции, реализации команд и запросов, модели доменных событий и множество подводных камней, которые вы встретите при внедрении микросервисов. Курс был составлен исходя из моего реального опыта внедрения микросервисов в разных компаниях и тех трудностей, с которыми мне пришлось столкнуться. Несмотря на то, что в курсе мы будем писать код на TypeScript под Node.js, на фреймворке NestJS, он будет полезен и тем, кто пишет на других языках так как содержит много полезного теоретического материала.

Вы научитесь
  • Декомпозировать проект на сервисы
  • Описывать архитектуру приложения
  • Работать с монорепозиторием NX
  • Реализовывать коммуникацию между микросервисами
  • Создавать и обрабатывать доменные события
  • Работать с RabbitMQ
  • Писать микросервисы на NestJS
  • Паттерну CQRS
  • Реализовать бизнес логику в сервисе
  • Асинхронной архитектуре
  • Обеспечивать консистентность данных
  • Реализовать паттерн Сага
  • Тестировать микросервисовы
  • Основным особенностям выкладки и эксплаутации
Требования

Минимальные требования для прохождения курса: Чтобы получить максимум, рекомендуется знание NodeJS. Для других языков полезным будет только часть курса.;

  1. Введение

    • Когда нужны микросервисы?
    • Как устроен курс?
    • Обзор проекта
    • Обзор курсов

  2. Настройка окружения

    • Подготовка окружения
    • Установка NodeJS
    • Настройки VSCode

  3. Нотация описания архитектуры

    • Вводное видео
    • Разбор компонент
    • Использование Figma
    • Пример описания

  4. Переход к микросервисам

    • Вводное видео
    • Монолит VS Микросервисы
    • Вопросы масштабирования
    • Декомпозиция функционала
    • Алгоритм декомпозиции
    • Упражнение - Схема после декомпозиции
    • Тест - Переход к микросервисам

  5. Монорепозитории

    • Вводное видео
    • Монорепозиторий или нет
    • Обзор NestJS
    • Код - Настраиваем nx monorepo
    • Код - Создаём модели
    • Код - Реализуем авторизацию
    • Код - Запускаем проект
    • Тест - Монорепозитории

  6. Обмен сообщениями

    • Вводное видео
    • Методы обмена
    • Простая коммуникация
    • Коммуникация через брокера
    • Минимизация синхронности
    • Упражнение - Доработка схемы взаимодействия
    • Тест - Обмен сообщениями

  7. RabbitMQ

    • Вводное видео
    • Устанавливаем RabbitMQ
    • Устройство RabbitMQ
    • Типы exchange
    • Администрирование RabbitMQ
    • Код - Простой обмен сообщении
    • Код - Реализация запрос / ответ
    • Тест - RabbitMQ

  8. Реализация взаимодействия

    • Вводное видео
    • Код - Добавление библиотеки контрактов
    • Код - Разбор nestjs-rmq
    • Код - Подключения rabbitmq к проекту
    • Код - Валидация запросов

  9. Реализация API

    • Вводное видео
    • Стратегии реализации API
    • Паттерны получения данных
    • Код - Авторизация на API
    • Код - Взаимодействие с account
    • Тест - Реализация API

  10. Реализация бизнес логики

    • Вводное видео
    • Бизнес логика и события
    • Доработка архитектуры Accounts
    • Код - Структурируем сервис Accounts
    • Упражнение - Реализуем Commands
    • Тест - Реализация бизнес логики

  11. Консистентность данных

    • Вводное видео
    • Саги - консистентность данных
    • Паттерн State
    • Код - Подготовка саги
    • Код - Состояния саги
    • Упражнение - Доработка состояний
    • Код - Реализация Commands
    • Код - Доменные события
    • Тест - Консистентность данных

  12. Тестирование микросервисов

    • Вводное видео
    • Виды тестирования
    • Код - Тесты авторизации
    • Код - Тесты для Саги
    • Упражнение - Проверка статуса платежа
    • Тест - Тестирование микросервисов

  13. Выкладка и эксплуатация

    • Базы данных
    • Периодические задачи
    • Логирование и метрики
    • Особенности выкладки
    • С чего начать переход
    • Тест - Выкладка и эксплуатация

  14. Заключение

    • Куда двигаться дальше?