TeaCoder
КурсыОб основателеПодписка
ВойтиРегистрация
Микросервисы на практике - сервис продажи билетов

Микросервисы на практике - сервис продажи билетов

Полный практический курс по микросервисной архитектуре на реальном проекте - сервисе продажи билетов в кино.

О курсе

В этом большом курсе мы шаг за шагом перейдём от привычного монолитного backend-приложения к полноценной микросервисной архитектуре. Курс рассчитан на разработчиков, которые уже работали с NestJS и писали монолиты, но хотят понять микросервисы с нуля, без перегруженной теории. На протяжении курса мы создадим Full Stack сервис продажи билетов в кино, разберём, как правильно делить систему на микросервисы, как они общаются между собой, как их запускать, мониторить и объединять в единую инфраструктуру. Вы увидите реальные архитектурные решения, разные подходы к данным и взаимодействию сервисов, а также получите целостное понимание того, как такие системы выглядят в реальных проектах.

Уроки

  • 1

    Введение

    Знакомство с курсом и его целями. Обсуждаем, почему микросервисная архитектура востребована, и какие преимущества она даёт при разработке масштабируемых приложений.

  • 2

    Архитектура

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

  • 3

    Core-пакет

    Создаём общий Core-пакет для всех микросервисов. Настраиваем конфигурацию, публикуем пакет в NPM и автоматизируем процессы с помощью Github Actions.

  • 4

    Gateway

    Поднимаем первый микросервис - Gateway. Настраиваем структуру проекта, маршруты и базовую интеграцию с другими сервисами.

  • 5

    Gateway Auth

  • 6

    Auth сервис

    Настраиваем микросервис авторизации. Подготавливаем проект к работе с gRPC.

  • 7

    gRPC Введение

    Изучаем, что такое gRPC и Protocol Buffers. Рассматриваем их роль в микросервисной архитектуре.

  • 8

    Основы Proto

    Изучаем структуру сообщений, сервисов и правила проектирования контрактов для микросервисов.

  • 9

    Auth Proto

    Проектируем auth.proto для отправки OTP. Определяем методы, сообщения и их структуру.

  • 10

    Contracts и CI/CD

    Публикуем Proto-контракты в NPM. Настраиваем CI/CD, чтобы все изменения автоматически обновлялись и были доступны для сервисов.

  • 11

    gRPC Сервер

    Поднимаем gRPC-сервер в Auth-сервисе. Настраиваем его работу с внутренней логикой и подключаем обработку методов из Proto.

  • 12

    gRPC Клиент

    Реализуем gRPC-клиента для взаимодействия с Auth-сервисом. Изучаем базовые операции и обработку ответов сервера.

  • 13

    PostgreSQL

    Поднимаем PostgreSQL в Docker.

  • 14

    Prisma Схема

    Создаём Prisma-схему для Auth-сервиса. Настраиваем модели и связи.

  • 15

    Настройка Prisma

    Подключаем Prisma ORM к Nest.js.

  • 16

    Auth Repository

    Реализуем репозиторий Auth. Настраиваем базовую логику авторизации пользователей.

  • 17

    Подключение Redis

    Подключаем Redis к Auth-сервису. Настраиваем клиент, соединение и интеграцию с логикой OTP.

  • 18

    OTP коды

    Реализуем генерацию и проверку OTP.

  • 19

    Ошибки в gRPC

    Изучаем обработку ошибок в gRPC. Реализуем кастомные исключения и правильную передачу ошибок между клиентом и сервером.

  • 20

    Env Валидация

    Настраиваем кастомную валидацию переменных окружения.

  • 21

    Реестр Contracts

    Создаём единый реестр Proto-файлов для всех сервисов. Переводим gRPC-сервер в инфраструктурный модуль.

  • 22

    Токены Архитектура

    Проектируем архитектуру токенов.

  • 23

    Токены Реализация

    Реализуем генерацию и проверку токенов.

  • 24

    Passport

    Создаём динамический модуль Passport.

  • 25

    Passport Интеграция

    Подключаем @teacinema/passport к Auth-сервису и настраиваем использование токенов.

  • 26

    Cookies

    Настраиваем cookie-parser в Gateway. Реализуем хранение refresh токена в cookies.

  • 27

    Refresh Логика

    Разбираем логику обновления токенов (refresh).

  • 28

    Guards & Decorators

    Реализуем Guards и Decorators для защиты маршрутов. Настраиваем доступ только для авторизованных пользователей.

  • 29

    Аккаунт

    Настраиваем функционал управления аккаунтом. Реализуем изменение почты и номера телефона.

  • 30

    Telegram Auth

    Добавляем авторизацию через Telegram. Создаём бота и интегрируем с Auth-сервисом.

  • 31

    RabbitMQ

    Изучаем RabbitMQ и возможности обмена сообщениями между микросервисами. Поднимаем RabbitMQ в Docker и знакомимся с веб-интерфейсом.

  • 32

    Notification сервис

    Создаём Notification сервис. Настраиваем подписку на события и обработку сообщений из очередей.

  • 33

    Auth и Notification

    Настраиваем взаимодействие Auth и Notification через RMQ.

  • 34

    Email уведомления

    Реализуем отправку Email-уведомлений.

  • 35

    SMS уведомления

    Добавляем поддержку SMS-уведомлений. Настраиваем отправку через MTS Exolve.

  • 36

    Уведомления аккаунта

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

  • 37

    Users сервис

    Создаём Users сервис с gRPC. Настраиваем базу данных через TypeORM и реализуем хранение информации о пользователях.

  • 38

    gRPC Унификация

    Унифицируем gRPC-клиентов через GrpcModule. Обеспечиваем единый интерфейс для взаимодействия между сервисами.

  • 39

    Docker Полный запуск

    Запускаем всю микросервисную систему в Docker.

  • 40

    Введение в Observability

    Разбираемся, зачем нужна наблюдаемость в микросервисах. Изучаем сбор метрик, трассировку и централизованное логирование.

  • 41

    Prometheus

    Настраиваем сбор метрик с сервисов через Prometheus. Подключаем базовые и кастомные метрики для мониторинга состояния сервисов.

  • 42

    Grafana

    Визуализируем метрики в Grafana. Создаём первый дашборд и настраиваем отображение показателей работы микросервисов.

  • 43

    Distributed Tracing

    Настраиваем Distributed Tracing через Jaeger и отслеживаем запросы между сервисами.

  • 44

    Loki & Promtail

    Реализуем централизованное логирование с помощью Loki и Promtail. Настраиваем сбор, хранение и поиск логов сервисов.

  • 45

    Media сервис

    Интегрируем Media Service на Go. Настраиваем хранение и обработку медиа-файлов, включая смену аватаров пользователей. Репозиторий с готовым Media сервисом: https://github.com/TeaCoder52/teacinema-public

  • 46

    Movie сервис

    Создаём базовую структуру Movie-сервиса.

  • 47

    Drizzle ORM

    Подключаем Drizzle ORM к Movie-сервису. Настраиваем модели, связи и миграции для хранения информации о фильмах и категориях.

  • 48

    Seeder

    Реализуем Seeder для наполнения базы данных фильмами и категориями.

  • 49

    Movie Логика

    Настраиваем бизнес-логику Movie-сервиса.

  • 50

    Кэширование

    Добавляем кэширование данных для Movie-сервиса через Redis.

  • 51

    Введение в DDD

    Рассматриваем основные принципы Domain-Driven Design.

  • 52

    Theater сервис

    Создаём базовую структуру Theater-сервиса.

  • 53

    Theater Prisma

    Разрабатываем Prisma-схему для Theater-сервиса. Настраиваем модели, связи и работу с данными о залах и местах.

  • 54

    Theater Логика

    Реализуем бизнес-логику для кинотеатров, залов и мест. Настраиваем операции по созданию и управлению ресурсами.

  • 55

    Screening сервис

    Создаём Screening Service для управления сеансами.

  • 56

    Payment сервис

    Настраиваем Payment Service и подключаем Prisma для хранения информации о платежах.

  • 57

    Payment Логика

    Реализуем логику обработки платежей с помощью Юкассы.

  • 58

    Способы оплаты

    Сохраняем способы оплаты пользователей.

  • 59

    Возвраты

    Реализуем логику возвратов платежей.

  • 60

    Booking сервис

    Создаём Booking Service для бронирования билетов.

  • 61

    SQL миграции

    Реализуем ручные SQL-миграции и скрипт применения изменений.

  • 62

    Postgres.js

    Настраиваем Postgres.js в Nest.js приложении для работы с базой данных Booking Service.

  • 63

    Бронирование

    Реализуем полную логику бронирования билетов. Настраиваем создание, проверку доступности и резервирование мест для пользователей.

  • 64

    Тестирование

    Проводим полное тестирование процесса покупки билета. Проверяем интеграцию между сервисами и корректность всех бизнес-процессов.

  • 65

    Итоги курса

    Подводим итоги 35-часового курса.

Готовы начать обучение?

Отслеживайте прогресс, проходите уроки в удобном темпе и получайте максимум от курса

Начать просмотр

Дополнительно

Скачайте готовый код или смотрите курс на YouTube

Смотреть на YouTube

TeaCoder

Образовательная платформа по веб-разработке.
В случае возникновения вопросов, обращайтесь на почту support@teacoder.ru.

Общие ссылки

  • Курсы
  • Об основателе
  • Подписка

Документы

  • Пользовательское соглашение
  • Политика конфиденциальности

Соц. сети

YouTubeTelegramGitHub

TeaCoder © 2026 Все права защищены.