MAATRIX / Блог

Блог MAATRIX

Практические статьи о VPS и выделенных серверах: выбор конфигурации, настройка приложений, перенос проектов, безопасность и резервные копии.

Гайды

Антипаттерн: вся инфраструктура держится на одном человеке

Bus factor равным единице: вся инфраструктура компании держится на одном человеке. Разбираем риски отпуска, болезни, увольнения и как их снизить.

Гайды

Антипаттерн: все бэкапы у одного провайдера

Антипаттерн «все бэкапы у одного провайдера»: почему сбой, блокировка аккаунта или банкротство хостера уничтожат прод и копии разом. Схема диверсификации.

Гайды

Антипаттерн: тюнинг ядра по чужому конфигу с форума

Почему копировать sysctl.conf с форума на свой сервер опасно, и как менять параметры ядра осмысленно — по одному и с измерением эффекта.

Гайды

Антипаттерн: токены и персональные данные в логах

Токены и персональные данные в логах — утечка мимо защиты БД. Маскирование полей, аудит и отдельный доступ к логам. Оплата из России картой или криптой.

Гайды

Антипаттерн: SRE-процессы в команде из двух человек

Error budgets, SLO на каждый сервис, формальный post-mortem — SRE-процессы для сотен инженеров в команде из двух съедают время вместо экономии. Что оставить.

Гайды

Антипаттерн: спрятать админку по секретному адресу

Почему перенос /admin на секретный URL вместо пароля не защищает сервер — сканеры находят такие пути за часы. Оплата из России картой или криптой.

Гайды

Антипаттерн: состояние приложения внутри контейнера

Сессии, файлы и кэш внутри контейнера пропадают при пересоздании и ломают масштабирование. Разбираем, куда выносить состояние. Оплата из России картой или криптой.

Гайды

Антипаттерн: скрипт вместо документации

Bash и Ansible фиксируют, что делает сервер, но не почему. Разбор антипаттерна и того, что стоит писать рядом с автоматизацией. Оплата из России картой или криптой.

Гайды

Антипаттерн: брать сервер «с запасом на три года вперёд»

Почему покупка сервера с трёхлетним запасом мощности почти всегда переплата, а не забота о будущем. Разбор ошибки и альтернатива. Оплата из России картой или криптой.

Гайды

Антипаттерн: собирать образ прямо на боевом сервере

Docker build на проде отнимает ресурсы у трафика и даёт несогласованные образы. Разбираем риски и переход на сборку в CI с деплоем неизменяемого артефакта. Оплата картой или криптой.

Гайды

Антипаттерн: самоподписанный сертификат «для внутренних сервисов»

Самоподписанный сертификат приучает команду кликать «Продолжить» не глядя. Риски и бесплатная замена: ACME DNS-01 или свой CA. Оплата из России картой/криптой.

Гайды

Антипаттерн: плейбук Ansible, который никто не запускал полгода

Антипаттерн: плейбук Ansible полгода лежит без прогона — при аварии выясняется, что он не работает. Разбор config drift и почему нужен idempotency check. Оплата из России картой или криптой.

Гайды

Антипаттерн: писать в лог всё подряд на всякий случай

Антипаттерн избыточного логирования — когда в продакшн пишут каждый шаг и все входные данные "на всякий случай". Почему это вредит, а не помогает.

Гайды

Антипаттерн: переезд в облако без смены архитектуры

Lift-and-shift переносит монолит в облако «как есть», не давая ни масштабируемости, ни экономии. Оплата из России картой или криптой.

Гайды

Антипаттерн: одна база данных на все проекты компании

Одна СУБД на все проекты экономит на старте, но чужой плохой запрос кладёт и вас. Разбираем риски shared-инстанса и рабочий компромисс по изоляции.

Гайды

Антипаттерн: один VPN-конфиг на всю команду

Общий VPN-конфиг на всю команду — удобно сначала и опасно потом. Разбираем, почему так делать нельзя, и как раздать индивидуальные ключи правильно.

Гайды

Антипаттерн: очередь сообщений там, где хватило бы cron

RabbitMQ или Kafka под задачу «раз в час обработать новые записи» — это лишний сервис, а не надёжность. Разбираем, когда очередь нужна, а когда хватит cron.

Гайды

Антипаттерн: общий root-пароль на всю команду

