Повний курс з мікросервісної архітектури та побудови асинхронних систем на прикладі Node.js, Nest.js, RabbitMQ та Nx
Все більше компаній звертає свою увагу на мікросервісну архітектуру, так як вона вирішує безліч проблем монолітних додатків: непросте горизонтальне масштабування, стек, що застаріває, висока зв'язаність і заплутаність коду, а так само повільні процеси складання, тестування і викладки. За рахунок атомарності, мікросервісна Архітектура покликана вирішити всі ці проблеми, а так само підвищити відмовостійкість і спростити підтримку. Але для всього є і зворотна сторона. Архітектура мікросервісу вимагає зовсім іншого підходу в проектуванні та реалізації. У курси ми якраз подивимося на все особливість побудови мікросервісної архітектури. Ми розберемо моделі взаємодії, декомпозиції, реалізації команд і запитів, моделі доменних подій і безліч підводних каменів, які ви зустрінете при впровадженні мікросервісів. Курс був складений з мого реального досвіду впровадження мікросервісів у різних компаніях та труднощів, з якими мені довелося зіткнутися. Незважаючи на те, що в курсі ми будемо писати код на TypeScript під Node.js, на фреймворку NestJS, він буде корисний і тим, хто пише на інших мовах так як містить багато корисного теоретичного матеріалу.
ви навчитеся
Мінімальні вимоги для проходження курсу: щоб отримати максимум, рекомендується знання NodeJS. Для інших мов корисним буде тільки частина курсу.;
Все більше компаній звертає свою увагу на мікросервісну архітектуру, так як вона вирішує безліч проблем монолітних додатків: непросте горизонтальне масштабування, стек, що застаріває, висока зв'язаність і заплутаність коду, а так само повільні процеси складання, тестування і викладки. За рахунок атомарності, мікросервісна Архітектура покликана вирішити всі ці проблеми, а так само підвищити відмовостійкість і спростити підтримку. Але для всього є і зворотна сторона. Архітектура мікросервісу вимагає зовсім іншого підходу в проектуванні та реалізації. У курси ми якраз подивимося на все особливість побудови мікросервісної архітектури. Ми розберемо моделі взаємодії, декомпозиції, реалізації команд і запитів, моделі доменних подій і безліч підводних каменів, які ви зустрінете при впровадженні мікросервісів. Курс був складений з мого реального досвіду впровадження мікросервісів у різних компаніях та труднощів, з якими мені довелося зіткнутися. Незважаючи на те, що в курсі ми будемо писати код на TypeScript під Node.js, на фреймворку NestJS, він буде корисний і тим, хто пише на інших мовах так як містить багато корисного теоретичного матеріалу.
ви навчитеся
- Декомпозувати проект на сервіси
- описувати архітектуру програми
- працювати з монорепозиторієм NX
- реалізовувати комунікацію між мікросервісами
- створювати та обробляти доменні події
- працювати з RabbitMQ
- писати мікросервіси на NestJS
- патерну CQRS
- реалізувати бізнес логіку в сервісі
- асинхронної архітектурі
- забезпечувати консистентність даних
- реалізувати патерн Сага
- тестувати мікросервіси
- основним особливостям викладки та експлаутації
Мінімальні вимоги для проходження курсу: щоб отримати максимум, рекомендується знання NodeJS. Для інших мов корисним буде тільки частина курсу.;
- введення
- коли потрібні мікросервіси?
- Як влаштований курс?
- огляд проекту
- огляд курсів
- Налаштування оточення
- Підготовка оточення
- встановлення NodeJS
- Налаштування VSCode
- позначення опису архітектури
- вступне відео
- розбір компонент
- Використання Figma
- приклад опису
- перехід до мікросервісів
- вступне відео
- Моноліт VS Мікросервіси
- питання масштабування
- декомпозиція функціоналу
- Алгоритм декомпозиції
- вправа-Схема після декомпозиції
- тест-перехід до мікросервісів
- Монорепозиторії
- вступне відео
- Монорепозиторій чи ні
- огляд NestJS
- Код - налаштовуємо NX monorepo
- Код - створюємо моделі
- Код - реалізуємо авторизацію
- Код - запускаємо проект
- Тест-Монорепозиторії
- обмін повідомленнями
- вступне відео
- методи обміну
- проста комунікація
- комунікація через брокера
- мінімізація синхронності
- вправа-доопрацювання схеми взаємодії
- Тест-обмін повідомленнями
- RabbitMQ
- вступне відео
- встановлюємо RabbitMQ
- пристрій RabbitMQ
- типи exchange
- адміністрування RabbitMQ
- Код-простий обмін повідомленні
- код-реалізація запит/відповідь
- Тест - RabbitMQ
- реалізація взаємодії
- вступне відео
- Код-додавання бібліотеки контрактів
- код-розбір nestjs-rmq
- код-підключення rabbitmq до проекту
- Код-валідація запитів
- реалізація API
- вступне відео
- стратегії реалізації API
- патерни отримання даних
- код-авторизація на API
- код-взаємодія з account
- Тест-реалізація API
- реалізація бізнес логіки
- вступне відео
- бізнес логіка і події
- доопрацювання архітектури Accounts
- Код-структуруємо сервіс Accounts
- вправа-реалізуємо Commands
- Тест-реалізація бізнес логіки
- Консистентність даних
- вступне відео
- Саги-консистентність даних
- патерн State
- Код-Підготовка саги
- Код-стану саги
- вправа-доопрацювання станів
- код-реалізація Commands
- Код - доменні події
- Тест-Консистентність даних
- тестування мікросервісів
- вступне відео
- види тестування
- код-тести авторизації
- код-тести для Саги
- вправа-Перевірка статусу платежу
- тест-тестування мікросервісів
- викладка та експлуатація
- бази даних
- періодичні задачі
- логування та метрики
- особливості викладки
- З чого почати перехід
- Тест-викладка та експлуатація
- висновок
- куди рухатися далі?
https://privatelink.de/?https://purpleschool.ru/course/microservices