DevOpsBackendSystemDesign

Шпаргалка по системному дизайну для собеседований

·MAGMA

Основные характеристики системы

Перед началом проектирования важно уточнить нефункциональные требования:

  • Доступность
  • Масштабируемость
  • Надежность
  • Поддерживаемость
  • Латентность
  • Пропускная способность
  • Согласованность Эти параметры определяют архитектуру и влияют на все последующие решения.

Теорема CAP

В распределенных системах можно гарантировать только два из трех свойств:

  • Согласованность — каждое чтение возвращает последнюю запись
  • Доступность — каждый запрос получает ответ
  • Устойчивость к разделению сети На практике чаще всего выбирают между CP-системами (банковские транзакции, инвентаризация) и AP-системами (социальные ленты).

Горизонтальное и вертикальное масштабирование

ТипОписание
ВертикальноеУвеличение мощности сервера
ГоризонтальноеДобавление новых серверов
Горизонтальное масштабирование позволяет справляться с большими нагрузками за счет распределения запросов между несколькими машинами.

Система доменных имен (DNS)

DNS преобразует читаемые человеком имена сайтов в IP-адреса. Ключевые моменты:

  • Рекурсивные резолверы выполняют основную работу
  • Время жизни (TTL) контролирует кэширование
  • Географический DNS направляет пользователей к ближайшему дата-центру

Балансировка нагрузки

Балансировщики распределяют запросы между серверами. Популярные алгоритмы:

  • Круговой обход (Round Robin)
  • Минимум соединений (Least Connections)
  • По хешу IP-адресов (IP Hash)
  • Весовой метод (Weighted)
Вернуться к блогу
Система дизайна для собеседования — MAGMA