Общий root-пароль на команду — удобно поначалу и опасно потом. Разбираем, почему теряется аудит, как правильно настроить именные доступы через sudo и SSH-ключи.

Гайды

Антипаттерн: обновлять всё разом раз в год

Антипаттерн «большого обновления» раз в год: разрыв версий, неразбираемые поломки, месяцы без патчей безопасности. Оплата из России картой или криптой.

Гайды

Антипаттерн: нагрузочное тестирование на ноутбуке разработчика

Почему нагрузочный тест, запущенный с домашнего ноутбука, врёт о реальной производительности сервиса — сеть, CPU и близость к цели искажают цифры.

Гайды

Антипаттерн: на сервере тот же дистрибутив, что на десктопе

Почему ставить на сервер тот же Linux, что стоит на рабочем ноутбуке — плохая идея: лишние пакеты, поверхность атаки, чужие настройки по умолчанию. Оплата из России картой или криптой.

Гайды

Антипаттерн: мониторинг на том же сервере, что и продакшен

Мониторинг живёт на одном хосте с продом — и молчит именно в момент, когда сервер падает целиком. Разбор антипаттерна. Оплата из России картой или криптой.

Гайды

Антипаттерн: масштабировать раньше, чем найдено узкое место

Почему добавление серверов при тормозах приложения часто не помогает, а лечит симптом вместо причины. Оплата из России картой или криптой.

Гайды

Антипаттерн: кешировать персональные страницы целиком

Кеш CDN или reverse proxy отдаёт HTML личного кабинета одного пользователя другому. Разбираем причину, Cache-Control, fragment caching и тестирование.

Гайды

Антипаттерн: кеш без стратегии инвалидации

Кеш без плана сброса устаревших данных — путь к stale data и неуловимым багам. Разбираем TTL, event-based инвалидацию и версионирование ключей. Оплата из России картой или криптой.

Гайды

Антипаттерн: ИИ-агент с полным доступом к продакшену

Разбор антипаттерна "ИИ-агент с root-доступом к проду": непредсказуемость модели, деструктивные команды без ревью, prompt injection и как настроить безопасно.

Гайды

Антипаттерн: хранить картинки и файлы в базе данных

Почему BLOB-поля с файлами раздувают базу, тормозят бэкапы и ломают кэширование — и как хранить файлы правильно. Оплата из России картой или криптой.

Гайды

Антипаттерн: дообучать модель там, где хватило бы промпта

Fine-tuning без нужды съедает недели на датасет и обучение там, где закрыл бы вопрос обычный системный промпт. Разбираем иерархию: промпт → RAG → дообучение.

Гайды

Антипаттерн: docker compose down при каждом обновлении

Docker compose down перед каждым up роняет сервисы, которые не менялись, и рискует данными в volumes. Правильный подход — docker compose up -d и --no-deps.

Гайды

Антипаттерн: автообновления везде и без бэкапа

Автообновления без бэкапа перед ними и контроля после — это не автоматизация, а отложенный инцидент. Разбираем риски и рабочий баланс между security-патчами и стабильностью.

Гайды

Антипаттерн: архитектура Netflix для проекта на 200 пользователей

Зачем проекту на 200 пользователей микросервисы, очередь сообщений и пять специализированных баз данных? Разбор антипаттерна и принципа соразмерности архитектуры.

Гайды

Антипаттерн: алерт на каждый скачок нагрузки

Алерт на любое отклонение CPU от нормы рождает шум и усталость команды. Как настроить пороги по длительности и SLO. Оплата из России картой или криптой.

DevOps

Ansible прогнали не на той группе хостов: 20 машин получили чужой конфиг

Разбор инцидента — как объединение ansible-инвентарей прод и стейджинга привело к тому, что 20 боевых серверов получили чужой конфиг. Оплата из России картой или криптой.

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

Ansible-плейбуки под отечественные ОС: что придётся переписать

Что в Ansible-плейбуках под Ubuntu ломается на Astra Linux, РЕД ОС и ALT Linux — пакетный менеджер, пути, пакеты, facts. Оплата из России картой или криптой.

Гайды

Аналитик грузит выгрузку на 40 ГБ в Excel: сервер вместо мучений

Выгрузка на 40 ГБ не открывается в Excel: лимит строк, нехватка памяти. Обработка на сервере с pandas и DuckDB. Оплата из России картой или криптой.

