1. Присоединяйся к лучшим! Пройди - РЕГИСТРАЦИЮ!

Скачать [Balun.Courses] System Design (2023)

Тема в разделе "Администрирование и программирование", создана пользователем Shark Mafia, 18 дек 2023.

  1. Shark Mafia

    By:Shark Mafia18 дек 2023
    Moderator
    Команда форума Модератор

    Регистрация:
    18 май 2021
    Сообщения:
    16.025
    Симпатии:
    38.261
    [Balun.Courses] System Design (2023)
    2023-12-18_09-53-13
    Знакомая ситуация?

    • На собеседованиях 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
    Результат: применяешь все знания с уроков на практике, умеешь строить большие высоконагруженные системы, понимаешь, как спроектированы популярные сервисы, которыми ты пользуешься каждый день.

    Продажник:

    Скачать:
     
    asya.rise, and11Hrv и Refoops нравится это.
Похожие темы
  1. Todos
    Ответов:
    2
    Просмотров:
    597
  2. #Megalodon
    Ответов:
    0
    Просмотров:
    526
  3. Stive
    Ответов:
    1
    Просмотров:
    24
  4. Shark Mafia
    Ответов:
    3
    Просмотров:
    1.763
  5. Eugene2828
    Ответов:
    10
    Просмотров:
    104
  6. Shark Mafia
    Ответов:
    0
    Просмотров:
    1.021
  7. development

    Стол заказов [Balun.Courses] Golang

    Ответов:
    0
    Просмотров:
    21
Загрузка...