- Added comprehensive course structure with 11 modules - Included theoretical content, practical examples, and tasks - Multi-language code examples (Java, Rust, Node.js, Python) - Detailed analysis of architectural approaches and trade-offs - Complete caching strategies documentation - Architecture examples from real-world systems (Twitter, Netflix, Uber) - Structured navigation and learning path - Ready for educational use
103 lines
4.9 KiB
Markdown
103 lines
4.9 KiB
Markdown
# Модуль 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%)
|