Files
sa-lessons/course_plan.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

14 KiB
Raw Blame History

План курса "Архитектор программного обеспечения"

Общая информация

  • Длительность: 6 месяцев
  • Нагрузка: 10-15 часов в неделю
  • Количество проектов: 11 практических проектов
  • Целевая аудитория: Разработчики с опытом, технические лидеры, начинающие архитекторы

Модуль 1: Основы архитектуры ПО (2 недели)

Компетенции:

  • Понимание принципов архитектуры ПО
  • Знание архитектурных стилей и паттернов
  • Умение анализировать требования и ограничения

Темы:

  1. Введение в архитектуру ПО

    • Определение архитектуры ПО
    • Роль архитектора в команде
    • Архитектурные стили (монолит, микросервисы, SOA)
    • Качественные атрибуты (производительность, масштабируемость, надежность)
  2. Принципы проектирования

    • SOLID принципы
    • DRY, KISS, YAGNI
    • Принципы модульности и слабой связанности
    • Закон Конвея

Практический проект:

Создание архитектурного обзора существующей системы с анализом качественных атрибутов.

Модуль 2: Микросервисная архитектура (3 недели)

Компетенции:

  • Проектирование микросервисных систем
  • Управление взаимодействием сервисов
  • Решение проблем распределенных систем

Темы:

  1. Основы микросервисов

    • Преимущества и недостатки микросервисов
    • Критерии декомпозиции системы
    • Паттерны коммуникации между сервисами
    • Управление данными в микросервисах
  2. Domain-Driven Design (DDD)

    • Стратегическое проектирование
    • Тактическое проектирование
    • Контекстные карты
    • Антипаттерны DDD
  3. Микрофронтенды

    • Архитектура фронтенда
    • Интеграция микросервисов и микрофронтендов
    • Управление состоянием

Практический проект:

Проектирование и реализация микросервисной системы с использованием DDD подходов.

Модуль 3: Контейнеризация и оркестрация (3 недели)

Компетенции:

  • Работа с Docker и контейнеризацией
  • Управление оркестрацией с Kubernetes
  • Infrastructure as Code

Темы:

  1. Docker и контейнеризация

    • Основы контейнеризации
    • Создание и оптимизация Docker образов
    • Docker Compose для локальной разработки
    • Лучшие практики контейнеризации
  2. Kubernetes

    • Основы оркестрации
    • Pods, Services, Deployments
    • ConfigMaps и Secrets
    • Ingress и Service Mesh
  3. Infrastructure as Code

    • Terraform основы
    • Управление инфраструктурой
    • CI/CD пайплайны
    • GitOps подходы

Практический проект:

Развертывание микросервисного приложения в Kubernetes с использованием Terraform.

Модуль 4: Масштабируемость и отказоустойчивость (3 недели)

Компетенции:

  • Проектирование масштабируемых систем
  • Обеспечение отказоустойчивости
  • Оптимизация производительности

Темы:

  1. Паттерны масштабируемости

    • Горизонтальное и вертикальное масштабирование
    • Load balancing
    • Caching стратегии
    • CDN и edge computing
  2. Отказоустойчивость

    • Circuit Breaker паттерн
    • Retry и timeout механизмы
    • Graceful degradation
    • Chaos Engineering
  3. Управление данными

    • Репликация и шардирование
    • CAP теорема
    • Event Sourcing и CQRS
    • Обработка данных в реальном времени

Практический проект:

Проектирование высоконагруженной системы с обеспечением отказоустойчивости.

Модуль 5: Мониторинг и наблюдаемость (2 недели)

Компетенции:

  • Настройка систем мониторинга
  • Анализ метрик и логов
  • Проактивное управление системой

Темы:

  1. Мониторинг и метрики

    • Prometheus и Grafana
    • Типы метрик (counter, gauge, histogram)
    • Алертинг и уведомления
    • SLI/SLO/SLA концепции
  2. Логирование и трейсинг

    • Централизованное логирование
    • Distributed tracing
    • OpenTelemetry
    • Анализ производительности
  3. Observability

    • Три столпа observability
    • Инструментирование приложений
    • Debugging в продакшене

Практический проект:

Настройка полного стека мониторинга для микросервисного приложения.

Модуль 6: Безопасность и соответствие требованиям (2 недели)

Компетенции:

  • Интеграция безопасности в архитектуру
  • Управление доступом и идентификацией
  • Соответствие стандартам безопасности

Темы:

  1. Архитектурная безопасность

    • Security by Design
    • Threat modeling
    • OWASP Top 10
    • Secure coding practices
  2. Управление доступом

    • IAM (Identity and Access Management)
    • OAuth 2.0 и OpenID Connect
    • RBAC и ABAC
    • Zero Trust архитектура
  3. Соответствие требованиям

    • GDPR, SOX, PCI DSS
    • Аудит и комплаенс
    • Data privacy и protection

