Перейти к содержимому

Основы проектирования систем: физика программного обеспечения [Видео 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)