Files
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
..

Модуль 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 технологии
  • Создавать микрофронтенды

Практические задания

  1. Проектирование микросервисов

    • Разбить монолитное приложение на микросервисы
    • Определить границы сервисов
    • Спроектировать API
  2. Реализация коммуникации

    • Создать REST API для синхронной коммуникации
    • Настроить асинхронную коммуникацию через очереди
    • Реализовать Service Discovery
  3. Управление данными

    • Реализовать Saga Pattern
    • Настроить CQRS
    • Создать Event Store
  4. Serverless функции

    • Создать AWS Lambda функции
    • Настроить триггеры
    • Реализовать обработку ошибок
  5. Микрофронтенды

    • Создать базовую структуру микрофронтендов
    • Настроить коммуникацию между ними
    • Реализовать общее состояние

Дополнительные ресурсы

Критерии оценки

  • Понимание принципов микросервисной архитектуры (25%)
  • Умение применять DDD (20%)
  • Навыки проектирования коммуникации (20%)
  • Знание паттернов управления данными (15%)
  • Опыт работы с Serverless (10%)
  • Понимание микрофронтендов (10%)