Получите доступ к полному курсу со скидкой
Добро пожаловать в комплексный курс по разработке микросервисов на .NET и C# с использованием передовых технологий и подходов современного бэкенд-разработчика.
Это публичный репозиторий курса, в рамках которое является детальным руководством по созданию микросервисов с чистой архитектурой и современными интеграциями. Вы научитесь:
- Использовать CQRS и MediatR для четкого разделения команд и запросов,
- Настраивать и использовать базы данных PostgreSQL и MySQL с Marten, Dapper ORM и Entity Framework,
- Версионировать и документировать API с помощью Swagger,
- Реализовывать высокопроизводительный синхронный gRPC и асинхронный обмен сообщениями через RabbitMQ и MassTransit,
- Внедрять Redis для кэширования и увеличения производительности,
- Автоматизировать CI/CD процессы с GitHub Actions, создавать шаблоны проектов,
- Строить централизованную систему логирования на базе Serilog и ELK Stack,
- Настраивать сбор и визуализацию метрик через Prometheus и Grafana,
- Проводить нагрузочное тестирование сервисов с k6,
- Управлять контейнеризированной инфраструктурой с помощью Docker и Portainer,
- Применять лучшие паттерны проектирования и практики аудита для повышения надежности приложений.
Курс идеально подходит для backend-разработчиков и архитекторов, желающих освоить современные практики построения микросервисной архитектуры от начала до production-уровня.
Модульно построенный учебный план охватывает все этапы разработки — от создания шаблона микросервиса, через построение каталогов и корзин, интеграцию промоакций, оформление заказов, до месседжинга, логирования, мониторинга и управления инфраструктурой.
- Модуль 1-2: Шаблон микросервиса, инфраструктура и DevOps автоматизация
- Модуль 3-5: Каталог микросервиса и продвинутые CQRS-паттерны
- Модуль 6-7: Корзина и Redis-кэширование
- Модуль 8-9: Микросервис промоакций с gRPC и MySQL
- Модуль 10-11: Интеграция микросервисов, взаимодействие и промо
- Модуль 12-13: Оформление заказов с EF Core и CQRS
- Модуль 14: Месседжинг, RabbitMQ и MassTransit
- Модуль 15: Логирование, мониторинг с ELK, Prometheus, Grafana и управление Docker-инфраструктурой
- Модуль 16 и дальше: возможно появятся новые модули
| Logo | Наименование образа | Краткое описание назначения |
|---|---|---|
| postgres | Официальный образ PostgreSQL, используется как СУБД для Rest-сервисов | |
| redis | In-memory хранилище данных и кэша | |
| mysql:8.0 | Официальный MySQL образ, используется как СУБД для gRPC-сервиса | |
| rabbitmq:3-management | Очередь сообщений RabbitMQ с UI менеджером, обеспечивает асинхронное взаимодействие сервисов | |
| elasticsearch:9.0.3 | Поисковый и аналитический движок, обеспечивает хранение и поиск для сервисов | |
| kibana:9.0.3 | Визуализация логов и данных из Elasticsearch, мониторинг состояния | |
| grafana/k6 | Инструмент для нагрузочного тестирования API сервисов | |
| prom/prometheus | Система мониторинга и сбора метрик приложений и сервисов | |
| grafana/grafana | Веб-интерфейс для визуализации и анализа метрик, интегрируется с Prometheus | |
| portainer/portainer-ce | Веб-интерфейс для управления Docker-контейнерами и кластерами |
- Полную архитектуру с реализацией шаблонного микросервиса,
- Готовые шаблоны для CQRS, MediatR, gRPC, RabbitMQ,
- Надежные практики логирования и мониторинга,
- Отработанные шаблоны интеграций и продвинутой обработки ошибок,
- Производительность и устойчивость сервисов на практике,
- Уникальный опыт создания рабочей инфраструктуры для микросервисов.
Последние разделы курса посвящены не только автоматизации и инфраструктуре, но и построению системы наблюдаемости микросервисов с помощью лучших инструментов — ELK Stack (стек для агрегации и визуализации логов), Prometheus и Grafana (для метрик и дашбордов), Portainer (интерфейс для управления Docker-инфраструктурой), а также интерактивной Swagger-документации.
Вы увидите, как:
- В одной системе собирать и анализировать структурированные логи в Kibana через ELK;
- Обеспечивать мониторинг промышленных метрик с Prometheus и строить наглядные графики в Grafana;
- Гибко управлять всеми контейнерами через Portainer;
- Предоставлять удобную, версионированную, интерактивную документацию API через Swagger UI.
Логи k6 на чтение скрипт можно посмотреть тут
Логи k6 на запись скрипт можно посмотреть тут
| Сервис | URL для доступа |
|---|---|
| catalog-api | http://localhost:7301/swagger/ |
| basket-api | http://localhost:7302/swagger/ |
| promotion-api | grpc://localhost:7313 |
| checkout-api | http://localhost:7304/swagger/ |
| portainer | https://localhost:9443 |
| grafana | http://localhost:3000 |
| prometheus | http://localhost:9090 |
| kibana | http://localhost:5601 |
| rabbitmq UI | http://localhost:15672 |











