Загрузка

DevLog

Заметки о веб-разработке, архитектуре, оптимизации и инструментах. Пишу о том с чем сталкиваюсь в реальных проектах.

67

статей

11

категорий

616

минут на чтение

Категории Все Битрикс24 (8) C++ (12) Joomla (2) DevOps (7) Kotlin (26) WordPress (3) MODX (2) Laravel (2) PHP (3) OpenCart (1) Плагины (1)

Terraform vs Pulumi — Infrastructure as Code для Kotlin-команды

Сравниваем Terraform на HCL и Pulumi на Kotlin для управления Kubernetes-инфраструктурой — с реальными примерами кода, болью миграции и нашим итоговым выбором.

Terraform Pulumi Kotlin IaC DevOps Kubernetes

Nginx + PHP-FPM: тюнинг под высокую нагрузку — от 500 RPS до 5000 RPS

Сайт на PHP + Nginx выдерживал 500 RPS, а при 1000 начинал отдавать 502. Проблема была не в PHP-коде (он был оптимизирован), а в конфигурации Nginx и PHP-FPM: неправильный worker_connections, отсутствие keepalive к upstream, слишком маленький pm.max_children. Рассказываю пошагово, как мы увеличили пропускную способность в 10 раз.

Nginx PHP-FPM Тюнинг Производительность Оптимизация High Load

Gradle Kotlin DSL: кэширование и configuration avoidance — ускоряем сборку

Сборка Kotlin-проекта занимала 6 минут. После включения build cache, configuration cache и перехода на configuration avoidance API — 45 секунд. Рассказываю, что именно мы сделали, почему большинство туториалов по ускорению Gradle не работают, и как измерять реальный эффект от каждой оптимизации.

Gradle Kotlin Build Cache Configuration Cache CI/CD Оптимизация

GitHub Actions vs GitLab CI — CI/CD для Kotlin-проекта

Переносили CI/CD с GitLab на GitHub Actions. Обе системы решают одни задачи, но подход к кэшированию, параллелизму и reuse workflows принципиально разный. В GitLab всё построено вокруг .gitlab-ci.yml и runners. В GitHub Actions — вокруг reusable workflows и marketplace actions. Рассказываю, что лучше для Kotlin-проекта с тестами, Docker-образами и деплоем в Kubernetes.

GitHub Actions GitLab CI CI/CD Kotlin Kubernetes Docker

Kubernetes health checks: как мы потеряли трафик из-за readiness probe

Микросервис работал нормально, но Kubernetes периодически убирал его из балансировщика. Пользователи видели 503. Оказалось, readiness probe проверял подключение к PostgreSQL, и при кратковременных просадках БД (backup, vacuum) сервис становился «не готовым». Рассказываю, как правильно настроить health checks в Kubernetes, чтобы не терять трафик из-за сторонних проблем.

Kubernetes Health Checks Readiness Probe Liveness Probe Микросервисы Docker

Docker + Kotlin: оптимизация Dockerfile для микросервисов — от 800 МБ до 50 МБ

Базовый Dockerfile для Spring Boot на Kotlin — 800 МБ. После оптимизации — 50 МБ. Разбираю multi-stage builds, GraalVM native image, Alpine vs distroless, jlink для кастомной JRE и реальные метрики по времени сборки, cold start и memory footprint.

Docker Kotlin GraalVM Kubernetes DevOps CI/CD Микросервисы