Ruby, PostgreSQL, Rails и DevOps — это мощный стек технологий для создания надежных и масштабируемых веб-приложений. В этой статье разберем ключевые аспекты работы с этими инструментами: от оптимизации запросов к базе данных до автоматизации развертывания с помощью современных DevOps-практик. Вы узнаете, как эффективно сочетать эти технологии для построения производительных и отказоустойчивых систем.
🌀 Идемпотентность
Определение: вызов функции с одним и тем же аргументом всегда даёт один и тот же результат и не меняет состояние при повторе.
Пример:
DELETE /users/42 — удаляет пользователя. Второй вызов — просто вернёт 404, не создавая хаоса.
Хорошо: потому что запрос можно повторить без страха.
🕰️ Латентность
Определение: время от запроса до получения первого байта ответа.
Пример: если сервер отвечает за 200ms, то латентность — 200ms.
📦 Пропускная способность (throughput)
Определение: сколько операций система может выполнить за единицу времени.
Пример: «Обслуживаем 5000 запросов в секунду» — это про throughput.
🧬 Распределённая система
Определение: система, где компоненты работают на разных машинах, но координируются как одно целое.
Пример: Kubernetes, Kafka, Redis Cluster.
🛠️ Абстракция
Определение: способ скрыть детали и оставить только важное.
Пример: ActiveRecord скрывает SQL — ты работаешь с User.find.
📚 Консистентность
Определение: данные в системе не конфликтуют, все видят одно и то же (или гарантировано согласованное).
Варианты: strong, eventual, causal consistency.
🧱 Мьютекс (mutex)
Определение: механизм, чтобы только один поток мог выполнить критическую секцию кода.
Пример: Mutex.new.synchronize { ... } в Ruby.
🪝 Хук (hook)
Определение: точка в системе, куда можно вставить кастомный код.
Пример: before_save, after_commit в Rails.
📤 Обратный вызов (callback)
Определение: функция, которая вызывается после какого-то события.
Пример: on_success { ... } в API-запросе.
⚖️ Балансировка нагрузки (load balancing)
Определение: распределение входящего трафика между несколькими инстансами сервиса.
Пример: NGINX, HAProxy, ALB.
📌 TODO: Добавим ещё терминов:
- CAP-теорема
- Согласованность и доступность
- CQRS
- Eventual consistency
- RPC и REST
- Семафоры
- Рейтлимитинг
- Retry и exponential backoff
- Sticky sessions
- Circuit breaker
…