# Модуль 2: Микросервисная архитектура ## Навигация - [🏠 Главная страница курса](../../README.md) --- ## Описание модуля Этот модуль посвящен изучению микросервисной архитектуры - современного подхода к проектированию и разработке крупномасштабных распределенных систем. Студенты изучат принципы, паттерны и практики создания микросервисов, а также связанные технологии и инструменты. ## Содержание модуля ### 1. [Основы микросервисной архитектуры](sections/01-microservices-fundamentals.md) - Определение микросервисов - Принципы микросервисной архитектуры - Преимущества и недостатки - Когда использовать микросервисы ### 2. [Domain-Driven Design (DDD)](sections/02-domain-driven-design.md) - Стратегическое проектирование - Тактическое проектирование - Bounded Context и Context Map - Event Storming ### 3. [Коммуникация между сервисами](sections/03-service-communication.md) - Синхронная коммуникация (HTTP/REST, GraphQL) - Асинхронная коммуникация (Message Queues, Event Streaming) - Паттерны коммуникации - Service Discovery ### 4. [Управление данными в микросервисах](sections/04-data-management.md) - База данных на сервис - Saga Pattern - CQRS и Event Sourcing - Консистентность данных ### 5. [Serverless архитектура и FaaS](sections/05-serverless-architecture.md) - Основы Serverless - AWS Lambda, Azure Functions, Google Cloud Functions - Преимущества и недостатки - Паттерны использования ### 6. [Микрофронтенды](sections/06-microfrontends.md) - Принципы микрофронтендов - Архитектурные паттерны - Управление состоянием - Коммуникация между микрофронтендами ## Ключевые компетенции После изучения модуля студенты будут уметь: - Проектировать микросервисную архитектуру - Применять принципы DDD в микросервисах - Выбирать подходящие паттерны коммуникации - Управлять данными в распределенных системах - Использовать Serverless технологии - Создавать микрофронтенды ## Практические задания 1. **Проектирование микросервисов** - Разбить монолитное приложение на микросервисы - Определить границы сервисов - Спроектировать API 2. **Реализация коммуникации** - Создать REST API для синхронной коммуникации - Настроить асинхронную коммуникацию через очереди - Реализовать Service Discovery 3. **Управление данными** - Реализовать Saga Pattern - Настроить CQRS - Создать Event Store 4. **Serverless функции** - Создать AWS Lambda функции - Настроить триггеры - Реализовать обработку ошибок 5. **Микрофронтенды** - Создать базовую структуру микрофронтендов - Настроить коммуникацию между ними - Реализовать общее состояние ## Дополнительные ресурсы - [Microservices.io](https://microservices.io/) - паттерны микросервисов - [Domain-Driven Design Reference](https://www.domainlanguage.com/ddd/reference/) - справочник по DDD - [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) - SAM для AWS - [Single-SPA](https://single-spa.js.org/) - фреймворк для микрофронтендов ## Критерии оценки - Понимание принципов микросервисной архитектуры (25%) - Умение применять DDD (20%) - Навыки проектирования коммуникации (20%) - Знание паттернов управления данными (15%) - Опыт работы с Serverless (10%) - Понимание микрофронтендов (10%)