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
This commit is contained in:
Alexander Abakumov committed 2025-09-09 22:08:07 +03:00
commit 15e744da49
107 files changed
+61762

No files matched your search

+102
View File
@@ -0,0 +1,102 @@
# Модуль 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%)