Глоссарий сложных технических слов простыми словами

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

🗓 Дата публикации: 09.01.2025, но это не точно...

Ruby PostgreSQL Rails DevOps веб-приложения оптимизация