- 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
4.9 KiB
4.9 KiB
Модуль 2: Микросервисная архитектура
Навигация
Описание модуля
Этот модуль посвящен изучению микросервисной архитектуры - современного подхода к проектированию и разработке крупномасштабных распределенных систем. Студенты изучат принципы, паттерны и практики создания микросервисов, а также связанные технологии и инструменты.
Содержание модуля
1. Основы микросервисной архитектуры
- Определение микросервисов
- Принципы микросервисной архитектуры
- Преимущества и недостатки
- Когда использовать микросервисы
2. Domain-Driven Design (DDD)
- Стратегическое проектирование
- Тактическое проектирование
- Bounded Context и Context Map
- Event Storming
3. Коммуникация между сервисами
- Синхронная коммуникация (HTTP/REST, GraphQL)
- Асинхронная коммуникация (Message Queues, Event Streaming)
- Паттерны коммуникации
- Service Discovery
4. Управление данными в микросервисах
- База данных на сервис
- Saga Pattern
- CQRS и Event Sourcing
- Консистентность данных
5. Serverless архитектура и FaaS
- Основы Serverless
- AWS Lambda, Azure Functions, Google Cloud Functions
- Преимущества и недостатки
- Паттерны использования
6. Микрофронтенды
- Принципы микрофронтендов
- Архитектурные паттерны
- Управление состоянием
- Коммуникация между микрофронтендами
Ключевые компетенции
После изучения модуля студенты будут уметь:
- Проектировать микросервисную архитектуру
- Применять принципы DDD в микросервисах
- Выбирать подходящие паттерны коммуникации
- Управлять данными в распределенных системах
- Использовать Serverless технологии
- Создавать микрофронтенды
Практические задания
-
Проектирование микросервисов
- Разбить монолитное приложение на микросервисы
- Определить границы сервисов
- Спроектировать API
-
Реализация коммуникации
- Создать REST API для синхронной коммуникации
- Настроить асинхронную коммуникацию через очереди
- Реализовать Service Discovery
-
Управление данными
- Реализовать Saga Pattern
- Настроить CQRS
- Создать Event Store
-
Serverless функции
- Создать AWS Lambda функции
- Настроить триггеры
- Реализовать обработку ошибок
-
Микрофронтенды
- Создать базовую структуру микрофронтендов
- Настроить коммуникацию между ними
- Реализовать общее состояние
Дополнительные ресурсы
- Microservices.io - паттерны микросервисов
- Domain-Driven Design Reference - справочник по DDD
- AWS Serverless Application Model - SAM для AWS
- Single-SPA - фреймворк для микрофронтендов
Критерии оценки
- Понимание принципов микросервисной архитектуры (25%)
- Умение применять DDD (20%)
- Навыки проектирования коммуникации (20%)
- Знание паттернов управления данными (15%)
- Опыт работы с Serverless (10%)
- Понимание микрофронтендов (10%)