Основы проектирования систем: физика программного обеспечения [Видео 1/15]
FAANG Senior Engineer
0:00 / 0:00
Основы проектирования систем: физика программного обеспечения [Видео 1/15]
22 982 просмотра · 9 месяцев назад
FAANG Senior Engineer
13,4 тыс. подписчиков
22 982 просмотра · 9 месяцев назад
В этом первом видео из серии мы отходим от подхода к архитектуре, напоминающего конструктор «Лего», и возвращаемся к основным принципам: физике программного обеспечения. Мы исследуем, почему ваши абстракции дают сбой, почему «быстрые» кэши могут стать узкими местами и как скорость света диктует проектирование систем глобального масштаба.
Если вы хотите перейти с уровня старшего инженера на уровень штатного инженера, вам нужно перестать думать в терминах «инструментов» и начать думать в терминах задержек, пропускной способности и физических затрат.
Что мы рассмотрим в этом подробном обзоре:
Иерархия задержек: взгляд «снизу вверх» на аппаратные временные характеристики — масштабированные до человеческого времени (где 1 цикл ЦП = 1 секунда).
Механическая совместимость: как физическая реальность SSD и HDD диктует проектирование баз данных (LSM-деревья против B-деревьев).
Пропускная способность против задержки: почему вы можете купить большую пропускную способность, но не можете купить меньшую задержку (аналогия с Boeing 747).
Закон Литтла: фундаментальная математика теории очередей, управляющая любой распределенной системой.
Экономика битов: согласование коммерческой ценности данных со стоимостью хранения наносекунд.
Задание для старшекурсников:
Подумайте об одном «сетевом вызове», который совершает ваша текущая система. Рассчитайте эквивалент «человеческого времени», используя нашу шкалу 1 цикл ЦП = 1 секунда. Ваш ЦП ждет целый день? Десять лет? Опубликуйте свои расчеты в комментариях и расскажите, как бы вы перепроектировали систему, чтобы этот ЦП оставался загруженным.
Введение: За пределами проектирования систем «из кубиков Лего» (0:00-1:54)
Критика традиционных подходов к проектированию систем (0:02-0:20)
Пример из реальной жизни: узкое место кэша из-за задержки сети (0:30-1:29)
Важность понимания физических ограничений для старших инженеров (1:32-1:54)
Иерархия задержек: масштабирование до человеческого времени (1:57-4:38)
Введение в «периодическую таблицу» чисел задержки (1:57-2:05)
Ментальная модель: ЦП как мозг, 1 цикл ЦП = 1 секунда (2:08-2:36)
Задержка кэша L1 (2:38-2:51)
Задержка оперативной памяти (ОЗУ) (2:54-3:15)
Задержка твердотельного накопителя (SSD) (3:19-3:46)
Обратный трафик сети Задержка (из Калифорнии в Нидерланды) (3:49-4:03)
Последствия сетевых вызовов в циклах («ожидание десятилетиями») (4:04-4:16)
Первый принцип: Данные имеют расстояние (4:19-4:38)
Механическая симпатия: Понимание аппаратного ввода-вывода (4:41-6:33)
Определение механической симпатии (4:41-4:53)
Объяснение последовательного и случайного ввода-вывода (5:02-5:29)
Влияние на проектирование баз данных: LSM-деревья против B-деревьев (5:44-6:05)
Соединение физической реальности с глобальной архитектурой (6:21-6:33)
Пропускная способность против задержки: Проблема канала (6:36-8:48)
Разграничение задержки и пропускной способности (6:45-6:52)
Задержка: как долго для одной капли (6:54-7:12)
Пропускная способность: диаметр трубы (7:14-7:24)
Аналогия с Boeing 747 для огромной пропускной способности, ужасной задержки (7:36-7:53)
Решение, ограничены ли вы задержкой или пропускной способностью (7:55-8:12)
Решение правильной проблемы: избегание дорогостоящих ошибок (8:25-8:48)
Закон Литтла: математика теории очередей (8:51-11:05)
Введение в закон Литтла (L = λW) (8:58-9:27)
Объяснение L (запросы в системе), λ (скорость поступления), W (задержка) (9:13-9:27)
Как увеличение задержки (W) влияет на запросы в процессе обработки (L) (9:49-9:56)
The "Петля положительной обратной связи смерти" и коллапс системы (9:59-10:29)
Мониторинг λ и W для оценки состояния системы (10:31-10:50)
Инженеры не могут избежать действия закона Литтла; Можно изменять только переменные (10:51-11:05)
Экономика битов: согласование ценности со стоимостью (11:10-13:04)
Экономика как физика в облаке (11:16-11:21)
Стоимость иерархии хранения: ОЗУ против SSD против холодного хранения/S3 (11:43-11:55)
Избегание дорогостоящих физических носителей для данных низкой ценности (11:58-12:10)
Роль старшего инженера: согласование ценности данных с физической стоимостью (12:11-12:17)
Примеры горячего и холодного хранения данных (12:17-12:40)
Влияние повышения эффективности в масштабах «FAANG» (12:52-13:04)
Заключение: подход на основе первых принципов (13:06-14:07)
Связь наносекунд с миллионами долларов (13:09-13:14)
Краткое изложение основных принципов проектирования систем (13:17-13:42)
Результат: расчеты вместо предположений (13:45-13:51)
Анонс следующего видео: Применение принципов к масштабируемости (13:53-14:07)
Задание для старшекурсников (14:09-14:39)