Бесплатный курс · Open Source
System Design
Проектирование высоконагруженных систем — от основ архитектуры до распределённых систем и безопасности
Знакомство с курсом
Узнайте о подходе к обучению и структуре курса
Программа курса
Структурированная программа от основ до продвинутых тем — с видео и PDF-материалами
Фундаментальные концепции архитектуры ПО: декомпозиция систем, атрибуты качества, модели коммуникации и управление изменениями.
- 1.Архитектура и системное проектирование
- 2.Архитектурные представления
- 3.Границы декомпозиции
- 4.Компромиссы в архитектуре программного обеспечения
- 5.Эволюция и управление изменениями в системной архитектуре
- 6.Инжиниринг требований
- 7.Атрибуты качества и ограничения
- 8.Модели коммуникации
DDD, микросервисы, модульные монолиты, событийно-ориентированная и реактивная архитектура, serverless и multi-tenancy.
- 1.Доменно-ориентированное проектирование
- 2.Современные архитектурные стили
- 3.Модульные монолиты
- 4.От монолитных систем к микросервисам
- 5.Событийно-ориентированная архитектура
- 6.Реактивная архитектура
- 7.Архитектура serverless вычислений
- 8.Архитектура Multi-Tenancy
Протоколы TCP/IP, модель OSI, сетевые компоненты для распределённых систем и service mesh.
- 1.Протоколы и модель OSI
- 2.Сетевые компоненты для распределенных систем
- 3.Service Mesh
Теоремы и паттерны распределённых систем: шардинг, репликация, CAP/PACELC, консенсус, Kubernetes и облачные инфраструктуры.
- 1.Обзор распределенных систем
- 2.Шардинг и репликация
- 3.CAP и PACELC
- 4.Масштабируемость баз данных и модели данных
- 5.Распределенный консенсус
- 6.Иерархия ресурсов AWS
- 7.Архитектура данных и ETL для облачных SaaS
- 8.Архитектура Kubernetes: основы
- 9.Иерархия ресурсов Kubernetes
- 10.Сети Kubernetes
Выбор баз данных, транзакционные гарантии, очереди сообщений, потоковая обработка данных и Kafka.
- 1.Масштабируемость баз данных: критерии выбора
- 2.ACID vs BASE
- 3.Уровни изоляции транзакций
- 4.Распределенные системы поиска
- 5.От очередей сообщений к глобальным потокам
- 6.Семантика "точно один раз"
- 7.Обработка больших данных
- 8.Kafka Deep Dive
Паттерны надёжности: circuit breaker, bulkhead, rate limiting, outbox, observability и FinOps.
- 1.Избыточность в распределенных системах
- 2.Rate Limiting
- 3.Паттерн Circuit Breaker
- 4.Паттерн Bulkhead
- 5.Паттерн Transactional Outbox
- 6.FinOps в System Design
- 7.Observability и SRE
Аутентификация, авторизация, защита данных в покое и при передаче.
- 1.Аутентификация, авторизация и безопасность
- 2.Защита данных в состоянии покоя и при передаче
- ▶🔥 Подход к решению задач
- ▶Проектирование Airbnb
- ▶Проектирование мессенджера
- ▶Сервис уведомлений
- ▶Сокращатель URL