Оплата

Амортизация серверного железа: как считать срок жизни честно

Бухгалтерский срок амортизации сервера редко совпадает с реальным. Как честно оценить срок жизни железа и не ошибиться с бюджетом. Оплата картой или криптой.

Базы данных

ALTER TABLE на 200 миллионов строк заблокировал прод на сорок минут

Почему ALTER TABLE на большой таблице может сам по себе идти десятки минут под эксклюзивной блокировкой и как проверить это заранее. Оплата из России картой или криптой.

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

ALT Linux и apt-rpm: почему привычные команды ведут себя иначе

ALT Linux использует apt-rpm — apt поверх RPM, а не DEB. Почему привычные команды и флаги дают не тот результат и где искать документацию под ALT.

Гайды

Как алгоритм Нейгла добавляет вашему API ровно 40 миллисекунд

Разбираем, как алгоритм Нейгла конфликтует с delayed ACK и добавляет фиксированную задержку запрос-ответным API. Что такое TCP_NODELAY и когда его включать.

DevOps

Алерт ушёл в чат, который никто не открывал четыре месяца

Разбор инцидента про мониторинг, который честно отправлял алерты — но в мёртвый чат. Почему так бывает и как проверить, что уведомления реально доходят.

Гайды

Аккаунт хостинга на личной почте сотрудника: чем это заканчивается

Хостинг компании зарегистрирован на личном email сотрудника — риски при увольнении, взломе почты и конфликте. Как оформлять инфраструктуру верно с начала.

Гайды

Агрофирма: датчики в полях шлют данные в облако вендора — забираем поток себе

Датчики в полях шлют телеметрию в облако производителя — а не вам. Разбираем, как поставить свой сервер приёма данных. Оплата из России картой или криптой.

Гайды

Агентство доросло до тридцати клиентских сайтов: пора съезжать с чужих хостингов

Когда агентству с 30+ клиентскими сайтами на разных хостингах пора на свою инфраструктуру: экономика, риски и план поэтапной миграции. Оплата из России.

Гайды

Почему шифрование перестало нагружать процессор и что изменилось внутри него

Почему TLS почти не грузит CPU сервера — аппаратный AES-NI, лёгкие современные шифры и где реально уходит время запроса. Оплата из России картой или криптой.

Гайды

Адвокатская тайна и облачный диск: почему это плохо кончается

Материалы дела в публичном облаке лежат на чужой инфраструктуре, а не в приватной папке. Разбираем, почему свой сервер — более защищаемая позиция. Оплата из России картой или криптой.

Гайды

Админ уволился и унёс доступы: как вернуть контроль над своей инфраструктурой

Ключевой администратор ушёл и не отдаёт пароли. Как договориться, какие есть юридические основания и как больше не зависеть от одного человека.

Гайды

Администратор ушёл и забрал доступы: возвращаем контроль над своей инфраструктурой

Единственный технарь ушёл, а пароли от хостинга, домена, репозиториев и платёжных аккаунтов остались только у него. Пошаговый план возврата контроля.

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

Админ ушёл со всеми паролями: план возврата контроля

Единственный админ уволился, а root, панель хостинга и домен были только у него. Пошаговый план восстановления доступа и как это не повторить.

Настройка

ActivityWatch на своём сервере: учёт времени, который бьёт по доверию

ActivityWatch — открытый трекер активности без скриншотов и кейлоггера. Как поднять его на своём сервере и почему честный учёт всё равно может подорвать доверие в команде.

Железо

65 535 портов — миф о потолке: сколько исходящих соединений вы откроете на самом деле

65 535 — это диапазон портов на одном IP для исходящих соединений к одному адресу, а не потолок сервера. Считаем реальный лимит и как его раздвинуть.

DevOps

Каждые 50 мс задержки: как выбор локации сервера отражается на заказах в магазине

Как задержка сервера связана с конверсией интернет-магазина и почему выбор локации дата-центра — архитектурное решение, а не мелочь. Оплата из России картой или криптой.

DevOps

Загрузка 20%, а очередь на CPU росла: нашли лимит в cgroup

Мониторинг показывал CPU 20%, а запросы всё равно копились в очереди. Разбор инцидента с CFS quota в cgroup — почему усреднённый процент врёт.

DevOps

База выросла вдвое за ночь: забытый слот репликации не давал чистить WAL

