Бесплатный курс · Open Source

System Design

Проектирование высоконагруженных систем — от основ архитектуры до распределённых систем и безопасности

💼 К собеседованию
System Design интервью в топовых российских и международных IT-компаниях
🏗️ Для роста
Углублённое изучение архитектуры высоконагруженных систем для Senior+ инженеров
46 уроков 7 модулей 7 тестов 5 кейсов

Знакомство с курсом

Узнайте о подходе к обучению и структуре курса

Программа курса

Структурированная программа от основ до продвинутых тем — с видео и 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