Скачать [System Design Thinking] Mikhail Smarshchok - System Design for Interviews and Beyond (2023)

M()eSTRo

"PREMIUM"
Монеты
0₽

[System Design Thinking] Mikhail Smarshchok - System Design for Interviews and Beyond (2023)​


25.png


Учебная программа курса
1. Введение

1.1. Введение в курс
1.2. Кому и как курс будет полезен
1.3. Обзор курса

2. Как определить системные требования
2.1. Системные требования
2.2. Функциональные требования
2.3. Высокая доступность
2.4. Отказоустойчивость, устойчивость к сбоям, надежность
2.5. Масштабируемость
2.6. Производительность
2.7. Надежность
2.8. Согласованность
2.9. Обслуживаемость, безопасность, стоимость
2.10. Сводка системных требований

3. Как достичь определенных качеств системы с помощью аппаратных средств
3.1. Регионы, зоны доступности, центры обработки данных, стойки, серверы
3.2. Физические серверы, виртуальные машины, контейнеры, безсерверные
3.3. Основы надежной, масштабируемой и быстрой коммуникации
3.4. Синхронная vs асинхронная коммуникация
3.5. Асинхронные шаблоны обмена сообщениями
3.6. Сетевые протоколы
3.7. Блокирующий vs неблокирующий ввод-вывод
3.8. Форматы кодирования данных
3.9. Подтверждение сообщений

4. Как улучшить производительность системы с помощью кэша
4.1. Кэш дедупликации
4.2. Кэш метаданных

5. Важность очередей в распределенных системах
5.1. Очередь
5.2. Проблемы полной и пустой очереди
5.3. Начните с чего-то простого
5.4. Блокирующая очередь и шаблон производитель-потребитель
5.5. Пул потоков
5.6. Архитектура больших вычислений

6. Внутренности систем хранения данных
6.1. Журнал
6.2. Индекс
6.3. Данные временных рядов
6.4. Простая база данных ключ-значение
6.5. Индекс B-дерева
6.6. Встроенная база данных
6.7. RocksDB
6.8. LSM-дерево vs B-дерево
6.9. Кэш страниц

7. Как построить эффективную коммуникацию в распределенных системах
7.1. Push vs pull
7.2. Обнаружение хостов
7.3. Обнаружение служб
7.4. Обнаружение пиров
7.5. Как выбрать сетевой протокол
7.6. Сетевые протоколы в реальных системах
7.7. Видео через HTTP
7.8. CDN
7.9. Технологии push и pull
7.10. Технологии push и pull в реальных системах
7.11. Архитектуры масштабирования push на больших масштабах

8. Как доставлять данные надежно
8.1. Что еще нужно знать для создания надежных, масштабируемых и быстрых систем
8.2. Тайм-ауты
8.3. Что делать с неудачными запросами
8.4. Когда повторять попытку
8.5. Как повторять попытку
8.6. Гарантии доставки сообщений
8.7. Смещения потребителей

9. Как быстро доставлять данные
9.1. Пакетирование
9.2. Сжатие

10. Как доставлять данные на большом масштабе
10.1. Как масштабировать потребление сообщений
10.2. Разбиение на разделы в реальных системах
10.3. Стратегии разбиения на разделы
10.4. Маршрутизация запросов
10.5. Перебалансировка разделов
10.6. Консистентное хеширование

11. Как защитить серверы от клиентов
11.1. Перегрузка системы
11.2. Автомасштабирование
11.3. Проектирование системы автоматического масштабирования
11.4. Отбрасывание нагрузки
11.5. Ограничение скорости
11.6. Как защитить клиентов от серверов
11.7. Синхронные и асинхронные клиенты
11.8. Выключатель цепи
11.9. Принцип проектирования fail-fast
11.10. Балка
11.11. Shuffle sharding

12. Эпилог
12.1. Конец (но не совсем)



ПРОДАЖНИК


СКАЧАТЬ
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь
 
Сверху Снизу