Files
sa-lessons/modules/module2/README.md
Alexander Abakumov 15e744da49 Initial commit: Complete Software Architecture course with 11 modules
- 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
2025-09-09 22:08:07 +03:00

103 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Модуль 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%)