Технический журнал Александра Хохлова

Инженерный журнал об инфраструктуре и backend

Заметки об IT и жизни. Docker, Go, инфраструктура и не только.

Личный инженерный журнал: инфраструктура, backend, домашняя лаборатория и накопленный практический опыт.

Последние публикации

Когда нужен OLAP: ClickHouse против PostgreSQL для аналитики

Когда нужен OLAP: ClickHouse против PostgreSQL для аналитики

Чем OLAP-нагрузка отличается от OLTP, как колоночное хранение и векторное исполнение делают ClickHouse быстрым на аналитике, в какой момент PostgreSQL перестаёт тянуть агрегаты по большим таблицам — и где ClickHouse категорически не подходит

Паттерны и антипаттерны индексирования

Паттерны и антипаттерны индексирования

Что делать и чего избегать с индексами: over-indexing и write-amplification, неиспользуемые и дублирующие индексы, bloat и обслуживание, covering под горячие запросы, online-создание без блокировок, индексы под пагинацию — и антипаттерн «индекс на всё»

Мульти-хранилищный стенд: один сценарий по всем БД и карта выбора

Мульти-хранилищный стенд: один сценарий по всем БД и карта выбора

Финал серии: единый сценарий (списание с инвариантом «баланс не в минус») реализован поверх PostgreSQL, Redis, MongoDB и ScyllaDB и прогнан одним нагрузчиком. Что каждая система гарантирует из коробки, что ломается под конкуренцией, цена корректности — и итоговая карта выбора

Брокеры и стриминг: транзакции в очереди и логе — RabbitMQ и Kafka

Брокеры и стриминг: транзакции в очереди и логе — RabbitMQ и Kafka

Что значит «транзакция» в брокере: AMQP-транзакции RabbitMQ против publisher confirms, транзакционный producer и exactly-once в Kafka, consume-process-produce и read_committed, границы EOS и outbox-паттерн как мост к БД. Примеры на Go и Java

В работе

Ближайшие материалы, которые готовятся к публикации.

Инфраструктура

Docker-хосты в Proxmox: LXC или VM

Разбор первого практического выбора для домашней лаборатории и небольших стендов.

Go

Конфигурация через env без хаоса

Как выстроить понятную и предсказуемую конфигурацию сервиса без расползания параметров.

Architecture

Consensus Landscape

Материал вокруг проекта и карты подходов к консенсусу в распределённых системах.

Хранилища

Распределённые хранилища: карта

Карта серии о распределённых хранилищах: объектное, файловое и блочное, место S3 и HDFS.

Разделы

Основные направления сайта. Живые разделы с материалами идут первыми, новые направления ниже как задел на рост.

Java

Java, JVM, контейнеризация, производительность и практики эксплуатации

3 статей +2

Базы данных

PostgreSQL, Redis, ClickHouse, MongoDB и другие системы хранения данных

18 статей +9

Сообщения

Kafka, NATS, RabbitMQ и практики построения асинхронных систем

16 статей +1

Performance

Низкая задержка и высокая пропускная способность: бюджет времени, транспорт, балансировка, пулы соединений

6 статей +1

Безопасность

Изоляция и песочницы, hardening, модель угроз и практическая защита сервисов и рабочего окружения

3 статей +1

Архитектура

Системный дизайн, интеграционные паттерны, аналитика и инженерные trade-offs

27 статей

Go

Язык Go: паттерны, инструменты, практики

9 статей

Rust

Rust для сервисов, контейнеризация, observability и надёжная backend-разработка

5 статей

Инфраструктура

Proxmox, Terraform, Ansible, Vault, HAProxy, Angie, сети и базовые платформенные практики

10 статей

Наблюдаемость

OTEL, Vector, OpenSearch, VictoriaMetrics, Zabbix, логи, метрики и трейсы

2 статей

Docker

Контейнеризация, best practices, мультистейдж-сборки

7 статей

Kubernetes

Kubernetes, Talos, ArgoCD, GitOps и эксплуатация кластеров

2 статей

AI

AI для backend-инженера: LLM в проде, эмбеддинги и RAG, локальный инференс, tool use и AI-агенты.

1 статей

Инструменты

Рабочие инструменты инженера: Git от первого коммита до команды, настройка окружения, диаграммы как код (LikeC4).

3 статей

Скоро появятся

Scala

Функциональный backend на Scala 3: Cats Effect и ZIO, http4s, Akka/Pekko, Doobie и Quill, Spark и production-практики на JVM.

0 статей

C#

C# и .NET для backend: ASP.NET Core, async/await, доступ к данным, gRPC и messaging, упаковка, профилирование и эксплуатация.

0 статей

C++

Современный C++ для backend: корутины и Asio, CMake и пакетные менеджеры, HTTP-сервисы, профилирование и production-практики.

0 статей

Python

Python для backend, данных и автоматизации: типизация, async, веб-фреймворки, упаковка и производительность

0 статей

TypeScript / Node

TypeScript и Node.js для backend: типовой слой, event loop, веб-фреймворки, данные, упаковка и рантаймы (Node/Deno/Bun)

0 статей

Zig

Zig как современная замена C: философия, comptime, явные аллокаторы, C-interop и позиционирование среди системных языков

0 статей

Игровые серверы

Боты, античит и эксплуатация игровых серверов со стороны оператора и комьюнити: серверные AI-боты, детект читов, честная игра и наблюдаемость

0 статей

Мобильные клиенты

Бэкенд для мобильных приложений: авторизация и хранение токенов, push-уведомления, API и BFF, offline-first и синхронизация

0 статей

От кода до прода

Сквозные капстон-проекты: собираем реальный сервис через весь стек — код, данные и события, контейнеры и CI/CD, Kubernetes, наблюдаемость и эксплуатация

0 статей

Фото и игры

Личное вне IT: фотография (Canon, Nikon, Sony), история игровых проектов и турниров, как всё это менялось со временем

0 статей

Хранилища

Распределённые хранилища: объектное хранилище и S3, реализации после MinIO, HDFS, построение своего CDN

0 статей

Языки

Языки программирования как явление: теория вычислимости, выразительность, кросс-языковые сравнения и то, что стоит за синтаксисом

0 статей