Разбор инцидента — за ночь диск под PostgreSQL заполнился вдвое из-за забытого слота репликации. Как нашли причину через pg_replication_slots и починили. Оплата из России картой или криптой.

DevOps

Временные файлы сортировки заполнили диск базы за четыре минуты

Как один тяжёлый запрос без индекса и work_mem по умолчанию за четыре минуты забил диск PostgreSQL временными файлами сортировки. Оплата из России картой или криптой.

DevOps

Внутренний CA протух через десять лет и остановил обмен между сервисами

Разбор инцидента с истёкшим корневым CA в mTLS-инфраструктуре: почему за 10 лет никто не заметил проблему и как настроить мониторинг сертификатов правильно. Оплата серверов из России картой или криптой.

DevOps

VLAN повесили не туда, и прод два часа жил в тестовой сети

Разбор инцидента с изоляцией сетей: порт коммутатора назначили не на тот VLAN, и продакшн-сервер оказался в тестовом сегменте. Оплата из России картой или криптой.

DevOps

Убрали промежуточный сертификат — и мобильное приложение отвалилось

Мобильное приложение перестало подключаться к API после планового обновления SSL. Разбираем, как пропавший промежуточный сертификат ломает TLS для мобильных клиентов.

DevOps

У регистратора остались NS прошлого подрядчика: домен разъехался

Почему часть посетителей видела старый сайт, а часть — новый, после смены DNS-подрядчика. Разбор делегирования NS, лишних записей у регистратора и чек-лист миграции.

DevOps

TTL 86400 превратил пятиминутный переезд в двухдневный

Разбор реального инцидента с DNS TTL при переезде на новый сервер — почему смена A-записи растянулась на двое суток и как готовить TTL заранее.

DevOps

Три недели ловили тормоза, а мы просто стояли в очереди за чужим CPU

Задержки API не совпадали с нагрузкой внутри VPS. Разбираем инцидент со steal time — как понять, что сервер простаивает в очереди за чужим CPU, и что с этим делать.

DevOps

Transparent Huge Pages удвоили задержки базы, и никто не понимал почему

Разбор инцидента — как Transparent Huge Pages удвоили p99-задержки PostgreSQL на новом сервере. Логи, гипотезы, реальная причина и фикс. Оплата из России картой или криптой.

DevOps

tmpfs на /run вырос до 8 ГБ и положил сервер за сутки

Память кончалась сутки, ни один процесс не выглядел виновником, а причиной оказался tmpfs на /run. Разбор инцидента, мониторинг и защита от повтора.

DevOps

Тег latest подтянул новую версию ночью, и API начал отдавать 500

Разбор инцидента — API упал в 3 ночи без единого деплоя. Как искали причину и почему виноват был тег latest в docker-compose. Оплата сервера из России картой или криптой.

Железо

Свободно 40%, а запись встала: фрагментация пула ZFS

ZFS показывает 40% свободного места, а запись всё равно тормозит. Разбираем фрагментацию пула, метрику zpool list и порог 80% заполнения.

DevOps

Старые Android перестали открывать сайт после смены корневого центра

Старые Android перестали открывать сайт после обновления сертификата — разбор цепочки доверия и корневых CA. Оплата из России картой или криптой.

Железо

Снапшоты делали каждый час — через месяц пул перестал принимать запись

Настроили автоматические снапшоты ZFS каждый час, но забыли ротацию — через месяц пул заполнился и отказал в записи. Разбор причины. Оплата картой или криптой.

DevOps

Сменили collation — и уникальные индексы перестали быть уникальными

Разбор инцидента с PostgreSQL — после планового обновления ОС уникальный индекс перестал ловить дубли из-за смены сортировки glibc. Оплата из России картой или криптой.

Гайды

Скопировали 2 ТБ и потеряли права доступа: rsync без одного флага

rsync перенёс 2 ТБ файлов без ошибок, но приложение перестало их читать — разбор причины: владелец и группа не сохранились. Оплата из России картой или криптой.

DevOps

Скачки задержки ровно в 03:15: бэкап соседа забивал общий аплинк

Сеть каждую ночь проседала ровно в 03:15 без видимой причины. Разбираем, как бэкап соседа по узлу забивал общий канал VPS. Оплата картой или криптой из России.

DevOps

Сервер замирал на 12 секунд каждые шесть часов: сборка мусора JVM

