Robot
Складчик
- #1
[Stepik] C#: Создаём API для маркетплейса на микросервисах (Сергей Камянецкий)
- Ссылка на картинку

Курс предлагает комплексное обучение разработке микросервисов на .NET и C# с использованием современных технологий: CQRS, MediatR, gRPC, Marten, PostgreSQL, MySQL, Dapper, Entity Framework, Redis, RabbitMQ, MassTransit, Docker, Docker Compose, GitHub Actions, Serilog, ELK Stack, Prometheus, Grafana, k6 и Portainer.
Вы создадите микросервисы с продвинутой архитектурой, научитесь их тестировать, логировать и мониторить, а также организуете автоматическое управление инфраструктурой
Чему вы научитесь:
Старт:
Вы создадите микросервисы с продвинутой архитектурой, научитесь их тестировать, логировать и мониторить, а также организуете автоматическое управление инфраструктурой
Чему вы научитесь:
- Использовать 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,
- Применять лучшие паттерны проектирования и практики аудита для повышения надежности приложений.
- Этот курс — полное практическое пошаговое руководство по разработке микросервисов на .NET, охватывающее все этапы: от создания шаблона и архитектуры до настройки взаимодействия, логирования и мониторинга.
- Вы научитесь строить масштабируемые, отказоустойчивые системы с использованием современных технологий: CQRS, gRPC, RabbitMQ, Docker, Serilog, ELK, Prometheus и Grafana.
- Курс выделяется глубокой проработкой практических задач и интеграцией DevOps-процессов, таких как CI/CD и автоматизация. В процессе вы будете создавать и развивать реальные микросервисы, настраивать обмен сообщениями и кэширование, организовывать централизованное логирование и управлять контейнерами.
- Курс разделен на модули с последовательными заданиями, которые помогут закрепить знания и сформировать комплексные навыки для профессиональной работы с микросервисной архитектурой.
- Если вы не уверены в том, подходите вы для этого курса или нет - напишите мне
- Курс идеально подходит для backend-разработчиков и архитекторов, желающих освоить современные практики построения микросервисной архитектуры от начала до production-уровня.
- Курс предназначен для backend-разработчиков, архитекторов и инженеров DevOps, которые хотят освоить построение современных микросервисных решений на .NET. Он будет полезен тем, кто планирует разрабатывать распределённые системы с применением CI/CD, автоматизированной инфраструктуры, централизованного логирования, мониторинга и интеграций посредством gRPC и брокеров сообщений.
- Перед началом требуется уверенное понимание отличий чистой архитектуры от слоёной, осознанное представление о назначении минимального API, принципах REST и практике работы с Docker. Человек, собирающийся пройти курс, должен хорошо отличать и применять паттерны проектирования — такие как CQRS, Декоратор, Спецификация — и понимать их место в архитектуре современных сервисов.
- Курс будет особенно актуален:
- разработчикам, переходящим от монолита к микросервисам;
- специалистам, желающим внедрить лучшие практики аналитики, мониторинга и логирования в свои проекты;
- разработчикам, которые хотят с нуля познакомиться с поэтапным построением современных приложений
- Уверенное владение .NET и C#, знание принципов объектно-ориентированного программирования.
- Практический опыт работы с ASP.NET Core и REST API.
- Четкое понимание разницы между слоёной и чистой архитектурами, знание основных паттернов проектирования.
- Опыт использования Docker и контейнеризации приложений.
- Навыки работы с системами контроля версий (Git).
- Базовое понимание работы с реляционными базами данных и основ SQL.
- Способность работать с системой командной строки (CLI) и элементарно взаимодействовать с Linux-окружением приветствуется.
- Желательно: базовое представление о брокерах сообщений и принципах обмена сообщениями между сервисами.
- Старт
- Создание и публикация шаблона микросервиса
- Создание и настройка микросервиса каталога
- CQRS и MediatR в каталога
- Расширение и Production-ready
- Микросервис корзины: CQRS, кэширование и продакшн-подготовка
- Микросервис промоакций на gRPC: CQRS, Dapper, MySQL и продакшн
- Интеграция промосервиса и корзины
- Микросервис заказов
- Событийная интеграция с RabbitMQ: MassTransit
- Инфраструктура
Старт:
- Приветствие
- Описание проекта
- Дополнение
- Начало разработки
- Введение в создание шаблона микросервиса
- Создание структуры проекта с уточнением по файлу решения
- Настройка зависимостей
- Настройка Swagger для API документации
- DependencyInjection для API слоя
- DependencyInjection для остальных слоев
- Настройка global usings директив
- Создание GitHub Action workflow для автоматизации
- Публикация пакета шаблона
- Установка созданного шаблона
- Использование шаблона для создания проектов
- Публикация документации на GitHub Pages
- Инициализация проекта и создание первого микросервиса каталога
- Настройка портов для микросервиса каталога
- Создание сущностей BaseEntity, Brand, Category, CatalogItem
- Добавление репозитория IBrandRepository
- Добавление репозитория ICategoryRepository
- Добавление репозитория ICatalogItemRepository
- Обновление конфигурации подключения
- Настройка Docker Compose для БД и DBeaver
- Тестовые данные и интеграция библиотеки Marten с PostgreSQL
- Класс для инициализации и наполнения БД тестовыми данными
- Интеграция Marten и инициализация БД в DI контейнер
- Реализация CatalogRepository с методами работы через Marten
- Добавление пакета MediatR в проект
- Запрос, обработчик и ответ для получения списка брендов
- BrandsController для получения брендов через MediatR
- Регистрация MediatR и контроллеров в DI с MapControllers
- Поддержка лицензии MediatR с ключом из конфигурации
- Рефакторинг BrandsController на базовый ApiController
- Исправление возврата результата в BrandsController
- Версионирование API и обновление конфигурации Swagger
- CQRS: запрос для получения категорий с техническим заданием
- CQRS: запрос для получения товаров каталога
- CQRS: запрос для получения товара по ID
- CQRS: запрос для поиска товаров по названию
- CQRS: запрос для получения товаров по бренду
- Создание CatalogItem через CQRS с размышлениями о валидации
- CQRS: команда для обновления товара
- ТЗ CQRS: команда для удаления товара с техническим заданием
- Универсальная модель пагинации Pagination
- CQRS: запрос для получения товаров с пагинацией v2
- CatalogItemControllerV2 для v2 API с Swagger аннотациями
- Поддержка Swagger: документации и UI для v2 API
- Модель QueryArgs с поддержкой фильтрации, поиска и сортировки
- Рефакторинг для повышения производительности с техническим задан
- XML: документирование для Swagger и описание сортировки
- Конфигурация appsettings.json и Dockerfile
- Production docker - compose
- Weekly и беклог
- Создание проекта Common.Kernel с интеграцией MediatR
- Базовые интерфейсы CQRS: команд и запросов в Common.Kernel
- Создание микросервиса Basket.API с базовой структурой проекта
- Настройка basket_db для разработки и подключение NuGet—пакетов
- Базовая интеграция Carter, Marten, MediatR и Swagger
- Базовые модели ShoppingCart и ShoppingCartItem
- Реализация ICartRepository и CartRepository с настройкой Marten
- CQRS: команда для сохранения корзины с Mapster и Swagger
- CQRS: запрос для получения корзины
- Кастомный обработчик исключений
- Интеграция FluentValidation
- CQRS: команда для удаления корзины по accountName
- Интеграция Redis кэширования с декоратором и Scrutor
- Конфигурация подключений и Dockerfile для Basket.API
- Production docker — compose
- Weekly и беклог
- Создание микросервиса с базовой структурой проект
- Настройка gRPC reflection и интеграция с БД
- Рефакторинг Program.cs с DependencyInjection и global usings
- Интеграция MediatR для CQRS — паттерна с Common.Kernel
- Настройка MySQL базы данных с Dapper ORM
- Доменная модель Promo для промоакций
- Инфраструктура инициализации БД с тестовыми данными
- Полная инициализация БД с созданием таблицы и заполнением данных
- Замена GreeterService на PromoGrpcService с тестированием
- Реализация получения промоакций для gRPC сервиса
- Реализация создания промоакций для gRPC сервиса
- Полный CQRS: цикл для обновления промоакций с техническим задани
- Конфигурация Mapster для автоматического маппинга proto — моделе
- Полный CQRS: цикл для удаления промоакций + ТЗ ∙
- Dockerfile для контейнеризации Promotion gRPC сервиса ∙
- Production docker: compose для Promotion gRPC с MySQL ∙
- Интеграция gRPC клиента для получения промоакций в корзине ∙
- Dev-окружение: добавление Promotion gRPC сервиса с MySQL ∙
- Интеграция применения промоскидок ∙
- Рефакторинг SaveCartCommandHandler ∙
- Исправление обработки отсутствующих промоакций + ТЗ ∙
- Production конфигурация ∙
- Логика для инициализации БД ∙
- Weekly и беклог
- Создание микросервиса с базовой структурой и настройкой БД ∙
- Базовый класс BaseEntity с системой аудита ∙
- Создание доменной модели ∙
- Подключение Entity Framework Core с PostgreSQL ∙
- Настройка DbContext и конфиг маппинга ∙
- Создание тестовых данных и автоматическое заполнение БД ∙
- Автоматические миграции и seed при старте приложения ∙
- Первая миграция InitialCreate и загрузка тестовых данных ∙
- Реализация интерфейсов репозиториев с CQRS разделением ∙
- Базовый репозиторий BaseRepository с CRUD операциями ∙
- Рефакторинг Repository и реализация Repository ∙
- Автоматический аудит в DbContext с перехватом SaveChanges ∙
- Интеграция MediatR и Carter для API организации ∙
- Функционал получения заказов с Mapster маппингом и валидацией ∙
- Исправление ValidationBehavior для поддержки Query — запросов ∙
- Глобальный обработчик исключений и исправление валидации ∙
- Реализация команды создания заказа с DTO и валидацией ∙
- Функционал удаления заказа ∙
- Функционал обновления заказа с частичным обновлением ∙
- Контейнеризация микросервиса Checkout с Docker ∙
- Production docker — compose для Checkout.API с PostgreSQL ∙
- Настройка RabbitMQ в Dev-окружении
- Интеграция MassTransit.RabbitMQ
- Базовые классы событий для межсервисного взаимодействия
- Extension методы для конфигурации MassTransit с RabbitMQ
- Интеграция брокера сообщений и настройка маппинга
- Реализация функционала корзины и публикация событий ∙
- Обработка заказов через RabbitMQ ∙
- Docker инфраструктура для production окружения
- Weekly и беклог
- Построение инфраструктуры ∙
- Структурированное логирование HTTP — запросов ∙
- Централизованная настройка системы логирования ∙
- Конфигурирование Serilog от консоли до файлов ∙
- Логирование gRPC коммуникации ∙
- Централизованное логирование с ELK Stack ∙
- Production — ready ELK инфраструктура ∙
- Нагрузка с k6 ∙
- Мониторинг производительности Prometheus + Grafana ∙
- Библиотека метрик Common.Metrics ∙
- Библиотека метрик Common.Metrics ∙
- Дашборды Grafana для микросервисов ∙
- Управление контейнерами с Portainer ∙
- Финал
Показать больше
Зарегистрируйтесь
, чтобы посмотреть скрытый контент.