System Design for Interviews and Beyond
О чём курс
Вам нужно спроектировать отказоустойчивую распределенную систему, которая выдержит миллионы запросов, но вы не знаете, с чего начать выбор архитектурных решений. Курс превращает абстрактные требования к системе в конкретные технические инструменты.
Внутри разбираются:
- Фундаментальные показатели: от обеспечения высокой доступности и масштабируемости до правильного распределения данных через партиционирование.
- Работа с данными: внутреннее устройство БД, сравнение LSM-деревьев и B-деревьев, использование индексов и кэширования.
- Сетевые протоколы и коммуникация: выбор между синхронным и асинхронным взаимодействием, стратегии push/pull и реализация CDN.
- Надежность и масштабируемость: обработка сбоев, стратегии повторных запросов, гарантии доставки сообщений и ребалансировка партиций.
Материал ориентирован на разработчиков, готовящихся к System Design интервью, и тех, кто хочет глубже понимать принципы построения высоконагруженных систем. Итогом станет понимание того, как выбирать архитектуру под конкретные бизнес-задачи и обосновывать каждое техническое решение.
Программа обучения
- Introduction
- 1.1. Course introduction
- 1.2. Who will benefit from the course and how
- 1.3. Course overview
- How to define system requirements
- 2.1. System requirements
- 2.2. Functional requirements
- 2.3. High availability
- 2.4. Fault tolerance, resilience, reliability
- 2.5. Scalability
- 2.6. Performance
- 2.7. Durability
- 2.8. Consistency
- 2.9. Maintainability, security, cost
- 2.10. Summary of system requirements
- How to achieve certain system qualities with the help of hardware
- 3.1. Regions, availability zones, data centers, racks, servers
- 3.2. Physical servers, virtual machines, containers, serverless
- 3.3. Fundamentals of reliable, scalable, and fast communication
- 3.4. Synchronous vs asynchronous communication
- 3.5. Asynchronous messaging patterns
- 3.6. Network protocols
- 3.7. Blocking vs non-blocking I/O
- 3.8. Data encoding formats
- 3.9. Message acknowledgment
- How to improve system performance with caching
- 4.1. Deduplication cache
- 4.2. Metadata cache
- The importance of queues in distributed systems
- 5.1. Queue
- 5.2. Full and empty queue problems
- 5.3. Start with something simple
- 5.4. Blocking queue and producer-consumer pattern
- 5.5. Thread pool
- 5.6. Big compute architecture
- Data store internals
- 6.1. Log
- 6.2. Index
- 6.3. Time series data
- 6.4. Simple key-value database
- 6.5. B-tree index
- 6.6. Embedded database
- 6.7. RocksDB
- 6.8. LSM-tree vs B-tree
- 6.9. Page cache
- How to build efficient communication in distributed systems
- 7.1. Push vs pull
- 7.2. Host discovery
- 7.3. Service discovery
- 7.4. Peer discovery
- 7.5. How to choose a network protocol
- 7.6. Network protocols in real-life systems
- 7.7. Video over HTTP
- 7.8. CDN
- 7.9. Push and pull technologies
- 7.10. Push and pull technologies in real-life systems
- 7.11. Large-scale push architectures
- How to deliver data reliably
- 8.1. What else to know to build reliable, scalable, and fast systems
- 8.2. Timeouts
- 8.3. What to do with failed requests
- 8.4. When to retry
- 8.5. How to retry
- 8.6. Message delivery guarantees
- 8.7. Consumer offsets
- How to deliver data quickly
- 9.1. Batching
- 9.2. Compression
- How to deliver data at large scale
- 10.1. How to scale message consumption
- 10.2. Partitioning in real-life systems
- 10.3. Partitioning strategies
- 10.4. Request routing
- 10.5. Rebalancing partitions
- 10.6. Consistent hashing
Отзывов пока нет. Будьте первым!
Это не розничная цена — это ваш взнос в складчину. Мы собираем группу участников и делим между ними стоимость официального доступа: каждый платит только свою долю, а получает весь материал. Чем больше участников, тем меньше взнос. После того как сумма собрана, мы оформляем официальный доступ и раздаём материалы всем, кто участвовал.
Нажмите кнопку «Получить доступ» на этой странице и следуйте инструкциям. Вас переведёт на форму оплаты — доступны все современные способы (карта, СБП, электронные кошельки). После оплаты на почту придёт письмо с доступом: материалы выдаются в разделе «Мои складчины» на нашем основном сайте skladchik.org. Учтите: в России skladchik.org открывается только через ускоритель интернета (VPN) — настроить его можно за пару минут по инструкции на skladchik-kak-voiti.online.
Да, конечно. Все материалы — видео, PDF, дополнительные файлы — можно скачать к себе на компьютер и пользоваться ими сколько угодно, без ограничений по времени. Ссылки остаются активными в вашей библиотеке «Мои складчины».