Складчина: System Design [Тариф База] [Владимир Невзоров, Михаил Масягин]
Твоя база для создания высоконагруженных отказоустойчивых систем
- Научишься проходить System Design интервью в Big Tech
- Разработаешь систему в конце курса и прикрепишь к себе в портфолио
- Изучишь архитектурные паттерны, запустишь реальные проекты
- Поймешь популярные кейсы с партиционированием, шардированием, микросервисной архитектурой
- Спроектируешь популярные сервисы
- Овладеешь фреймворком с чёткой структурой для создания масштабируемых систем
Подойдёт IT специалистам:
- Backend разработчикам
- Системным и бизнес аналитикам
- Devops инженерам
- Продакт менеджерам
- Sre инженерам
- Frontend разработчикам
- QA-инженерам
- Лидам
Программа курса:
1 Проработка прохождения интервью
2 Архитектурная база
3 «В очередь, пожалуйста»
4 СУБД с точки зрения System Design Интервью
5 Distributed Data Storage
6 Практика 1
7 Практика 2
8 Архитектурная ката
Спойлер: Подробная программа 1 Проработка прохождения интервью
Цель урока — дать представление о всех важных этапах, которые нужно пройти при проектирование системы.
1. Выявление и разбор требований:
· Функциональных — какие возможности для пользователя даёт система
· Нефункциональных — какими качествами система обладает
2. Расчёт нагрузки — storage, throughput, rps
3. Построение верхнеуровнего API. Подробней про REST API
4. Построение схемы данных на базе PostgreSQL
5. Построение архитектуры системы — начнём с базового блока
6. Создание системы мониторинга
7. Выявление узких мест
Разберём на примере популярной задачи, которую можешь получить на реальном интервью. Плюс, углубимся в нефункциональные требования:
- 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
Итого:
- Сможешь выбрать нужный архитектурный подход для построения системы.
- Будешь ориентироваться в протоколах и разобранных паттернах.
3 «В очередь, пожалуйста»
Разбираем асинхронные взаимодействия глубже.
- Очереди. Зачем нужны?
- Push / pull модель взаимодействия
- Кафка подробно:
- Почему быстрая?
- Где используется?
- Преимущества
- Topic, Broker, Producer, Consumer group
- Партиции, сбои узлов
- Гарантии доставки — at least once, at most once, exactly once
Итого:
- Понимаешь контекст использования очередей
- Понимаешь работу кафки с её основными компонентами
4 СУБД с точки зрения System Design Интервью
Цель урока — дать представление о понятии СУБД. Рассмотреть популярные типы СУБД и области их применения.
- Модели данных:
- Модель данных — лишь абстракция (показываем пример запросов в 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)
- Чек лист по выбору СУБД
Итого:
- Понимаешь контекст использования различных СУБД
- Умеешь выбрать нужную для проектирования системы
5 Distributed Data Storage
Цель урока — дать представления о репликации и шардировании
- Репликация
- Синхронная 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 Интервью — когда, зачем и за сколько нужно масштабироваться
- Примеры с реальных интервью
Итого:
- Понимаешь как масштабировать Базу в связи с возросшими нагрузками
- А также основные подводные камни на этом пути
6 Практика 1
Прорешивание 2ух популярных задач на System Design Интервью
Итого:
- Применяешь полученные знания в real time проектирование
- Получаешь в копилку две типовые задачи
- Становишься сильно более подготовленным к результативному прохождению интервью
7 Практика 2
Прорешивание ещё 2ух популярных задач на System Design Интервью
Итого:
- Применяешь полученные знания в real time проектирование
- Получаешь в копилку две типовые задачи
- Становишься ещё более подготовленным к результативному прохождению интервью
8 Архитектурная ката
Цель урока — проработка командного взаимодействия, навыка мозгового штурма и презентации
Получаем задания, делимся на команды и начинаем в комфортных условиях и ограниченном дедлайне проектировать ещё одну задачу.
Итого:
- Прокачиваешь навык коммуникации
- Подытоживаешь полученные знания, закрепляешь в навыки
Тариф База
- 7 занятий с теорией и практикой
- Готовый фреймворк для построения масштабируемых систем
- Проектирование 5-ти популярных систем
- Дополнительные материалы для проработки
- Доступ к общему чату с участниками и преподавателями
- Подготовка к System Design интервью
- Финальное занятие-игра — Архитектурная ката
- Доступ к персональному серверу с реальными докер проектами в течение курса
- Доступ к урокам на 1 год
- Бонус Мастер-класс с переговорами о повышении оффера
- Бонус Мастер-класс «Как senior’у искать работу в 2025»
Цена 53200 руб