🔸Основные концепции
Распределённая система — набор взаимосвязанных компьютеров, которые общаются и координируются для достижения общей цели
Масштабируемость — обработка возросшей нагрузки
- Горизонтальная — добавление новых машин (нод)
- Вертикальная — апгрейд существующих машин (например, CPU, RAM)
Надёжность — корректная работа несмотря на сбои
Доступность — доля времени работы системы без простоев
Согласованность — согласие по значениям данных между всеми нодами в заданный момент
Устойчивость к разделению сети (Partition Tolerance) — работа при сетевых разрывах
Теорема CAP — из трёх свойств (Согласованность, Доступность, Устойчивость к разделениям) можно выбрать только два
Управление состоянием — хранение и синхронизация данных между нодами (без состояния/со состоянием)
Шардирование данных — разделение данных для масштабируемости (горизонтальное/вертикальное, по хешу/диапазону)
Стратегии репликации — копирование данных для отказоустойчивости (синхронная/асинхронная/на основе кворума)
Модели согласованности — компромиссы между согласованием данных и производительностью (строгая/событийная/каузальная)
Порядок и время — упорядочивание событий (метки Лэмпорта/векторные часы)
Отказоустойчивость — управление сбоями (фейловер/резервирование)
Управление конкурентным доступом — одновременный доступ к ресурсам (оптимистичный/пессимистичный контроль)
🔸Архитектуры
Клиент-сервер — клиенты запрашивают сервисы у серверов
P2P (одноранговая сеть) — ноды одновременно клиенты и серверы
Master-Slave — один мастер-узел координирует, множество слейвов выполняют задачи
Микросервисы — система разбита на мелкие независимые сервисы
Событийно-ориентированная архитектура — компоненты реагируют на события
SOA (сервис-ориентированная архитектура) — набор сервисов, общающихся между собой
Lambda-архитектура — гибридная архитектура для пакетной и потоковой обработки
🔸Ключевые технологии
Оркестрация контейнеров — Kubernetes, Docker Swarm
Сервис-дискавери — Consul, etcd
API-шлюзы — Kong, Tyk, Apigee, AWS API Gateway
Балансировщики нагрузки — HAProxy, NGINX, Traefik, Amazon ELB
Мониторинг и наблюдаемость — Prometheus, Grafana
Распределённый трейсинг — Zipkin, Jaeger
Сервисная сетка (Service Mesh) — Istio, Linkerd
Инфраструктура как код (IaC) — Terraform, CloudFormation
Управление конфигурациями — Ansible, Chef, Puppet
Распределённые кеши — Redis, Memcached
Обработка потоков — Apache Flink, Apache Spark Streaming
Оркестрация рабочих процессов — Apache Airflow, Argo Workflows
Планировщики заданий — Quartz, Apache Oozie, Kubernetes CronJobs
Облачные провайдеры — AWS, Azure, Google Cloud Platform
Безсерверные платформы — AWS Lambda, Azure Functions, Google Cloud Functions
🔸Коммуникация
Удалённый вызов процедур (RPC) — вызов функции на удалённой машине
Обмен сообщениями — асинхронное взаимодействие между нодами
- Очереди сообщений (Point-to-Point) — RabbitMQ, Amazon SQS
- Брокеры сообщений (Publish-Subscribe) — Kafka, Apache Pulsar
REST — язык запросов для API с точечным доступом к данным
GraphQL — TLS/SSL, HTTPS, SSH
gRPC — высокопроизводительный RPC с использованием Protocol Buffers
Webhooks — автоматические уведомления при определённых событиях
🔸Координация и консенсус
Алгоритмы консенсуса — Paxos, Raft
Распределённые блокировки — ZooKeeper, etcd
Распределённые транзакции — двухфазный коммит (2PC)
Выбор лидера — выбор координатора
Протокол госсипа — децентрализованное распространение информации