Java-сервис зависал на 12 секунд каждые шесть часов, а CPU и диск молчали. Разбираем, как нашли Full GC по логам и почему куча не справлялась с нагрузкой.

DevOps

Сервер с 64 ГБ ушёл в своп из-за одного лимита в systemd

Сервис активно уходил в своп при полусвободных 64 ГБ RAM. Разбор инцидента — как cgroups и MemoryMax в systemd режут память отдельному юниту. Оплата из России картой или криптой.

DevOps

Сертификат обновлялся, а nginx не перечитывал его 60 дней

Certbot продлевал сертификат исправно, но nginx отдавал старый файл. Разбираем инцидент по логам и находим неисполняемый deploy-hook. Оплата сервера картой или криптой из России.

DevOps

Счётчик автоинкремента упёрся в потолок и заказы перестали создаваться

Разбор реального инцидента с INT-переполнением id в MySQL: как заказы перестали создаваться, что проверяли и как перевели таблицу на BIGINT без долгого простоя.

DevOps

Сборка прошла, тесты прошли, а на прод уехал прошлый коммит

Разбор гонки двух CI/CD пайплайнов: у нового коммита всё зелёное, а на проде — старый код. Почему так бывает и как это исправить. Оплата из России картой или криптой.

DevOps

Сайт жил по IPv4 и молчал по IPv6: полгода теряли часть аудитории

Сайт полгода работал только по IPv4 — без AAAA-записи часть аудитории через CGNAT получала более медленный доступ. Оплата картой или криптой из России.

DevOps

Ретрансмиты 8%: виновником оказался один патч-корд в стойке

Сервис тормозил без единой ошибки в логах, CPU и память были в норме. Разбор нашёл 8% ретрансмитов TCP — причина оказалась физической: битый патч-корд.

DevOps

Реплика отстала на 6 часов из-за одной длинной транзакции на мастере

Реплика PostgreSQL молчала полдня, хотя сеть и слот были в порядке. Разбираем, как одна транзакция без батчей забила очередь WAL. Оплата картой или криптой.

DevOps

Redis рос до самого перезапуска: забыли про maxmemory-policy

Redis рос без остановки, а ночной рестарт скрывал утечку месяцами. Разбираем инцидент: maxmemory-policy, потерянный лимит и как поймать это в метриках.

DevOps

Приватный реестр протух, и кластер не поднял ни один под

Разбор инцидента: почему после планового рестарта нод ни один под не поднялся. Виноват просроченный robot-аккаунт Harbor. Оплата из России картой или криптой.

DevOps

В момент деплоя два экземпляра приложения не влезли в лимит контейнера

Почему деплой валит сервис, а до и после всё работает: rolling update держит старую и новую версию разом, лимит памяти контейнера не выдерживает.

DevOps

После переезда всё стало вдвое медленнее: у нового CPU отключили турбо

Разбор инцидента — миграция на более мощный по паспорту сервер удвоила задержки. Причина нашлась в BIOS, а не в коде. Оплата из России картой или криптой.

DevOps

Половина клиентов не могла загрузить файл больше мегабайта

Разбор инцидента — часть клиентов не могла загрузить файл больше мегабайта, у остальных всё работало. Причина в MTU и заблокированном ICMP, а не в коде.

DevOps

Письма уходили в спам только у клиентов Outlook: разбор одного заголовка

SPF, DKIM и DMARC проходили, но письма на Outlook.com и Microsoft 365 стабильно падали в «Спам». Разбор инцидента: виноват был один заголовок — Message-ID.

DevOps

Пинг был 12 мс, а соединение вставало 3 секунды: виноват оказался IPv6

Разбор инцидента — ping 12 мс, но HTTP-соединение висло 3 секунды. Причина в Happy Eyeballs и битом IPv6. Оплата из России картой или криптой.

DevOps

PID 1 не пересылал сигналы, и каждый деплой ронял запросы клиентов

Docker слал SIGTERM, а контейнер не реагировал — оболочка-PID1 не пересылала сигнал процессу. Разбор инцидента: почему деплой стабильно ронял запросы 10 секунд.

DevOps

pgBouncer в режиме transaction сломал подготовленные запросы

Разбор реального инцидента с pgBouncer в transaction pooling и prepared statements в PostgreSQL. Причина, диагностика, рабочий фикс. Оплата из России картой или криптой.

