Чему вы научитесь
- Декомпозировать проект на сервисы
- Описывать архитектуру приложения
- Работать с монорепозиторием NX
- Реализовывать коммуникацию между микросервисами
- Создавать и обрабатывать доменные события
- Работать с RabbitMQ
- Писать микросервисы на NestJS
- Паттерну CQRS
- Реализовать бизнес логику в сервисе
- Асинхронной архитектуре
- Обеспечивать консистентность данных
- Реализовать паттерн Сага
- Тестировать микросервисовы
- Основным особенностям выкладки и эксплаутации
О курсе
Всё больше компаний обращает своё внимание на микросервисную архитектуру, так как она решает множество проблем монолитных приложений: непростое горизонтальное масштабирование, устаревающий стек, высокая связанность и запутанность кода, а так же медленные процессы сборки, тестирования и выкладки. За счёт атомарности, микросервисная архитектура призвана решить все эти проблемы, а так же повысить отказоустойчивость и упростить поддержку. Но для всего есть и обратная сторона. Микросервисная архитектура требует совершенно другого подхода в проектировании и реализации.
В курсы мы как раз посмотрим на все особенность построения микросервисной архитектуры. Мы разберём паттерны взаимодействия, декомпозиции, реализации команд и запросов, модели доменных событий и множество подводных камней, которые вы встретите при внедрении микросервисов. Курс был составлен исходя из моего реального опыта внедрения микросервисов в разных компаниях и тех трудностей, с которыми мне пришлось столкнуться. Несмотря на то, что в курсе мы будем писать код на TypeScript под Node.js, на фреймворке NestJS, он будет полезен и тем, кто пишет на других языках так как содержит много полезного теоретического материала. Мы изучим:
- Алгоритм декомпозиции проекта на сервисы
- Нотацию описания архитектуры приложения
- Работу с репозиторием NX
- Организацию коммуникации между микросервисами
- Доменные события - их обработку и генерацию
- Работу с шинами сообщения и в частности с RabbitMQ
- Написание Микросервисов на NestJS
- Реализацию паттерна CQRS
- Построение масштабируемой асинхронной архитектуры
- Обеспечение консистентности данных и паттерн Сага
- Особенностям тестирования микросервисов
- Паттерны реализации API
- Паттерны работы с базами данных
- Особенности выкладки и эксплуатации микросервисов
Лекции чётко разделены на теоретическую часть и live-code, где мы вместе будем писать код, создавая реальные backend для моей школы PurpleSchool. Благодаря этому разделению независимо от языка вы сможете получить полезные знания. В конце каждого модуля вас ожидает тест, который позволит укрепить ваши знания.
В результате курса вы получите знания и навыки для эффективного внедрения микросервисного подхода в вашем проекте или компании. Весь написанный в курсе код в реальности используется на production и все подходы справедливы для систем любой сложности. На практике я реализовывал архитектуру системы, которая состояла более чем из 70 микросервисов.
Для кого этот курс
Backend разработчикам на любом языке, которые хотят разобраться в микросервисной архитектуре и практикам её построения. Backend разработчикам на Node.js, которые не только хотят разобраться в паттернах и подходах, но и посмотреть на реальные практики реализации. Системным архитекторам для пополнения багажа знаний об асинхронных архитектурах.
Начальные требования
Чтобы получить максимум, рекомендуется знание Node.js. Для других языков полезным будет только часть курса.