# План курса "Архитектор программного обеспечения" ## Общая информация - **Длительность**: 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%) - Итоговый сертификат при успешном завершении всех модулей