DevOps

Отключили TLS 1.0 и вместе с ботами потеряли платёжный шлюз

Разбор инцидента с логами nginx и tcpdump — почему после отключения TLS 1.0/1.1 перестали приходить колбэки от эквайера и как исправили без отката хардненинга.

DevOps

Одна опечатка в SPF положила рассылку на неделю

Разбор реального инцидента - опечатка в одном include SPF-записи обрушила доставку почты на неделю. Логи, ложные версии и найденная причина.

DevOps

Один запрос без LIMIT положил реплику, а вместе с ней все отчёты

Разбор реального инцидента с PostgreSQL: запрос без LIMIT забил диск реплики временными файлами и остановил все отчёты. Как нашли причину и защитились. Оплата из России картой или криптой.

DevOps

Один клиент открыл 60 тысяч соединений и убил NAT на шлюзе

Разбор инцидента — как один клиент открыл 60 000 соединений, забил таблицу conntrack и оборвал сеть для всех остальных. Диагностика, фикс, защита на будущее.

DevOps

OCSP-ответчик у центра сертификации лёг, и сайт открывался 9 секунд

Разбор инцидента — сайт грузился 9 секунд без нагрузки на сервер. Причина в упавшем OCSP-ответчике CA и в том, как проверить и настроить OCSP stapling в nginx.

DevOps

Обрывы каждые десять минут: keepalive балансировщика был короче клиентского

Долгие соединения рвались строго по таймеру — разбираем инцидент с идентичным интервалом обрывов и находим рассинхрон idle timeout между звеньями цепи. Оплата из России картой или криптой.

DevOps

Мониторинг показывал 30% диска, а приложение писало «нет места»

Разбор инцидента — df -h честно показывает свободное место, а сервис получает No space left on device. Как inode ломают привычный мониторинг диска.

DevOps

Митигации Spectre съедали 30% производительности базы

Задержки PostgreSQL выросли на 30% после планового обновления ядра — разбираем, как retpoline и KPTI бьют по syscall-тяжёлым базам. Оплата из России картой или криптой.

DevOps

Миграция добавила одну колонку и заблокировала таблицу на 11 минут

Разбор инцидента — ALTER TABLE ADD COLUMN заблокировал таблицу Postgres на 11 минут. Почему быстрая миграция встала в очередь блокировок и как это исправили.

DevOps

Лимит в 512 МБ убивал контейнер ровно на пятый день работы

Контейнер с лимитом 512 МБ падал не от нагрузки, а от медленной утечки в коде — разбор по логам, метрикам и heap snapshot. Оплата из России картой или криптой.

DevOps

latin1 в MySQL испортил 300 тысяч имён, и мы заметили только через год

Разбор инцидента — колонка name осталась в latin1, MySQL тихо превращал кириллицу в «?», данные исчезали до бэкапа. Оплата из России картой или криптой.

DevOps

ksoftirqd на 100%: все прерывания сети сидели на одном ядре

Разбор инцидента: ksoftirqd съел ядро целиком из-за сетевых прерываний на одном CPU. Как нашли причину и распределили нагрузку по ядрам.

DevOps

Кривой анонс BGP у аплинка увёл наш трафик в Бразилию

Разбор реального инцидента — опечатка в BGP-анонсе у транзитного оператора увела трафик части клиентов через другой континент. Оплата из России картой или криптой.

DevOps

Кеш отрицательных ответов держал сайт мёртвым ещё час после починки

Разбор инцидента с DNS: сайт чинили за минуты, но часть посетителей видела NXDOMAIN ещё час — виноват был кеш отрицательных ответов. Оплата из России картой или криптой.

DevOps

Каждую ночь падал не тот процесс: разбираемся с oom_score_adj

OOM killer каждую ночь убивал не самый прожорливый процесс, а важный сервис. Разбор инцидента: как oom_score_adj подставляет жертву вместо виновника.

DevOps

Jumbo frames включили на половине пути: файлы копировались, база отваливалась

Разбор инцидента с MTU 9000 во внутренней сети — почему копирование файлов работало, а подключения к базе рвались. Оплата из России картой или криптой.

DevOps

Индекс был, но планировщик его не брал: статистика устарела на два месяца

