Главная » 2023»Декабрь»18 » Владимир Балун - Balun.Courses. System Design (2023) PCRec
Владимир Балун - Balun.Courses. System Design (2023) PCRec
22:10
На этом курсе 95% вопросов по system design вопросов по system design ты закроешь На этом курс:
Подготовишься к трудоустройству в топовую IT-компанию на позицию middle+ - поймешь, из чего состоит system design интервью и научишься проходить его на реальной практике Узнаешь, как проектируются большие отказоустойчивые высоконагруженные системы Познакомишься с огромным количеством паттернов и приемов проектирования Узнаешь, как работают репликация, шардирование, транзакции и многое другое Научишься устанавливать требования к системе, считать нагрузку, проектировать API, базу данных и всю систему в целом Повысишь уровень ЗП и свою ценность в компании, как специалиста
Знакомая ситуация? На собеседованиях middle+ просят пройти system design интервью, а я ничего не знаю На работе приходится принимать участие в проектировании сложной системы, а у меня нет знаний в этой области, ничем не могу помочь Есть база по system design, но западают сложные темы и детали. Не могу правильно спроектировать большую систему / не понимаю, правильно делаю или нет Не понимаю, как работают большие сложные сервисы по типу «Телеграм», «Яндекс.Такси», «Ozon» Не понимаю, как работают транзакции, репликация, шардирование, консенсус в сети Не могу проявить себя на работе, когда обсуждают большие системы. Нет знаний в этой области
Программа:
Урок 1. Основные Термины и компоненты Файл-сервер / клиент-сервер / P2P Надежность / масштабируемость / производительность / безопасность систем Масштабирование (вертикальное / горизонтальное) Монолитные и микросервисные приложения Stateless и statefull сервисы Latency и Throughput SLA / SLO / SLI Data / compute intensive приложения Балансировка нагрузки (клиентская), (DNS и geoDNS балансировка), (l4 / l7), (round robin / weighted round robin / least connections / least response time / least bandwidth / sticky sessions) Проксирование (forward / reverse) Кеширование (внутренее / внешнее), (lazy caching / write-through / read-through / write-around), (Алгоритм Белади, LRU, SLRU, MRU, LFU, LIFO, FIFO, 2Q, MQ) API (SOAP, REST, gRPC, GraphQL), (under / over fetching) Observability (мониторинг, логирование, трейсинг, непрерывное профилирование, анализ сбоев) Результат: знаешь основные компоненты и термины, без понимая которых невозможно представить дизайн большой отказоустойчивой системы.
Бонус: вместе спроектируем API для одного из популярных приложений.
Урок 2. Хранение данных OLAP / OLTP Data retention Поисковые движки Реляционные / документоориентированные / key-value / графовые / временных рядов / колоночные / Blob storage базы данных Persistent и in-memory базы данных Embedded и single file базы данных Индексы (BTree / Hash / Bitmap / Spatial / Inverted), (кластерные / некластерные), (покрывающие) ACID и BASE Транзакции (WAL), (MVCC, 2PL), (Deferrable) Constraints (NOT NULL, UNIQUE, FOREIGN KEY, CHECK, DEFAULT) Хранимые процедуры, триггеры и materialized view Изоляции транзакций (READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE) Брокеры сообщений (Kafka, RabitMQ) CDN Результат: понимаешь, как и где хранить данные — разберешь различные базы данных, их устройство, и поймешь, когда и какую из них следует выбирать на практике.
Бонус: на уроке вместе спроектируем базу данных одного из популярных приложений
Урок 3. Распределенное хранение данных Бэкапы CAP теорема Strong / Eventual Consistency Репликация (синхронная / асинхронная / полу-синхронная), (с одним ведущим узлом / с несколькими ведущими узлами / без ведущих узлов), (statement based / row based / mixed), (логическая / физическая), (pull / push), (failover), (hot standby) Replication lag (чтение собственных записей / монотонное чтение / согласованное префиксное чтение) Фильтрация репликаций Вертикальное и горизонтальное партиционирование Шардирование (range based / key based / directory based), (client / proxy / coordinator routing) Перебалансировка (virtual buckets) Resharding (consistent / randezvous hashing) Внутреннее устройство кластера Kafka CDC (Debezium Результат: понимаешь, как хранить данные распределенно на нескольких компьютерах, зачем это нужно и какие из-за этого могут возникнуть проблемы.
Бонус: на уроке вместе выберем стратегии репликации и шардирования базы данных одного из популярных приложений.
Урок 4. Паттерны и приемы проектирования CQRS Pub / sub Low-latency и High-troughput приложения Realtime и пакетная обработка запросов Map Reduce Service discovery Push и pull модель Толстый клиент Тегирование и версионирование кэша Трехзвенная архитектура Отложенное выполнение задач Polling / long polling / streaming Retries (идемпотентность / backoff) Circuit breaker Gracefull degradation (fallback) Rolling, Blue/Green и Canary релизы Cобытийно-ориентированная архитектура (Event Notification / State Transfer / Event Collaboration) Консенсус (распределенная блокировка / выбор лидера / распределенные транзакции)
Результат: знаешь различные паттерны и приемы проектирования, которые используются практически в любом дизайне системы.
Бонус: вместе найдем применимость этим паттернам и приемам проектирования в настоящих системах, а также спроектируем рекомендательную систему и система автодополнения слов.
Урок 5. Дизайн популярных систем Дизайн Telegram Дизайн ленты друзей ВКонтакте Дизайн Яндекс Go Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы, понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.
Урок 6. Дизайн популярных систем#2 Дизайн LeetCode Дизайн Booking.com Дизайн Google Drive Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы, понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.
Информация о видео Название: Balun.Courses. System Design Автор: Владимир Балун Год выхода: 2023 Жанр: Видеокурс Язык: Русский Выпущено: Россия Продолжительность: долго