System Design [Тариф База] [Владимир Невзоров, Михаил Масягин]
Твоя база для создания высоконагруженных отказоустойчивых систем
1 Проработка прохождения интервью
2 Архитектурная база
3 «В очередь, пожалуйста»
4 СУБД с точки зрения System Design Интервью
5 Distributed Data Storage
6 Практика 1
7 Практика 2
8 Архитектурная ката
Тариф База
Твоя база для создания высоконагруженных отказоустойчивых систем
- Научишься проходить System Design интервью в Big Tech
- Разработаешь систему в конце курса и прикрепишь к себе в портфолио
- Изучишь архитектурные паттерны, запустишь реальные проекты
- Поймешь популярные кейсы с партиционированием, шардированием, микросервисной архитектурой
- Спроектируешь популярные сервисы
- Овладеешь фреймворком с чёткой структурой для создания масштабируемых систем
- Backend разработчикам
- Системным и бизнес аналитикам
- Devops инженерам
- Продакт менеджерам
- Sre инженерам
- Frontend разработчикам
- QA-инженерам
- Лидам
1 Проработка прохождения интервью
2 Архитектурная база
3 «В очередь, пожалуйста»
4 СУБД с точки зрения System Design Интервью
5 Distributed Data Storage
6 Практика 1
7 Практика 2
8 Архитектурная ката
1 Проработка прохождения интервью
Цель урока - дать представление о всех важных этапах, которые нужно пройти при проектирование системы.
1. Выявление и разбор требований:
· Функциональных - какие возможности для пользователя даёт система
· Нефункциональных - какими качествами система обладает
Получишь структуру прохождения интервью и прорешанную задачу.
Далее во всём курсе будем делать отсылки для детализации решения.
(!) Такой старт с конца поможет мозгу жадно всасывать знания из последующих лекций. Поскольку будет понятно к чему они применяются.
2 Архитектурная база
Начинаем закладывать базу, которая необходима для проектирования любой нагруженной системы:
Разбираем асинхронные взаимодействия глубже.
Цель урока - дать представление о понятии СУБД. Рассмотреть популярные типы СУБД и области их применения.
Цель урока - дать представления о репликации и шардировании
Прорешивание 2ух популярных задач на System Design Интервью
Итого:
Прорешивание ещё 2ух популярных задач на System Design Интервью
Итого:
Цель урока - проработка командного взаимодействия, навыка мозгового штурма и презентации
Получаем задания, делимся на команды и начинаем в комфортных условиях и ограниченном дедлайне проектировать ещё одну задачу.
Итого:
Цель урока - дать представление о всех важных этапах, которые нужно пройти при проектирование системы.
1. Выявление и разбор требований:
· Функциональных - какие возможности для пользователя даёт система
· Нефункциональных - какими качествами система обладает
- Расчёт нагрузки - storage, throughput, rps
- Построение верхнеуровнего API. Подробней про REST API
- Построение схемы данных на базе PostgreSQL
- Построение архитектуры системы - начнём с базового блока
- Создание системы мониторинга
- Выявление узких мест
- High availability
- Fault tolerance
- Scalability
- Durability
- Consistency
- Maintainability
Получишь структуру прохождения интервью и прорешанную задачу.
Далее во всём курсе будем делать отсылки для детализации решения.
(!) Такой старт с конца поможет мозгу жадно всасывать знания из последующих лекций. Поскольку будет понятно к чему они применяются.
2 Архитектурная база
Начинаем закладывать базу, которая необходима для проектирования любой нагруженной системы:
- Аутентификация - HTTP Basic Auth, Cookie-Based Auth, Token-Based Auth (JWT)
- API Gateway vs Load Balancer. Почему must have в системе?
- Алгоритмы балансировки - Round Robin, Weighted Round Robin, Least Connections, IP Hash
- Монолитная vs микросервисная система
- Синхронное vs асинхронное взаимодействие
- Модель OSI, DNS.
- Популярные протоколы детальней - TCP/IP, UDP, HTTP, Websockets, grpc
- Service discovery
- Retry
- Rate limiting
- Circuit breaker
- Dummy
- Сможешь выбрать нужный архитектурный подход для построения системы.
- Будешь ориентироваться в протоколах и разобранных паттернах.
Разбираем асинхронные взаимодействия глубже.
- Очереди. Зачем нужны?
- Push / pull модель взаимодействия
- Кафка подробно:
- Почему быстрая?
- Где используется?
- Преимущества
- Topic, Broker, Producer, Consumer group
- Партиции, сбои узлов
- Гарантии доставки - at least once, at most once, exactly once
- Понимаешь контекст использования очередей
- Понимаешь работу кафки с её основными компонентами
Цель урока - дать представление о понятии СУБД. Рассмотреть популярные типы СУБД и области их применения.
- Модели данных:
- Модель данных - лишь абстракция (показываем пример запросов в ClickHouse, PostgreSQL, Pandas)
- Реляционная модель данных & SQL (PostgreSQL, CH)
- Key-value модель данных (Redis)
- Документоориентированная модель данных (MongoDB);
- Графовая модель данных
- Индексы и их виды. На примере PostgreSQL
- LSM-деревья. И почему важно хотя бы представлять что это
- B-деревья - базовая база всех интервью
- Обратные индексы
- Особые индексы: составные, кластерные, покрывающие, с условием
- Транзакции и уровни изоляций (base + advanced level)
- ACID - супер основа БД
- Уровни изоляции транзакций (пример с PostgreSQL)
- Нестандартные транзакции (Redis и его pipe'ы)
- СУБД на System Design Интервью - разомнём пальчики
- Оn-premise (CH, PostgreSQL, MongoDB) vs cloud (AWS)
- Чек лист по выбору СУБД
- Понимаешь контекст использования различных СУБД
- Умеешь выбрать нужную для проектирования системы
Цель урока - дать представления о репликации и шардировании
- Репликация
- Синхронная vs асинхронная
- Виды реализации репликации
- Репликация с 1 ведущим узлом (подробно, делаем в PostgreSQL)
- Репликация с 1+ ведущим узлом
- Партиционирование и шардирование (basic)
- Партиционирование данных на 1 сервере (PostgreSQL, ClickHouse)
- Шардирование данных на множестве серверов
- Методы шардирования - PostgreSQL, делаем руками
- Key-value
- Диапазоны
- Hash
- Шардирование (advanced)
- Шардирование вторичных индексов
- Проблемы шардирования: перебалансировка
- Рассказываем об production-решениях
- Репликация и шардирование на System Design Интервью
- Когда надо быть проще: embeddable СУБД (SQLite, chdb, duckdb etc и примеры на них)
- On-premise (PostgreSQL, CH, MongoDB) vs cloud (AWS)
- Основная боль System Design Интервью - когда, зачем и за сколько нужно масштабироваться
- Примеры с реальных интервью
- Понимаешь как масштабировать Базу в связи с возросшими нагрузками
- А также основные подводные камни на этом пути
Прорешивание 2ух популярных задач на System Design Интервью
Итого:
- Применяешь полученные знания в real time проектирование
- Получаешь в копилку две типовые задачи
- Становишься сильно более подготовленным к результативному прохождению интервью
Прорешивание ещё 2ух популярных задач на System Design Интервью
Итого:
- Применяешь полученные знания в real time проектирование
- Получаешь в копилку две типовые задачи
- Становишься ещё более подготовленным к результативному прохождению интервью
Цель урока - проработка командного взаимодействия, навыка мозгового штурма и презентации
Получаем задания, делимся на команды и начинаем в комфортных условиях и ограниченном дедлайне проектировать ещё одну задачу.
Итого:
- Прокачиваешь навык коммуникации
- Подытоживаешь полученные знания, закрепляешь в навыки
- 7 занятий с теорией и практикой
- Готовый фреймворк для построения масштабируемых систем
- Проектирование 5-ти популярных систем
- Дополнительные материалы для проработки
- Подготовка к System Design интервью
- Финальное занятие-игра — Архитектурная ката
- Бонус Мастер-класс с переговорами о повышении оффера
- Бонус Мастер-класс «Как senior’у искать работу в 2025»
https://nevzorov.courses/