Разбор инцидента с PostgreSQL — планировщик игнорировал рабочий индекс и ушёл в Seq Scan из-за устаревшей статистики. Оплата из России картой или криптой.

DevOps

Контейнер жил, а приложение внутри было мертво: healthcheck проверял не то

Docker показывал контейнер healthy, а API отдавал 504 по всем запросам: healthcheck проверял не то. Разбор инцидента и настройка readiness для VPS.

DevOps

Headless Chrome съел 300 ГБ временными файлами за одну ночь

Headless Chrome копит профили в /tmp при каждом запуске и может забить весь диск за ночь. Разбор инцидента и защита. Оплата из России картой или криптой.

DevOps

Governor стоял в powersave: полгода сервер работал на половине частоты

Governor CPU застрял в powersave, сервер полгода работал вдвое медленнее, а графики загрузки молчали. Разбираем поиск причины и фикс. Оплата картой или криптой.

DevOps

Форма обратной связи стала открытым релеем: домен забанили за сутки

Необработанное поле email в форме обратной связи превратилось в инъекцию заголовков PHP mail() — и домен попал в чёрные списки меньше чем за сутки.

DevOps

Два сервера писали в один NFS-раздел и получили битые файлы без ошибок

Разбор инцидента — два процесса писали в один файл на NFS, оба отчитались об успехе, а файл оказался испорчен. Почему NFS так делает и как проектировать иначе.

DevOps

Два продукта слали с одного IP: жалобы на один убили доставку второго

Разбираем инцидент — рассылка одного продукта испортила IP-репутацию и увела в спам письма другого сервиса. Оплата из России картой или криптой.

DevOps

Два автоответчика зациклились и сгенерировали 40 тысяч писем за ночь

Разбор инцидента с почтовой петлёй между автоответчиком Sieve и скриптом тикет-системы — что видели в логах Postfix, какие версии отбросили и как поставили заслон навсегда.

DevOps

Docker переписал правила iptables и открыл базу в интернет

UFW показывал deny incoming, а PostgreSQL всё равно был доступен снаружи. Разбираем, как Docker обходит firewall через свои цепочки iptables. Оплата из России картой или криптой.

DevOps

Резолверы уходили в таймаут: DNSSEC сломался после смены ключей

Разбор инцидента с DNSSEC — почему домен перестал открываться у части пользователей после ротации ключей и как избежать этой ошибки. Оплата из России картой или криптой.

DevOps

DNS внутри кластера отвечал 5 секунд: виноват был параметр ndots

DNS-запросы к внешним доменам из подов Kubernetes иногда шли 5 секунд: виноват ndots в resolv.conf. Разбираем причину и фикс. Оплата картой или криптой.

DevOps

DKIM подписывал письма ключом, которого уже не было в DNS

Разбор инцидента, где почтовый сервер честно подписывал письма DKIM, а публичного ключа в зоне уже не было. Как искали причину и что изменили после.

Железо

Диск был здоров по SMART, а данные бились: виновником оказался кабель

Разбор реального инцидента с тихой порчей данных: SMART диска показывал полное здоровье, а причина была в SATA-кабеле. Аренда сервера с оплатой из России картой или криптой.

DevOps

Deadlock каждый вторник: два сервиса брали блокировки в разном порядке

Разбор реального инцидента с deadlock в PostgreSQL по вторникам — как искали причину по логам и pg_locks, и почему помог только единый порядок блокировок. Оплата сервера из России картой или криптой.

DevOps

Данные исчезли после docker compose down: виноват анонимный volume

Разбираем инцидент — после обычного docker compose down база оказалась пустой. Причина в анонимном volume и как её найти и не повторить. Оплата из России картой или криптой.

DevOps

ClickHouse съел всю память сервера на одном GROUP BY

Один GROUP BY по колонке высокой кардинальности положил сервер ClickHouse целиком. Разбираем причину OOM и лимиты памяти. Оплата из России картой или криптой.

Базы данных

База замирала на 15 секунд: разбор фонового TRIM на всём разделе

База данных зависала ровно на 15 секунд по расписанию — разбираем, как периодический TRIM всего раздела блокирует диск. Оплата из России картой или криптой.

Железо

Батарейка RAID-контроллера села, и запись стала в 20 раз медленнее

RAID-контроллер резко замедлил запись, чтение в норме. Причина — разряженная батарея BBU и авто-переход в write-through. Оплата картой и криптой.