Практический проект:

Проектирование безопасной архитектуры с учетом требований соответствия.

Модуль 7: Документирование архитектуры (2 недели)

Компетенции:

  • Создание архитектурной документации
  • Использование инструментов моделирования
  • Коммуникация архитектурных решений

Темы:

  1. C4 Model

    • Context, Container, Component, Code диаграммы
    • Архитектурные диаграммы
    • Документирование решений
  2. PlantUML и диаграммы

    • UML диаграммы
    • Sequence диаграммы
    • Deployment диаграммы
    • Архитектурные решения (ADR)
  3. Коммуникация

    • Презентация архитектуры стейкхолдерам
    • Техническое лидерство
    • Code review и архитектурные ревью

Практический проект:

Создание полной архитектурной документации с использованием C4 и PlantUML.

Модуль 8: Облачные технологии и миграция (3 недели)

Компетенции:

  • Работа с облачными платформами
  • Стратегии миграции в облако
  • Cloud-native архитектура

Темы:

  1. Облачные платформы

    • AWS, Azure, GCP обзор
    • Serverless архитектура
    • Managed services
    • Cost optimization
  2. Cloud-native паттерны

    • 12-factor app
    • Cloud-native архитектура
    • Event-driven архитектура
    • API Gateway и Service Mesh
  3. Миграция в облако

    • Стратегии миграции
    • Lift and shift vs. refactoring
    • Hybrid cloud архитектура
    • Disaster recovery

Практический проект:

Миграция монолитного приложения в облачную микросервисную архитектуру.

Модуль 9: Управление командой и процессы (2 недели)

Компетенции:

  • Техническое лидерство
  • Управление архитектурными процессами
  • Agile и DevOps практики

Темы:

  1. Техническое лидерство

    • Роль архитектора в команде
    • Принятие архитектурных решений
    • Техническое менторство
    • Управление техническим долгом
  2. Процессы разработки

    • Agile архитектура
    • Continuous Architecture
    • Architecture Decision Records (ADR)
    • Architecture governance
  3. DevOps и CI/CD

    • DevOps культура
    • Continuous Integration/Deployment
    • Blue-green и canary deployments
    • Feature flags

Практический проект:

Организация архитектурных процессов в команде разработки.

Модуль 10: Производительность и оптимизация (2 недели)

Компетенции:

  • Профилирование и оптимизация
  • Анализ производительности
  • Capacity planning

Темы:

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

    • Методы профилирования
    • Анализ узких мест
    • Performance testing
    • Load testing
  2. Оптимизация

    • Database optimization
    • Caching стратегии
    • CDN и edge optimization
    • Resource optimization
  3. Capacity Planning

    • Прогнозирование нагрузки
    • Scaling стратегии
    • Cost optimization
    • Resource management

Практический проект:

Оптимизация производительности высоконагруженной системы.

Модуль 11: Финальный проект (3 недели)

Компетенции:

  • Комплексное применение всех изученных навыков
  • Проектирование полной архитектуры
  • Презентация решения

Задача:

Проектирование и документирование архитектуры крупной распределенной системы с учетом всех изученных аспектов:

  • Микросервисная архитектура
  • Облачное развертывание
  • Мониторинг и безопасность
  • Масштабируемость и отказоустойчивость
  • Документирование архитектуры

Итоговые компетенции выпускника:

Технические компетенции:

  • Проектирование микросервисных архитектур
  • Работа с Docker и Kubernetes
  • Настройка мониторинга и observability
  • Обеспечение безопасности архитектуры
  • Документирование архитектурных решений
  • Оптимизация производительности систем

Soft Skills:

  • Техническое лидерство
  • Коммуникация с бизнесом
  • Управление архитектурными процессами
  • Принятие архитектурных решений
  • Менторство и развитие команды

Инструменты и технологии:

  • Docker, Kubernetes, Terraform
  • Prometheus, Grafana, ELK Stack
  • AWS/Azure/GCP
  • PlantUML, C4 Model
  • Git, CI/CD инструменты
  • Monitoring и logging инструменты

Формат обучения:

  • Онлайн лекции и вебинары
  • Практические лабораторные работы
  • Индивидуальные проекты
  • Peer review и code review
  • Менторство от практикующих архитекторов
  • Доступ к корпоративным кейсам

Оценка и сертификация:

  • Проектные работы (70%)
  • Теоретические тесты (20%)
  • Участие в обсуждениях и peer review (10%)
  • Итоговый сертификат при успешном завершении всех модулей