Скачать System design [Тариф Стандарт] [Balun.Courses] [Повтор]

Принц

Администратор
Регистрация
16 Дек 2016
Сообщения
163.182
Реакции
465.818
Складчина: System design [Тариф Стандарт] [Balun.Courses] [Повтор]



Знакомая ситуация?

На собеседованиях middle+ просят пройти system design интервью, а я ничего не знаю
На работе нужно создавать высоконагруженные системы, а у меня не хватает опыта и знаний
Есть база по system design, но не разбираюсь в сложных темах и деталях. Не могу спроектировать большую систему / не понимаю, правильно делаю или нет
Не понимаю, как работают сложные приложения и сервисы по типу «WhatsApp», «ВКонтакте», «Google Drive»
Толком не понимаю, что такое репликация и шардирование, а также все, что с этим связано
Не могу проявить себя на работе при обсуждении высоконагруженных систем — мало знаний и нечего сказать
95% вопросов по system design закроешь на этом обучении

Подготовишься к прохождению System Design интервью — поймешь из чего оно состоит, узнаешь его особенности и научишься проходить его на реальной практике
Узнаешь, как проектируются большие отказоустойчивые высоконагруженные системы
Познакомишься с огромным количеством паттернов и приемов проектирования высоконагруженных систем
Узнаешь, как работают репликация, шардирование, транзакции и многое другое
Научишься устанавливать требования для высоконагруженных систем, считать нагрузку и ресурсы, проектировать API, модель данных и всю систему в целом
Повысишь текущий уровень зарплаты и увеличишь свою ценность в компании, как специалиста
Программа:

Урок 1. Основы проектирования систем
Урок 2. Кэширование, API и Observability
Урок 3. Хранение и поставка данных
Урок 4. Распределение хранение данных
Урок 5. Паттерны и приемы проектирования
Урок 6. Проектирование популярных систем
Урок 7. Проектирование популярных систем
Урок 8. Проектирование популярных систем


Спойлер: Программа подробно
Урок 1. Основы проектирования систем

Свойства информационных систем

Надежность
Масштабируемость
Производительность
Удобство сопровождения
Безопасность
Критерии информационных систем

Data / compute intensive системы
Read / write intensive системы
Low latency системы
High throughput системы
Балансировка нагрузки

клиентская / серверная
DNS и geoDNS балансировка
L4 / L7 балансировка
алгоритмы балансировки - random / round robin / weighted round robin / least connections / least response time / least bandwidth / sticky sessions / power of two choises
Проксирование

forward / reverse
Функциональные и нефункциональные требования
Расчет нагрузки
Результат:

знаешь основные критерии и свойства информационных систем, без которых невозможно спроектировать большую отказоустойчивую систему.
разбираешься в балансировке нагрузки и проксировании, а также умеешь устанавливать требования к системе и считать нагрузку.
Бонус:

вместе установим функциональные и нефункциональные требования для одного популярного приложения, а также оценим будущую нагрузку на него.
Урок 2. Кэширование, API и Observability

Кэширование

внутреннее / внешнее
кэширование ошибок
эффективность кэширования
thundering herd problem
многомерные кэш
алгоритмы вытеснения - алгоритм Белади (OPT), random, LRU, SLRU, TLRU, LRU-k, MRU, LFU, LIFO, FIFO, 2Q, Second Chance, Clock
инвалидация - по TTL / по событию / версионирование кэша / тегирование кэша
взаимодействие с кэшем - cache aside / cache through / cache ahead
API

CRUD
Under / over fetching
SOAP / REST / RPC / GraphQL
Polling / long polling / streaming (SSE, WebSockets)
Версионирование API
Идемпотентность
Observability

Метрики / Логи / Трейсы
Алертинг
Непрерывное профилирование
Результат:

разбираешься в кэшировании, а также понимаешь основные проблемы при его использовании.
умеешь проектировать API и мониторить сервисы.
Бонус:

