System Design (2023) Balun.Courses

100руб.

Категории: ,

System Design

Автор курса: Balun.Courses

Сайт автора: balun_courses/courses/system_design

Цена автора: 32900 руб.

 

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

  • На собеседованиях middle+ просят пройти system design интервью, а я ничего не знаю
  • На работе приходится принимать участие в проектировании сложной системы, а у меня нет знаний в этой области, ничем не могу помочь
  • Есть база по system design, но западают сложные темы и детали. Не могу правильно спроектировать большую систему / не понимаю, правильно делаю или нет
  • Не понимаю, как работают большие сложные сервисы по типу «Телеграм», «Яндекс.Такси», «Ozon»
  • Не понимаю, как работают транзакции, репликация, шардирование, консенсус в сети
  • Не могу проявить себя на работе, когда обсуждают большие системы. Нет знаний в этой области

На этом курсе 95% вопросов по system design вопросов по system design ты закроешь На этом курс:

  • Подготовишься к трудоустройству в топовую 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 / 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

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

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “System Design (2023) Balun.Courses”

Ваш адрес email не будет опубликован. Обязательные поля помечены *