M()eSTRo
МОДЕРАТОР
		[Balun.Courses] System Design (2023)
Знакомая ситуация?
- На собеседованиях middle+ просят пройти system design интервью, а я ничего не знаю
 - На работе приходится принимать участие в проектировании сложной системы, а у меня нет знаний в этой области, ничем не могу помочь
 - Есть база по system design, но западают сложные темы и детали. Не могу правильно спроектировать большую систему / не понимаю, правильно делаю или нет
 - Не понимаю, как работают большие сложные сервисы по типу «Телеграм», «Яндекс.Такси», «Ozon»
 - Не понимаю, как работают транзакции, репликация, шардирование, консенсус в сети
 - Не могу проявить себя на работе, когда обсуждают большие системы. Нет знаний в этой области
 
- Подготовишься к трудоустройству в топовую IT-компанию на позицию middle+ - поймешь, из чего состоит system design интервью и научишься проходить его на реальной практике
 - Узнаешь, как проектируются большие отказоустойчивые высоконагруженные системы
 - Познакомишься с огромным количеством паттернов и приемов проектирования
 - Узнаешь, как работают репликация, шардирование, транзакции и многое другое
 - Научишься устанавливать требования к системе, считать нагрузку, проектировать API, базу данных и всю систему в целом
 - Повысишь уровень ЗП и свою ценность в компании, как специалиста
 
Урок 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 / * / 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
 
Продажник:
	Вам необходимо зрегистрироваться для просмотра ссылок
Скачать:
					 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь