Этот курс научит вас с нуля проектировать масштабируемые и отказоустойчивые системы. Пройдя этот курс вы сможете решать сложные технических задачи и станете востребованным специалистом для большинства крупных IT компаний. В Курсе раскроем секреты прохождения технических собеседований по System Design. Вы узнаете про формирование требований, расчет нагрузки и стоимости, выбор архитектуры, работу с разными типами БД, кэширование, шардирование, балансировку нагрузки, компромиссы, безопасность, мониторинг.
Чему вы научитесь:
- Формировать качественные требования к системе и оценивать их приоритеты.
- Рассчитывать нагрузку, пропускную способность и стоимость инфраструктуры.
- Проектировать архитектуру системы с учетом масштабируемости и отказоустойчивости.
- Разбираться в клиент-серверных моделях, монолитах и микросервисах.
- Выбирать подходящие базы данных (SQL, NoSQL, key-value, документные, колоночные).
- Работать с транзакциями, понимать CAP-теорему и принципы ACID.
- Проектировать модульные системы с использованием брокеров, API Gateway, оркестрации и хореографии.
- Оптимизировать производительность через кэширование, балансировку нагрузки и шардирование.
- Обеспечивать безопасность системы (proxy, firewall, rate limiting).
- Встраивать в вашу систему модули для мониторинга и внешние подсистемы.
- Готовиться к собеседованиям и уверенно отвечать на сложные вопросы по System Design.
- Разбирать реальные кейсы проектирования.
Для кого этот курс:
- Frontend/Backend/SW-разработчики, которые хотят перейти на уровень Senior/Architect.
- Специалисты по тестированию/QA, которые хотят повысить свой уровень в проектировании более эффективных тестов и выявлении узких мест в системе.
- Systems analyst (Системные аналитики) для повышения квалификации в рамках Анализа требований и проектирования решений.
- Solution Architects (Архитекторы решений) для закрепления базовых знаний, шаблонов и понятий.
- Tech Leads, которым нужно глубже разбираться в архитектуре.
- DevOps/SRE-инженеры, работающие с распределенными системами.
- Студенты и начинающие инженеры, которые хотят освоить System Design с нуля.
- Менеджеры (PO, PM) для понимания основ проектирования для вашего проекта.
- Все, кто готовится к собеседованиям в топовые IT-компании.
Программа курса
- Мир System Design
- System Design для всех
- Про курс
- Про собеседование
- System Design, IT-Система, Архитектура ПО
- Функциональные требования
- Нефункциональные требования
- Бизнес-ограничения
- Требования на собеседовании
- Требования: Бронирование отелей
- Нагрузка и стоимость
- Зачем нам нужен расчет нагрузки и стоимости?
- Считаем нагрузку и стоимость
- Чек-лист для собеседования
- Нагрузка и стоимость Маркетплейса
- Верхнеуровневый дизайн
- Зачем нужен верхнеуровневый дизайн?
- Клиент-серверная архитектура
- Подходы к архитектуре
- Верхнеуровневый дизайн: Бронирование отелей
- Базы данных
- Хранение данных
- Реляционные базы данных
- База данных типа Ключ-значение
- Колоночные базы данных
- Документарные базы данных
- Выбор БД на собеседовании
- Модульный дизайн
- Что такое Модульный дизайн?
- Брокеры сообщений
- API Gateway
- Модульный дизайн: Бронирование отелей
- Оптимизация
- Про нагрузку
- Балансировка
- Масштабирование БД
- Кэширование
- Дополнительные подсистемы
- Ограничение нагрузки
- Защита системы
- Мониторинг
- Внешние подсистемы
- Дополнительные подсистемы: Бронирование отелей
- Завершение курса







