System design · Макаров М. Н.

Справочник · для старших курсов

Макаров Максим Николаевич

System design

Работа и выстраивание полноценных систем:
архитектура приложений

Справочник о том, как из отдельных программ собирается работающий сервис: через что проходит запрос пользователя, зачем перед серверами ставят балансировщик, как ограничивают частоту запросов, какие данные кладут в PostgreSQL, какие — в MongoDB, а какие — в Redis.

Справочник продолжает справочник по MongoDB. Там разобрана работа с одной базой. Здесь — как базы данных встраиваются в систему вместе с балансировщиком, кешем и очередями. Материал проверяется практикумом «Архитектор по заявке», в котором схема собирается из деталей по письмам компании.

PostgreSQL · MongoDB · Redisбалансировкаrate limitingочереди

Практикум · модуль 2 дисциплины

Архитектор по заявке

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

К практикуму →

Каталог деталей — 27 деталей схемы: что это, когда ставить, как подключать

ПланМодули и главы

Главы пишутся по порядку. Пока глава не готова, её тема разобрана в каталоге деталей и на занятии.

МОДУЛЬ 1

Путь запроса

Через что проходит запрос от браузера до базы данных и обратно.

  • 1.1Клиент, сервер, база: из чего состоит системаготовится
  • 1.2DNS и CDN: как запрос находит серверготовится
  • 1.3Балансировщик нагрузкиготовится
  • 1.4Сервер без состояния и масштабированиеготовится
  • 1.5API-шлюз и ограничение частотыготовится
МОДУЛЬ 2

Хранилища данных

Какие бывают хранилища и по каким признакам данные распределяют между ними.

  • 2.1Реляционная база: транзакции и связиготовится
  • 2.2Документная база: записи разной формыготовится
  • 2.3Redis: кеш, сессии, счётчикиготовится
  • 2.4Файлы: объектное хранилищеготовится
  • 2.5Поисковый движокготовится
  • 2.6Аналитическая база: ClickHouseготовится
  • 2.7Как разложить сущности по хранилищамготовится
  • ПРПрактикум «Архитектор по заявке»открыт
МОДУЛЬ 3

Нагрузка и отказы

Что делать, когда одного сервера базы мало и когда он выходит из строя.

  • 3.1Репликацияготовится
  • 3.2Шардированиеготовится
  • 3.3Кеширование и устаревание данныхготовится
  • 3.4Очереди и фоновые задачиготовится
  • 3.5Журнал событийготовится
МОДУЛЬ 4

Защита данных

Доступы, шифрование, журнал аудита, восстановление после сбоя и требования 152‑ФЗ.

  • 4.1Секреты и права доступаготовится
  • 4.2Шифрование при хранении и передачеготовится
  • 4.3Журнал аудитаготовится
  • 4.4Резервные копии и восстановлениеготовится
  • 4.5Персональные данные и 152‑ФЗготовится
System design · справочник © Макаров Максим Николаевич