Доступно

System Design [Balun.Courses]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 20 июл 2023.

Цена: 32900р.-97%
Взнос: 806р.
100%

Основной список: 90 участников

Резервный список: 42 участников

Статус обсуждения:
Комментирование ограничено.
  1. 20 июл 2023
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: System Design [Balun.Courses]

    [​IMG]

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

    Скрытая ссылка
     
    Последнее редактирование модератором: 20 ноя 2023
    7 пользователям это понравилось.
  2. Последние события

    1. skladchik.com
      Складчина доступна.
      17 дек 2023
    2. Osirus
      Osirus участвует.
      17 дек 2023
    3. sliding
      sliding участвует.
      14 дек 2023
    4. akafloa
      akafloa участвует.
      14 дек 2023

    Последние важные события

    1. skladchik.com
      Складчина доступна.
      17 дек 2023
    2. skladchik.com
      Взнос составляет 403р.
      22 ноя 2023
    3. skladchik.com
      Складчина активна.
      22 ноя 2023
    4. skladchik.com
      Сбор взносов начинается 22.11.2023.
      20 ноя 2023
  3. Обсуждение
  4. 15 дек 2023
    #2
    Nickelton
    Nickelton ДолжникДолжник
    @ANkulagin,
    Категорически рекомендую ознакомиться с правилами клуба, и, в частности, пунктом 18.2 правил участия в складчинах
     
  5. 15 дек 2023
    #3
    ANkulagin
    ANkulagin СкладчикСкладчик
    читаю
     
Статус обсуждения:
Комментирование ограничено.