вместе спроектируем REST API для одного из популярных приложений.
Урок 3. Хранение и поставка данных

Виды баз данных

Реляционные
Документоориентированные
Key-value
Time series
Колоночные
Wide-column
Object storage
Характеристики баз данных

ACID / BASE
OLAP / OLTP / HTAP
Persistent / in-memory базы данных
Embedded / single file базы данных
Индексы

BTree / Hash / Bitmap / Spatial / Reversed
кластерные / некластерные
селективность индекса
функциональные
покрывающие
разряженные
Транзакции

WAL
Deferrable
MVCC / 2PL
Изоляции транзакций - READ_UNCOMMITTED / READ_COMMITTED / REPEATABLE_READ / SERIALIZABLE
Очереди сообщений

Сценарии использования
Гарантии доставки
Data retention
Паттерны хранения и поставки данных

Сжатие данных
Охлаждение данных
Запись батчами
Расчет железа
Хранимые процедуры
Materialized view
Тригеры
Результат:

понимаешь, где их и как лучше хранить данные, а также сколько потребуется железа для хранения.
знаешь различные виды баз данных, а также понимаешь, когда и какую из них следует выбирать на практике.
Бонус:

вместе спроектируем базу данных одного из популярных приложений, а также посчитаем сколько потребуется железа для хранения данных приложения.
Урок 4. Распределение хранение данных

Репликация

синхронная / асинхронная / полу-синхронная
с одним ведущим узлом / с несколькими ведущими узлами / без ведущих узлов
логическая (SBR / RBR) / физическая
hot standby / warm standby
фильтрация репликаций
split brain
failover
Партиционирование

Вертикальное / горизонтальное
Range based / key based / directory based
Шардирование

перебалансировка (virtual buckets)
resharding (consistent / randezvous hashing)
роутинг (client / proxy / coordinator routing)
Бэкапы

CAP теорема
PACELC теорема
CDN (Content Delivery Network)
CDC (Change Data Capture)
Результат:

понимаешь, как хранить данные распределенно на нескольких хостах, а также умеешь считать, сколько потребуется хостов для хранения этих данных.
Бонус:

вместе выберем стратегии репликации и шардирования базы данных одного из популярных приложений, а также посчитаем сколько потребуется хостов для хранения данных.
Урок 5. Паттерны и приемы проектирования

Архитектура информационных систем

Файл-сервер / клиент-сервер / P2P
Паттерны развертывания сервисов

Rolling / blue-green / канареечный
Архитектура бэкенда

Монолитная / микросервисная (MSA) / SOA
Событийно-ориентированная архитектура

Event notification / state transfer / event collaboration
Консенсус

Выбор лидера
Распределенная блокировка
Распределенные транзакции - SAGA хореография и оркестрация / 2PC / 3PC
Асинхронные паттерны

point-point / pub-sub / request-response
отложенное выполнение задач
Dead letter queue
Паттерны отказоустойчивости

fallback
bulkheads
backpressure
self-healing
rate limiting
retries (backoff)
feature toggles
circuit breaker
gracefull degradation
Результат:

знаешь различные паттерны и приемы проектирования, которые используются практически во время любого процесса проектирования системы
Бонус:

вместе найдем применимость этим паттернам и приемам проектирования в настоящих системах.
Урок 6. Проектирование популярных систем

Проектирование ленты друзей ВКонтакте
Проектирование WhatsApp
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.

Урок 7. Проектирование популярных систем

Проектирование Boocking.com
Проектирование Google Drive
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.

Урок 8. Проектирование популярных систем

Проектирование Яндекс.Такси
Проектирование Leetcode
Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы и понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.

Тариф Стандарт

8 практических уроков
Проектирование 6-ти систем
Подготовка к System Design интервью
Финальный проект
Цена 51400 руб.




СКАЧАТЬ
 
Сверху