System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 11:23

Зачем нужны фундаментальные знания

easy

Вводная глава: как сети, ОС и железо влияют на архитектурные решения.

Эта вводная глава нужна для простого, но важного сдвига: системный дизайн начинается не со схемы сервисов, а с понимания того, как вычисления, память, сеть и хранение ограничивают систему.

В реальной работе она помогает видеть под архитектурными блоками физику исполнения: где задержка рождается в сети, где пропускная способность упирается в диск, а где проблема на самом деле связана с CPU или памятью.

В интервью и design review глава полезна тем, что возвращает разговор из абстрактных коробок к причинам и ограничениям, из-за которых система ведет себя именно так.

Практическая польза главы

Системная опора

Связывает низкоуровневые ограничения с high-level архитектурными решениями и убирает абстрактность.

Приоритизация рисков

Помогает заранее видеть, где узкое место связано с CPU, памятью, сетью или storage контуром.

Единый язык

Дает общий словарь для разговора между backend, platform, SRE и инфраструктурной командами.

Interview baseline

Укрепляет фундаментальную часть ответа, чтобы архитектурный дизайн выглядел технически состоятельно.

Контекст

Принципы проектирования масштабируемых систем

Практический мост между фундаментом и архитектурными решениями в System Design.

Читать обзор

Раздел «Фундаментальные знания» нужен, чтобы опираться в проектировании на реальные ограничения инфраструктуры: сеть, память, процессор, диск и поведение ОС. Без этой базы архитектура часто остается абстракцией без предсказуемых эксплуатационных свойств.

Эта глава связывает System Design с инженерной практикой: как оценивать latency и throughput, как выбирать платформенные примитивы и как объяснять trade-offs через измеримые факты.

Почему эта часть важна

Фундамент связывает архитектуру с физическими ограничениями

Latency сети, задержки диска и поведение памяти задают реальные границы системы сильнее, чем абстрактные диаграммы.

Без базы сложно делать корректные trade-offs

Выбор протокола, модели коммуникации и стека исполнения невозможен без понимания стоимости каждого слоя.

Инциденты чаще упираются в базовые механизмы

Bottleneck-и в I/O, сетевые таймауты, контекстные переключения и saturation ресурсов требуют фундаментальной диагностики.

Фундамент ускоряет обучение сложным темам

Distributed systems, SRE, security и storage-практики лучше усваиваются, когда понятны основы ОС, сетей и вычислений.

Эта часть обязательна для зрелого System Design

На интервью и в production ожидают, что инженер объясняет архитектурные решения через измеримые ограничения среды.

Как проходить фундаментальные знания по шагам

Шаг 1

Зафиксировать ресурсный профиль и целевые метрики

Определите latency budget, throughput, характер нагрузки и допустимую деградацию для ключевых пользовательских сценариев.

Шаг 2

Разобрать путь запроса по слоям

Проследите путь данных через сеть, протоколы, runtime, ОС, память и диск, чтобы увидеть реальные узкие места.

Шаг 3

Выбрать базовые платформенные примитивы

Согласуйте модель конкурентности, типы I/O, контейнеризацию/виртуализацию и сетевые механизмы под нужные гарантии.

Шаг 4

Проверить гипотезы измерениями

Используйте нагрузочные тесты, профилирование и трассировку, чтобы подтверждать решения числами, а не интуицией.

Шаг 5

Закрепить фундамент как инженерный стандарт

Добавьте базовые ограничения и уроки в ADR, runbooks и review-критерии, чтобы команда масштабировала знания системно.

Ключевые фундаментальные trade-offs

Абстракции vs управляемость низкого уровня

Высокоуровневые инструменты ускоряют delivery, но скрывают детали, критичные для стабильности и производительности.

Изоляция workload vs эффективность ресурсов

Контейнеры и VM улучшают безопасность и predictability, но добавляют накладные расходы по CPU, памяти и сети.

Портируемость платформы vs нативная оптимизация

Универсальные решения проще переносить, тогда как platform-specific оптимизации дают выигрыш ценой гибкости.

Синхронная простота vs асинхронная масштабируемость

Прямые вызовы проще отлаживать, но event-driven и очереди часто лучше переносят пиковые нагрузки и сбои зависимостей.

Что входит в раздел

Сети и протоколы

OSI, IP, TCP/UDP, HTTP и DNS: как данные движутся между сервисами и где возникают задержки.

Вычисления, память и ОС

CPU/GPU, память, планировщик ОС и I/O-модель как базовые факторы latency и throughput.

Платформенные среды исполнения

Виртуализация и контейнеризация как фундамент для надежного runtime в облаке и on-prem.

Как применять это на практике

Частые ошибки

Игнорировать физические ограничения железа и сети при оценке архитектурных вариантов.
Переходить к сложным distributed-паттернам без понимания базового поведения TCP, таймаутов и очередей.
Оптимизировать систему локально без end-to-end измерений всего запроса.
Считать фундамент разовой теорией и не использовать его в ежедневных инженерных решениях.

Рекомендации

Начинайте архитектурный анализ с оценки path latency по слоям: сеть, runtime, ОС, память, диск.
Связывайте каждое технологическое решение с измеримым эффектом на SLO и эксплуатационные риски.
Используйте простые нагрузочные и профилировочные сценарии, чтобы быстро валидировать гипотезы.
Поддерживайте общую инженерную базу команды через регулярные разборы инцидентов и performance-анализ.

Материалы раздела

Куда двигаться дальше

Соберите системную базу

Начните с сетевых протоколов, ОС и вычислительных ограничений, чтобы уверенно читать latency-профиль любой архитектуры.

Перенесите фундамент в advanced темы

Дальше переходите к distributed systems, storage и SRE, где фундаментальные ограничения становятся прямыми архитектурными решениями и операционными рисками.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки