⚡️ DevOps Digest #2 | 10.03.2026
🔥 Главное:
1. uutils Coreutils 0.7 – GNU-утилиты на Rust – вышел новый релиз альтернативной реализации coreutils на Rust. Более 100 утилит (sort, cp, chmod, ls и др.) теперь работают кроссплатформенно, включая Windows и Fuchsia. Проект зреет и всё ближе к продакшн-применению.
opennet.ru
2. FreeBSD 14.4 – стабильный релиз – после 9 месяцев разработки вышла новая версия с образами для amd64, aarch64, riscv64 и готовыми сборками для виртуализации (QCOW2, VHD, VMDK). Актуально для тех, кто использует FreeBSD в сетевых устройствах и серверах хранения.
opennet.ru
3. Атака через npm-пакет Cline – 4000 заражённых машин – злоумышленники внедрили скрытую зависимость в package.json популярного ИИ-ассистента. Одна строчка
habr.com
4. Self-hosted дашборд для GitHub Actions – Snorlx – инструмент для централизованного мониторинга CI/CD пайплайнов с обновлениями в реальном времени по всем репозиториям. Разворачивается на своей инфраструктуре, без привязки к внешним сервисам.
https://github.com/banshee86vr/snorlx
5. Открытый сервер для мессенджера MAX и ТамТам – энтузиасты написали на Python собственную реализацию серверной части через обратный инжиниринг протокола. Поддерживает MariaDB, MySQL, SQLite. Код под лицензией BSD – интересный пример импортонезависимого подхода.
opennet.ru
🔍 Безопасность цепочки поставок – проблема не уходит
Инцидент с Cline показывает, что атака через
🛠 Команда дня:
Запрещает выполнение lifecycle-скриптов (preinstall, postinstall, prepare) при npm install.
Это снижает риск supply-chain атак, когда вредоносный пакет запускает код во время установки.
⚠️ Но многие пакеты используют postinstall, поэтому включать стоит осознанно.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
🔥 Главное:
1. uutils Coreutils 0.7 – GNU-утилиты на Rust – вышел новый релиз альтернативной реализации coreutils на Rust. Более 100 утилит (sort, cp, chmod, ls и др.) теперь работают кроссплатформенно, включая Windows и Fuchsia. Проект зреет и всё ближе к продакшн-применению.
opennet.ru
2. FreeBSD 14.4 – стабильный релиз – после 9 месяцев разработки вышла новая версия с образами для amd64, aarch64, riscv64 и готовыми сборками для виртуализации (QCOW2, VHD, VMDK). Актуально для тех, кто использует FreeBSD в сетевых устройствах и серверах хранения.
opennet.ru
3. Атака через npm-пакет Cline – 4000 заражённых машин – злоумышленники внедрили скрытую зависимость в package.json популярного ИИ-ассистента. Одна строчка
postinstall установила стороннего агента с полным доступом к системе. 8 часов до обнаружения.habr.com
4. Self-hosted дашборд для GitHub Actions – Snorlx – инструмент для централизованного мониторинга CI/CD пайплайнов с обновлениями в реальном времени по всем репозиториям. Разворачивается на своей инфраструктуре, без привязки к внешним сервисам.
https://github.com/banshee86vr/snorlx
5. Открытый сервер для мессенджера MAX и ТамТам – энтузиасты написали на Python собственную реализацию серверной части через обратный инжиниринг протокола. Поддерживает MariaDB, MySQL, SQLite. Код под лицензией BSD – интересный пример импортонезависимого подхода.
opennet.ru
🔍 Безопасность цепочки поставок – проблема не уходит
Инцидент с Cline показывает, что атака через
postinstall-скрипты в npm остаётся тривиальной. Ни один аудит зависимостей не спасёт, если вы автоматически обновляете пакеты без проверки diff. Практический вывод: используйте npm audit, lockfile-ы, а в CI – запрет произвольных postinstall-скриптов через .npmrc с ignore-scripts=true и явный whitelist.🛠 Команда дня:
npm config set ignore-scripts true
Запрещает выполнение lifecycle-скриптов (preinstall, postinstall, prepare) при npm install.
Это снижает риск supply-chain атак, когда вредоносный пакет запускает код во время установки.
⚠️ Но многие пакеты используют postinstall, поэтому включать стоит осознанно.
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
#дайджест #devops
www.opennet.ru
Выпуск uutils 0.7, варианта GNU Coreutils на языке Rust
Опубликован выпуск проекта uutils coreutils 0.7.0 (Rust Coreutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id,…
🔥2❤1
🛠 Гадание по YAML-конфигу твоей жизни: Career Matcher v1.0
На досуге собрал тулзу, которая делает больно, но честно. Знакомьтесь – Career Matcher.
Типичная ситуация: видишь вакансию мечты в BigTech, смотришь в своё резюме, потом снова на вакансию... И такое чувство, что между вами пропасть размером в Legacy-монолит. Чтобы не гадать «возьмут – не возьмут», я запилил бесплатный анализатор.
Как это работает (без регистрации и СМС):
🔗 Линк: https://lms.devitacademy.com/career
1. Закидываешь текст своего CV.
2. Копипастишь описание вакансии.
3. Ждешь ~10 секунд (пока магия AI перемалывает скиллы).
Что на выходе (самый сок):
– Процент матча: Визуальный индикатор, насколько ты «свой» для этой позиции.
– Оценка грейда: На какой уровень реально тянет опыт (Junior/Middle/Senior).
– Зарплатная вилка: Ориентир по рынку 2026 года, чтобы не продешевить на оффере.
– Gap-анализ: Таблица навыков – что уже есть, чего не хватает и насколько это критично для нанимающего лида.
Внутри – инженерный жир (HA на минималках):
Я не просто прикрутил одну LLM-ку, а заморочился над архитектурой:
AI-Chain с фолбеком: Сначала запрос идет в жирную Llama 3.3 70B через Groq. Если Groq прилёг – переключается на Kimi K2. Если и там беда – поднимается локальный «кракен» Qwen3 14B на моей RTX 3090 (Ollama). 100% доступность, даже если внешние API решат отдохнуть.
Таксономия РФ-рынка: Знает про ~50 актуальных DevOps-скиллов, а не абстрактную воду.
Маппинг на обучение: Если тулза видит просадку по K8s или Linux, она сразу подскажет конкретную неделю курса, где этот пробел закрывается.
Почему это стоит потыкать?
1. Никакого гейтинга: Результат сразу. Логин через Telegram нужен, только если захочешь сохранить глубокую оценку в профиль.
2. Скорость: 5 коммитов от прототипа до продакшена – чистый инжиниринг без бюрократии.
3. Честность: Лимит 3 запроса в час на IP без регистрации, 10 запросов в час после регистрации.
Деплойте свои резюме сюда: https://lms.devitacademy.com/career
Если Match % меньше 40 – не расстраивайся, это просто повод обновить конфиг головы.
#карьера #ai
На досуге собрал тулзу, которая делает больно, но честно. Знакомьтесь – Career Matcher.
Типичная ситуация: видишь вакансию мечты в BigTech, смотришь в своё резюме, потом снова на вакансию... И такое чувство, что между вами пропасть размером в Legacy-монолит. Чтобы не гадать «возьмут – не возьмут», я запилил бесплатный анализатор.
Как это работает (без регистрации и СМС):
🔗 Линк: https://lms.devitacademy.com/career
1. Закидываешь текст своего CV.
2. Копипастишь описание вакансии.
3. Ждешь ~10 секунд (пока магия AI перемалывает скиллы).
Что на выходе (самый сок):
– Процент матча: Визуальный индикатор, насколько ты «свой» для этой позиции.
– Оценка грейда: На какой уровень реально тянет опыт (Junior/Middle/Senior).
– Зарплатная вилка: Ориентир по рынку 2026 года, чтобы не продешевить на оффере.
– Gap-анализ: Таблица навыков – что уже есть, чего не хватает и насколько это критично для нанимающего лида.
Внутри – инженерный жир (HA на минималках):
Я не просто прикрутил одну LLM-ку, а заморочился над архитектурой:
AI-Chain с фолбеком: Сначала запрос идет в жирную Llama 3.3 70B через Groq. Если Groq прилёг – переключается на Kimi K2. Если и там беда – поднимается локальный «кракен» Qwen3 14B на моей RTX 3090 (Ollama). 100% доступность, даже если внешние API решат отдохнуть.
Таксономия РФ-рынка: Знает про ~50 актуальных DevOps-скиллов, а не абстрактную воду.
Маппинг на обучение: Если тулза видит просадку по K8s или Linux, она сразу подскажет конкретную неделю курса, где этот пробел закрывается.
Почему это стоит потыкать?
1. Никакого гейтинга: Результат сразу. Логин через Telegram нужен, только если захочешь сохранить глубокую оценку в профиль.
2. Скорость: 5 коммитов от прототипа до продакшена – чистый инжиниринг без бюрократии.
3. Честность: Лимит 3 запроса в час на IP без регистрации, 10 запросов в час после регистрации.
Деплойте свои резюме сюда: https://lms.devitacademy.com/career
Если Match % меньше 40 – не расстраивайся, это просто повод обновить конфиг головы.
#карьера #ai
🤩3🔥1
Как захакать собес за 30 секунд: Позиция «Своего»
Вчера я выложил Career Matcher – инструмент, который честно говорит: «дружище, вот тут ты красавчик, а тут подтяни матчасть».
Сегодня идем дальше. Допустим, по хард-скиллам ты прошел. Но как сделать так, чтобы нанимающий менеджер сразу увидел в тебе человека, который уже решает их задачи, а не просто претендует на вакансию?
Есть один прием, который меняет ход всей встречи.
Называется – «Позиция трудоустроенного».
В чём механика?
Ты перестаешь быть «просителем» (кандидатом, который ждет оценки) и начинаешь вести себя как партнер, который уже вышел на работу и вникает в процессы.
Почувствуй разницу в вопросах:
– Обычный кандидат: «А какой у вас стек?», «А как вы обучаете новичков?», «Какой у вас график?» (Фокус на себе и комфорте).
– Кандидат в позиции трудоустроенного: «Когда я приступлю, с кем из команды синхронизироваться в первую неделю, чтобы быстрее закрыть горящие тикеты?», «Как мы будем измерять успех этого проекта через полгода?» (Фокус на результате и команде).
---
3 маркера, которые переключают восприятие интервьюера:
1. Местоимение «Мы» вместо «Вы»: Когда ты говоришь «Как мы будем фиксить техдолг?», интервьюер подсознательно уже видит тебя в штатном расписании. Мозгу сложнее отказать тому, кого он уже «принял».
2. Процессы вместо условий: Вопросы про приоритеты в спринте или формат ретроспективы показывают, что тебя волнует работа, а не наличие печенек в офисе.
3. Детали вместо общих фраз: Ты спрашиваешь не «что делать», а «с чего я начну, чтобы принести пользу в первый же день».
Пять «киллер-вопросов» для DevOps-собеса:
1. «Какой инцидент за последний месяц был самым болезненным? Как бы мы его расковыряли, если бы я уже был в команде?»
2. «CI/CD пайплайн – он уже "забетонирован" или у нас есть план по его перестройке?»
3. «Если я выхожу в понедельник – какая задача горит ярче всего?»
4. «Как мы балансируем между фичами и техдолгом? Выделен ли у нас бюджет времени на рефакторинг?»
5. «Мониторинг – мы уже видим всё, что нужно, или мой первый приоритет – закрыть слепые зоны?»
Сохрани себе – пригодится перед следующим созвоном.
---
Где грань между уверенностью и кринжем?
– Здоровый подход: Любознательный тон, искренний интерес к проблемам бизнеса. Ты — партнер.
– Перебор: Снисходительность и советы «как вам всё тут переделать». Ты задаешь вопросы, а не раздаешь ответы.
Итог:
Вчера – нашел точки роста.
Сегодня – знаешь, как их упаковать в оффер.
Завтра – выходишь на работу.
Проверь свои сильные стороны перед следующим собесом:
👉 lms.devitacademy.com/career
ЗЫ можно проверить функционал просто указав слева пару скилов, а в требованиях другие или схожие без лишних слов 😜.
#карьера #devops
Вчера я выложил Career Matcher – инструмент, который честно говорит: «дружище, вот тут ты красавчик, а тут подтяни матчасть».
Сегодня идем дальше. Допустим, по хард-скиллам ты прошел. Но как сделать так, чтобы нанимающий менеджер сразу увидел в тебе человека, который уже решает их задачи, а не просто претендует на вакансию?
Есть один прием, который меняет ход всей встречи.
Называется – «Позиция трудоустроенного».
В чём механика?
Ты перестаешь быть «просителем» (кандидатом, который ждет оценки) и начинаешь вести себя как партнер, который уже вышел на работу и вникает в процессы.
Почувствуй разницу в вопросах:
– Обычный кандидат: «А какой у вас стек?», «А как вы обучаете новичков?», «Какой у вас график?» (Фокус на себе и комфорте).
– Кандидат в позиции трудоустроенного: «Когда я приступлю, с кем из команды синхронизироваться в первую неделю, чтобы быстрее закрыть горящие тикеты?», «Как мы будем измерять успех этого проекта через полгода?» (Фокус на результате и команде).
---
3 маркера, которые переключают восприятие интервьюера:
1. Местоимение «Мы» вместо «Вы»: Когда ты говоришь «Как мы будем фиксить техдолг?», интервьюер подсознательно уже видит тебя в штатном расписании. Мозгу сложнее отказать тому, кого он уже «принял».
2. Процессы вместо условий: Вопросы про приоритеты в спринте или формат ретроспективы показывают, что тебя волнует работа, а не наличие печенек в офисе.
3. Детали вместо общих фраз: Ты спрашиваешь не «что делать», а «с чего я начну, чтобы принести пользу в первый же день».
Пять «киллер-вопросов» для DevOps-собеса:
1. «Какой инцидент за последний месяц был самым болезненным? Как бы мы его расковыряли, если бы я уже был в команде?»
2. «CI/CD пайплайн – он уже "забетонирован" или у нас есть план по его перестройке?»
3. «Если я выхожу в понедельник – какая задача горит ярче всего?»
4. «Как мы балансируем между фичами и техдолгом? Выделен ли у нас бюджет времени на рефакторинг?»
5. «Мониторинг – мы уже видим всё, что нужно, или мой первый приоритет – закрыть слепые зоны?»
Сохрани себе – пригодится перед следующим созвоном.
---
Где грань между уверенностью и кринжем?
– Здоровый подход: Любознательный тон, искренний интерес к проблемам бизнеса. Ты — партнер.
– Перебор: Снисходительность и советы «как вам всё тут переделать». Ты задаешь вопросы, а не раздаешь ответы.
Итог:
Вчера – нашел точки роста.
Сегодня – знаешь, как их упаковать в оффер.
Завтра – выходишь на работу.
Проверь свои сильные стороны перед следующим собесом:
👉 lms.devitacademy.com/career
#карьера #devops
🔥3
99.9% доступности – это не «почти всегда работает».
Это ~8 часов 45 минут простоя в год.
А 99.99% – уже всего 52 минуты.
На собеседованиях часто говорят:
«У нас SLA – три девятки».
Или сверху спустят KPI 99.99% для ресурса, который просит его пристрелить.
А потом не могут сказать, сколько это в минутах.
Собрал калькулятор, который считает в обе стороны:
→ вводишь процент – получаешь допустимый простой
→ вводишь простой – получаешь реальный SLA
Популярные уровни:
• 99% – 3 дня 15 часов простоя в год
• 99.9% – 8 часов 45 минут
• 99.99% – 52 минуты
• 99.999% – ~5 минут
Разница между 99.9% и 99.99% – одна девятка.
Но по архитектуре и стоимости – пропасть.
Быстрый тест для DevOps:
сколько downtime в год у 99.95% SLA?
👉 sla.devitacademy.com
#мышление #devops
Это ~8 часов 45 минут простоя в год.
А 99.99% – уже всего 52 минуты.
На собеседованиях часто говорят:
«У нас SLA – три девятки».
Или сверху спустят KPI 99.99% для ресурса, который просит его пристрелить.
А потом не могут сказать, сколько это в минутах.
Собрал калькулятор, который считает в обе стороны:
→ вводишь процент – получаешь допустимый простой
→ вводишь простой – получаешь реальный SLA
Популярные уровни:
• 99% – 3 дня 15 часов простоя в год
• 99.9% – 8 часов 45 минут
• 99.99% – 52 минуты
• 99.999% – ~5 минут
Разница между 99.9% и 99.99% – одна девятка.
Но по архитектуре и стоимости – пропасть.
Быстрый тест для DevOps:
сколько downtime в год у 99.95% SLA?
👉 sla.devitacademy.com
#мышление #devops
❤5🔥1
⚡️ DevOps Digest #3 | 13.03.2026
🔥 Главное:
1. Критическая уязвимость в OpenSSH (CVE-2026-3497) – в GSSAPI-патче, который добавляют большинство дистрибутивов, найдена ошибка с удалённой эксплуатацией до аутентификации. Один специально сформированный пакет роняет SSH-сервер. Обновляйте openssh-server немедленно.
🔗 https://www.opennet.ru/opennews/art.shtml?num=64983
2. Автоматизация ввода Linux-серверов в домен через Ansible и HashiCorp Vault – пошаговая инструкция: Vault выдаёт одноразовые учётные данные, Ansible вводит сервер в AD без хранения паролей в плейбуках. Готовый подход для команд, у которых десятки серверов и требования ИБ.
🔗 https://habr.com/ru/articles/1009604/
3. promptfoo – тестирование безопасности AI-систем с интеграцией в CI/CD – 2 000+ звёзд за неделю. Поиск уязвимостей в LLM-приложениях, проверка промптов, агентов и RAG. Поддерживает все основные модели, запускается из командной строки.
🔗 https://github.com/promptfoo/promptfoo
4. Debezium и журнал предзаписи PostgreSQL – подробный разбор механики захвата изменений данных (CDC): как Debezium подключается к WAL и транслирует изменения из базы в реальном времени. Полезно для построения событийных архитектур и репликации.
🔗 https://blog.stackademic.com/how-debezium-uses-postgresql-wal-for-change-data-capture-a365b4ec4221
5. Воспроизводимое развёртывание NixOS для 30 рабочих станций – учитель построил полностью декларативную инфраструктуру школьного класса: PXE-загрузка, локальный кеш пакетов через Harmonia, оркестрация Colmena. Всё работает без интернета на клиентах, восстановление за минуты.
🔗 https://github.com/giovantenne/nixos-lab
🔍 Дистрибутивные патчи как скрытый вектор атаки
CVE-2026-3497 примечательна тем, что уязвимость не в основном коде OpenSSH, а в патче, который дистрибутивы годами добавляют самостоятельно. Апстрим тщательно аудируется, а дистрибутивные надстройки живут без должной проверки. На этой же неделе Qualys нашла 9 уязвимостей в AppArmor (CrackArmor) – повышение привилегий до root и выход из контейнеров на Ubuntu и Debian. Практический вывод: в первую очередь обновляйте SSH и ядро, проверьте – если GSSAPI не используете, отключите.
🛠 Команда дня:
Проверяет, включена ли GSSAPI/Kerberos-аутентификация на SSH-сервере – если не используете, отключите и уменьшите поверхность атаки
#дайджест #devops #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Критическая уязвимость в OpenSSH (CVE-2026-3497) – в GSSAPI-патче, который добавляют большинство дистрибутивов, найдена ошибка с удалённой эксплуатацией до аутентификации. Один специально сформированный пакет роняет SSH-сервер. Обновляйте openssh-server немедленно.
🔗 https://www.opennet.ru/opennews/art.shtml?num=64983
2. Автоматизация ввода Linux-серверов в домен через Ansible и HashiCorp Vault – пошаговая инструкция: Vault выдаёт одноразовые учётные данные, Ansible вводит сервер в AD без хранения паролей в плейбуках. Готовый подход для команд, у которых десятки серверов и требования ИБ.
🔗 https://habr.com/ru/articles/1009604/
3. promptfoo – тестирование безопасности AI-систем с интеграцией в CI/CD – 2 000+ звёзд за неделю. Поиск уязвимостей в LLM-приложениях, проверка промптов, агентов и RAG. Поддерживает все основные модели, запускается из командной строки.
🔗 https://github.com/promptfoo/promptfoo
4. Debezium и журнал предзаписи PostgreSQL – подробный разбор механики захвата изменений данных (CDC): как Debezium подключается к WAL и транслирует изменения из базы в реальном времени. Полезно для построения событийных архитектур и репликации.
🔗 https://blog.stackademic.com/how-debezium-uses-postgresql-wal-for-change-data-capture-a365b4ec4221
5. Воспроизводимое развёртывание NixOS для 30 рабочих станций – учитель построил полностью декларативную инфраструктуру школьного класса: PXE-загрузка, локальный кеш пакетов через Harmonia, оркестрация Colmena. Всё работает без интернета на клиентах, восстановление за минуты.
🔗 https://github.com/giovantenne/nixos-lab
🔍 Дистрибутивные патчи как скрытый вектор атаки
CVE-2026-3497 примечательна тем, что уязвимость не в основном коде OpenSSH, а в патче, который дистрибутивы годами добавляют самостоятельно. Апстрим тщательно аудируется, а дистрибутивные надстройки живут без должной проверки. На этой же неделе Qualys нашла 9 уязвимостей в AppArmor (CrackArmor) – повышение привилегий до root и выход из контейнеров на Ubuntu и Debian. Практический вывод: в первую очередь обновляйте SSH и ядро, проверьте – если GSSAPI не используете, отключите.
🛠 Команда дня:
sshd -T | grep -E 'gssapi|kerberos'
Проверяет, включена ли GSSAPI/Kerberos-аутентификация на SSH-сервере – если не используете, отключите и уменьшите поверхность атаки
#дайджест #devops #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
www.opennet.ru
Уязвимость в GSSAPI-патче к OpenSSH, удалённо эксплуатируемая на стадии до аутентификации
В применяемом во многих дистрибутивах Linux патче gssapi.patch, добавляющем в OpenSSH поддержку обмена ключей на базе GSSAPI, выявлена уязвимость (CVE-2026-3497), приводящая к разыменованию указателя, повреждению памяти и обходу механизма разделения привилегий…
👍3❤2🔥1
Выкатил upstream auth в NORA. Теперь один реестр проксирует приватные Docker, Maven, npm, PyPI с кредами.
Тестировал цепочку NORA → NORA (с auth) → Docker Hub. Все 4 протокола прошли.
Попутно нашел баг: UI не показывал namespaced Docker-репозитории (library/alpine).
Причина: индекс парсил путь docker/{name}manifests/, а не docker/{ns}/{name}/manifests/. Пофиксил.
Детали релиза: https://t.me/getnora/18
#кейс #rust
Тестировал цепочку NORA → NORA (с auth) → Docker Hub. Все 4 протокола прошли.
Попутно нашел баг: UI не показывал namespaced Docker-репозитории (library/alpine).
Причина: индекс парсил путь docker/{name}manifests/, а не docker/{ns}/{name}/manifests/. Пофиксил.
Детали релиза: https://t.me/getnora/18
#кейс #rust
❤2🔥2
⚡️ DevOps Digest #4 | 17.03.2026
🔥 Главное:
1. Morgan Stanley рассказали о пятилетнем пути от push-модели CI/CD к GitOps на 500+ кластерах с Flux. Дрейф конфигурации и невозможность быстро восстановить кластер без ручной координации между командами – главные причины перехода.
🔗 https://fluxcd.io/blog/2026/03/stairway-to-gitops-morgan-stanley/
2. Apache Iggy – платформа потоковой передачи сообщений на Rust под крылом Apache Foundation. Позиционируется как сверхбыстрая альтернатива для сценариев, где критична минимальная задержка – ещё один инфраструктурный проект, переписанный на Rust.
🔗 https://github.com/apache/iggy
3. Российский веб-сервер Angie получил встроенный ACME-модуль для автоматического получения и обновления TLS-сертификатов прямо из конфига – без certbot и внешних утилит.
🔗 https://habr.com/ru/articles/1010758/
4. Вышел Debian 13.4 – 111 исправлений стабильности и 67 патчей безопасности. Обновлены PostgreSQL, QEMU, Samba, OpenSSL, Zabbix и MariaDB.
🔗 https://www.opennet.ru/opennews/art.shtml?num=64992
5. Одна строка в postgresql.conf положила всю платформу, хотя никто не менял код приложения. Напоминание: конфигурация инфраструктуры требует такого же контроля изменений и тестирования, как и код.
🔗 https://blog.stackademic.com/one-line-in-postgresql-conf-took-down-our-entire-platform-nobody-changed-any-code-63605ef65924
🔍 GitOps на 500+ кластерах: уроки Morgan Stanley
Morgan Stanley пять лет переходили от push-модели к GitOps на Flux. Главная боль push-модели – дрейф: кластеры уходят от описанного состояния, а восстановление после сбоя превращается в ручную координацию между командами, часто в три часа ночи в чужом часовом поясе. Pull-модель с агентом, непрерывно сверяющим реальное состояние с Git, решает обе проблемы. Практический вывод: если у вас больше десятка кластеров и восстановление после сбоя требует ручного вмешательства – это сигнал смотреть в сторону GitOps.
🛠 Команда дня:
Последние 20 предупреждений в кластере – быстрая диагностика без дашбордов
#дайджест #kubernetes #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Morgan Stanley рассказали о пятилетнем пути от push-модели CI/CD к GitOps на 500+ кластерах с Flux. Дрейф конфигурации и невозможность быстро восстановить кластер без ручной координации между командами – главные причины перехода.
🔗 https://fluxcd.io/blog/2026/03/stairway-to-gitops-morgan-stanley/
2. Apache Iggy – платформа потоковой передачи сообщений на Rust под крылом Apache Foundation. Позиционируется как сверхбыстрая альтернатива для сценариев, где критична минимальная задержка – ещё один инфраструктурный проект, переписанный на Rust.
🔗 https://github.com/apache/iggy
3. Российский веб-сервер Angie получил встроенный ACME-модуль для автоматического получения и обновления TLS-сертификатов прямо из конфига – без certbot и внешних утилит.
🔗 https://habr.com/ru/articles/1010758/
4. Вышел Debian 13.4 – 111 исправлений стабильности и 67 патчей безопасности. Обновлены PostgreSQL, QEMU, Samba, OpenSSL, Zabbix и MariaDB.
🔗 https://www.opennet.ru/opennews/art.shtml?num=64992
5. Одна строка в postgresql.conf положила всю платформу, хотя никто не менял код приложения. Напоминание: конфигурация инфраструктуры требует такого же контроля изменений и тестирования, как и код.
🔗 https://blog.stackademic.com/one-line-in-postgresql-conf-took-down-our-entire-platform-nobody-changed-any-code-63605ef65924
🔍 GitOps на 500+ кластерах: уроки Morgan Stanley
Morgan Stanley пять лет переходили от push-модели к GitOps на Flux. Главная боль push-модели – дрейф: кластеры уходят от описанного состояния, а восстановление после сбоя превращается в ручную координацию между командами, часто в три часа ночи в чужом часовом поясе. Pull-модель с агентом, непрерывно сверяющим реальное состояние с Git, решает обе проблемы. Практический вывод: если у вас больше десятка кластеров и восстановление после сбоя требует ручного вмешательства – это сигнал смотреть в сторону GitOps.
🛠 Команда дня:
kubectl get events -A --sort-by='.lastTimestamp' --field-selector type=Warning | tail -20
Последние 20 предупреждений в кластере – быстрая диагностика без дашбордов
#дайджест #kubernetes #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
fluxcd.io
Stairway to GitOps: Scaling Flux at Morgan Stanley
Reflecting on Morgan Stanley's journey to production GitOps with Flux, presented at FluxCon NA 2025.
🔥4❤1
Конфигурационный покер: почему твой честный Git проиграет за столом с шулерами
В override-системах верхний слой перебивает нижний. Так устроены Ansible, Bash, ArgoCD. Когда слоёв больше трёх, то система превращается в чёрный ящик, а в поде – старый конфиг.
Правило: чем ближе настройка к рантайму, тем она сильнее.
Ansible: подлая иерархия
Bash/Python: та же логика
Docker-контейнеры обожают
ArgoCD + Kustomize: когда GitOps перестает быть Git
У тебя есть
Но тут за стол садится ArgoCD со своими оверрайдами. Кто-то решил по-быстрому сменить образ через
Итог: ты коммитишь v2, Argo пишет Synced, а в кластере крутится v1. Это не баг, афича штатное поведение. Просто приоритет рантайм-оверрайда оказался «сильнее» коммита.
На практике
Override – момент, когда отказываешься от единого источника истины. Фикс за 5 секунд через(главное не выйти на самого себя 😆) .
---
А как вы боретесь с шулерами в рантайме? Голосуем:
🤣 Я сам тот ещё шулер – сам себе злобный Буратино, бахаю оверрайды и забываю.
😎 Казино закрыто – всё закручено гайками, только Git, только хардкор.
🤔 Вечный детектив – раз в неделю расследую, откуда прилетело это значение.
😜 Я просто мимо проходил – смотрю на зеленую галочку в Argo и верю в чудо.
---
#мышление #devops
В override-системах верхний слой перебивает нижний. Так устроены Ansible, Bash, ArgoCD. Когда слоёв больше трёх, то система превращается в чёрный ящик, а в поде – старый конфиг.
Правило: чем ближе настройка к рантайму, тем она сильнее.
Ansible: подлая иерархия
role/defaults – заглушки. Дальше group_vars – окружение. Но если кто-то бахнул -e "var=value" в CI-пайплайне – твои файлы в гите превращаются в тыкву.Bash/Python: та же логика
/etc/profile < ~/.bashrc < export VAR < VAR=x commandconfig.yaml < config.prod.yaml < ENV < CLI argsDocker-контейнеры обожают
env. Если в манифесте Kubernetes висит переменная окружения и она плевать хотела на твой красивый config.yaml внутри образа. А CLI-аргументы задоминируют вообще всех.ArgoCD + Kustomize: когда GitOps перестает быть Git
У тебя есть
base/ (скелет) и overlays/ (специфика кластера). Оверлей накладывается сверху, вроде всё прозрачно.Но тут за стол садится ArgoCD со своими оверрайдами. Кто-то решил по-быстрому сменить образ через
argocd app set --kustomize-image. ArgoCD создаёт невидимый слой поверх твоего Git.Итог: ты коммитишь v2, Argo пишет Synced, а в кластере крутится v1. Это не баг, а
На практике
Override – момент, когда отказываешься от единого источника истины. Фикс за 5 секунд через
env, но через месяц никто не знает откуда в проде это значение. Итоговое состояние размазано по пяти местам. Чтобы найти виноватого начинаешь полноценное расследование ---
А как вы боретесь с шулерами в рантайме? Голосуем:
🤣 Я сам тот ещё шулер – сам себе злобный Буратино, бахаю оверрайды и забываю.
😎 Казино закрыто – всё закручено гайками, только Git, только хардкор.
🤔 Вечный детектив – раз в неделю расследую, откуда прилетело это значение.
😜 Я просто мимо проходил – смотрю на зеленую галочку в Argo и верю в чудо.
---
#мышление #devops
😎4❤1🤣1
Страх и ненависть в Telegram Bot API: Я написал свой «Pusk» на рельсах, на которых строю NORA
В штате нет собственных DevOps-инженеров. Но у товарища на поддержке 50+ организаций (вещательное оборудование для кино и живых эфиров). Вся инфраструктура завязана на Zabbix + Python-ботах, которые просто слали алерты по SNMP, битрейту и температуре в Telegram.
Ситуация: На пороге полного blackout
С 10 февраля РКН подтвердил замедление Telegram (медиа уже тормозят), а полная блокировка, по данным СМИ, планируется с 1 апреля. Если мониторинг «отвалится», техподдержка ослепнет, а эфиры начнут падать без уведомлений.
Мы не могли позволить себе внедрить «энтерпрайз»:
Mattermost/Rocket.Chat: Нужны спецы по PostgreSQL и MongoDB. Никто не будет чинить кластер в 3 часа ночи.
Matrix: Избыточная сложность, требующая постоянного тюнинга.
Мое решение: Я написал свой сервер Pusk на Go. Он полностью мимикрирует под Telegram Bot API, но не требует штата админов. Проект построен на тех же рельсах и мощностях (серверы ИИ-ферм, общие раннеры), на которых я сейчас развиваю НОРУ (собственное хранилище артефактов). Это создание полностью автономной экосистемы.
Эвакуация в безопасный контур (In Progress)
Внедрение идет прямо сейчас. Миграция ботов занимает минуты — в коде каждого бота меняется всего одна строка:
base_url="https://your-pusk-server.ru"
ТТХ моего «спасательного круга»:
Бинарник 11 MB: Один файл. Закинул и работает.
Multi-tenant (SQLite per org): Изоляция данных «из коробки» и бэкап простым копированием.
Производительность: 15,000 req/s. Лимиты Telegram API (~30 msg/s) больше не парят.
Webhook Relay: Доставляет вебхуки на локальный компьютер бота за NAT без ngrok. Идеально для полевых объектов.
Надежность: 28 E2E тестов и аудит на 27 уязвимостей.
Итог: Мониторинг спасаем без рефакторинга кода и найма новых людей. Боты на Python продолжают работать, «думая», что они в Telegram, хотя на самом деле всё летит в собственный легкий бэкенд на моих рельсах.
Присоединяйся к эвакуации:
Код: github.com/getpusk/pusk
Демо с AI-ботом: getpusk.ru
Подробный разбор: devopsway.ru/posts/pusk-self-hosted-telegram-bot-api/
#кейс #devops
«У нас было два бинарника на 11 МБ, 75 SQLite-файлов, 5 петабайт ИИ-данных, пол-инфры в НОРЕ и целое множество энкодеров всех сортов и расцветок... Не то чтобы это был необходимый запас для мониторинга, но раз уж начал коллекционировать автономные сервисы, то сложно остановиться».
В штате нет собственных DevOps-инженеров. Но у товарища на поддержке 50+ организаций (вещательное оборудование для кино и живых эфиров). Вся инфраструктура завязана на Zabbix + Python-ботах, которые просто слали алерты по SNMP, битрейту и температуре в Telegram.
Ситуация: На пороге полного blackout
С 10 февраля РКН подтвердил замедление Telegram (медиа уже тормозят), а полная блокировка, по данным СМИ, планируется с 1 апреля. Если мониторинг «отвалится», техподдержка ослепнет, а эфиры начнут падать без уведомлений.
Мы не могли позволить себе внедрить «энтерпрайз»:
Mattermost/Rocket.Chat: Нужны спецы по PostgreSQL и MongoDB. Никто не будет чинить кластер в 3 часа ночи.
Matrix: Избыточная сложность, требующая постоянного тюнинга.
Мое решение: Я написал свой сервер Pusk на Go. Он полностью мимикрирует под Telegram Bot API, но не требует штата админов. Проект построен на тех же рельсах и мощностях (серверы ИИ-ферм, общие раннеры), на которых я сейчас развиваю НОРУ (собственное хранилище артефактов). Это создание полностью автономной экосистемы.
Эвакуация в безопасный контур (In Progress)
Внедрение идет прямо сейчас. Миграция ботов занимает минуты — в коде каждого бота меняется всего одна строка:
base_url="https://your-pusk-server.ru"
ТТХ моего «спасательного круга»:
Бинарник 11 MB: Один файл. Закинул и работает.
Multi-tenant (SQLite per org): Изоляция данных «из коробки» и бэкап простым копированием.
Производительность: 15,000 req/s. Лимиты Telegram API (~30 msg/s) больше не парят.
Webhook Relay: Доставляет вебхуки на локальный компьютер бота за NAT без ngrok. Идеально для полевых объектов.
Надежность: 28 E2E тестов и аудит на 27 уязвимостей.
Итог: Мониторинг спасаем без рефакторинга кода и найма новых людей. Боты на Python продолжают работать, «думая», что они в Telegram, хотя на самом деле всё летит в собственный легкий бэкенд на моих рельсах.
Присоединяйся к эвакуации:
Код: github.com/getpusk/pusk
Демо с AI-ботом: getpusk.ru
Подробный разбор: devopsway.ru/posts/pusk-self-hosted-telegram-bot-api/
#кейс #devops
🔥4
⚡️ DevOps Digest #5 | 20.03.2026
🔥 Главное:
1. systemd 260: прекращена поддержка скриптов SysV init. Также появились механизм mstack для многослойных иерархий монтирования, утилита systemd-report и интеграция systemd-networkd с ModemManager.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65018
2. Crossplane v2.2: альфа-версия инспектора пайплайнов. Перехватывает запросы и ответы на каждом шаге композиции через gRPC – от отладки при разработке до аудита в продакшене.
🔗 https://blog.crossplane.io/crossplane-v2-2-more-capable-more-reliable-more-observable/
3. Почему установка Argo CD не исправила деплои. GitOps – организационное решение, а не техническое: без чёткого разделения ответственности за конфигурацию продакшена инструмент лишь обнажит существующий хаос.
🔗 https://platformengineering.org/blog/why-installing-argo-cd-didnt-fix-your-deployments
4. Атаки на цепочку поставки ПО – третье место OWASP Top Ten 2025. Ущерб за год оценивается в $60 млрд. Разбор типов угроз в открытых репозиториях и практических мер защиты.
🔗 https://habr.com/ru/companies/codescoring/articles/1011358/
5. dockur/macos – macOS в Docker-контейнере. 558 звёзд за неделю на GitHub. Позволяет запускать macOS без Apple-железа – полезно для CI/CD-сборок под iOS/macOS.
🔗 https://github.com/dockur/macos
🔍 GitOps – это не про инструмент
Установить Argo CD может каждый за 15 минут. Проблема в том, что инструмент не решает главного: кто владеет конфигурацией продакшена, кто отвечает за откат, где заканчивается зона разработки и начинается эксплуатация. Если эти границы не определены до внедрения – вы получите тот же хаос, только версионированный в Git.
🛠 Команда дня:
Покажет сервисы, сгенерированные из SysV init-скриптов – кандидаты на миграцию в нативные юнит-файлы systemd.
#дайджест #linux #kubernetes
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. systemd 260: прекращена поддержка скриптов SysV init. Также появились механизм mstack для многослойных иерархий монтирования, утилита systemd-report и интеграция systemd-networkd с ModemManager.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65018
2. Crossplane v2.2: альфа-версия инспектора пайплайнов. Перехватывает запросы и ответы на каждом шаге композиции через gRPC – от отладки при разработке до аудита в продакшене.
🔗 https://blog.crossplane.io/crossplane-v2-2-more-capable-more-reliable-more-observable/
3. Почему установка Argo CD не исправила деплои. GitOps – организационное решение, а не техническое: без чёткого разделения ответственности за конфигурацию продакшена инструмент лишь обнажит существующий хаос.
🔗 https://platformengineering.org/blog/why-installing-argo-cd-didnt-fix-your-deployments
4. Атаки на цепочку поставки ПО – третье место OWASP Top Ten 2025. Ущерб за год оценивается в $60 млрд. Разбор типов угроз в открытых репозиториях и практических мер защиты.
🔗 https://habr.com/ru/companies/codescoring/articles/1011358/
5. dockur/macos – macOS в Docker-контейнере. 558 звёзд за неделю на GitHub. Позволяет запускать macOS без Apple-железа – полезно для CI/CD-сборок под iOS/macOS.
🔗 https://github.com/dockur/macos
🔍 GitOps – это не про инструмент
Установить Argo CD может каждый за 15 минут. Проблема в том, что инструмент не решает главного: кто владеет конфигурацией продакшена, кто отвечает за откат, где заканчивается зона разработки и начинается эксплуатация. Если эти границы не определены до внедрения – вы получите тот же хаос, только версионированный в Git.
🛠 Команда дня:
systemctl list-unit-files --type=service --state=generated
Покажет сервисы, сгенерированные из SysV init-скриптов – кандидаты на миграцию в нативные юнит-файлы systemd.
#дайджест #linux #kubernetes
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
The Crossplane Blog
Crossplane v2.2 — More Capable, More Reliable, More Observable
We are excited to announce that Crossplane v2.2.0 has been released and is now available for installation into your control planes.
🔥4❤1
Взлом Trivy: когда сканер безопасности сам становится угрозой
Инструменты безопасности – новый вектор атаки на цепочки поставок. Раскрыта компрометация aquasecurity/trivy-action – GitHub Action для сканирования уязвимостей в CI/CD. Второй инцидент с Trivy за месяц.
Что произошло
Злоумышленники перезаписали 75 из 76 версионных тегов. Если в workflow указана любая версия кроме @0.35.0 – вы запускаете вредоносный код. Теги в Git можно переназначить через force-push – пин по тегу это иллюзия безопасности.
Малварь срабатывает до скана, поэтому всё выглядит нормально. А в это время: дамп памяти раннера, кража SSH-ключей, учётных данных AWS/GCP/Azure и токенов Kubernetes.
Хронология
13 марта – получен доступ к репозиторию. 13–19 марта – force-push на 75 тегов, малварь невидима. 20 марта – исследователи замечают: хэши тегов не совпадают с релизами. Семь дней инфостилер работал в тысячах пайплайнов незамеченным.
Blast radius
Критический – self-hosted раннеры с персистентным стейтом и доступом к prod. Высокий – GitHub-hosted с долгоживущими AWS/K8s ключами в env. Средний – OIDC-токены с минимальными permissions. Низкий – пин по SHA. Атака не работает. Точка.
Модель «швейцарского сыра»
Атака проходит когда дырки во всех слоях совпадают. У жертв совпало всё:
Фиксация – тег вместо SHA.
Привилегии – write-all вместо read.
Изоляция – персистентные раннеры.
Секреты – долгоживущие ключи вместо OIDC.
Закрой один слой – цепочка рвётся.
Detection: как понять, что затронуты
GitHub Actions logs – сетевые вызовы к неизвестным хостам до начала скана. Self-hosted раннеры – дампы в /tmp, следы curl к внешним IP. Cloud audit logs (CloudTrail, GCP Audit) – API-вызовы с украденных ключей. Если секрет читался в workflow с trivy-action по тегу – считайте утёкшим.
Что делать
Заменить все actions с тегов на SHA-хэши. Ротировать секреты если использовали trivy-action по тегу. Прописать permissions: read-all в каждом workflow.
Пример: NORA
Open-source проект NORA (github.com/getnora-io/nora) – 30 actions в CI/CD, ни один по тегу:
# Уязвимо:
# NORA – атака не проходит:
Плюс permissions: read-all глобально, write только где необходимо. Тот же trivy-action, но атака не проходит ни на одном слое.
От кейса к политике
SHA-пины для всех actions – теги не доверяем. Allowlist на уровне организации. OIDC вместо долгоживущих ключей. Ephemeral раннеры – персистентный стейт это бомба.
Quis custodiet ipsos custodes. Сканер стал вектором. Фиксация по хэшу – не паранойя, а гигиена.
---
Как ваш CI/CD пережил бы атаку на Trivy?
😁 – У нас нет CI/CD в этих ваших интернетах
😎 – SHA-пины, permissions: read-all, OIDC, ephemeral runners.
😱 – Пиним по тегу, permissions не прописаны, секреты вечные.
💪 – Форкнули все actions к себе, собираем раннеры из исходников, threat model включает захват GitHub. Коллеги крутят пальцем у виска, но CI не ломался ни разу.
---
#кейс #devops
Инструменты безопасности – новый вектор атаки на цепочки поставок. Раскрыта компрометация aquasecurity/trivy-action – GitHub Action для сканирования уязвимостей в CI/CD. Второй инцидент с Trivy за месяц.
Что произошло
Злоумышленники перезаписали 75 из 76 версионных тегов. Если в workflow указана любая версия кроме @0.35.0 – вы запускаете вредоносный код. Теги в Git можно переназначить через force-push – пин по тегу это иллюзия безопасности.
Малварь срабатывает до скана, поэтому всё выглядит нормально. А в это время: дамп памяти раннера, кража SSH-ключей, учётных данных AWS/GCP/Azure и токенов Kubernetes.
Хронология
13 марта – получен доступ к репозиторию. 13–19 марта – force-push на 75 тегов, малварь невидима. 20 марта – исследователи замечают: хэши тегов не совпадают с релизами. Семь дней инфостилер работал в тысячах пайплайнов незамеченным.
Blast radius
Критический – self-hosted раннеры с персистентным стейтом и доступом к prod. Высокий – GitHub-hosted с долгоживущими AWS/K8s ключами в env. Средний – OIDC-токены с минимальными permissions. Низкий – пин по SHA. Атака не работает. Точка.
Модель «швейцарского сыра»
Атака проходит когда дырки во всех слоях совпадают. У жертв совпало всё:
Фиксация – тег вместо SHA.
Привилегии – write-all вместо read.
Изоляция – персистентные раннеры.
Секреты – долгоживущие ключи вместо OIDC.
Закрой один слой – цепочка рвётся.
Detection: как понять, что затронуты
GitHub Actions logs – сетевые вызовы к неизвестным хостам до начала скана. Self-hosted раннеры – дампы в /tmp, следы curl к внешним IP. Cloud audit logs (CloudTrail, GCP Audit) – API-вызовы с украденных ключей. Если секрет читался в workflow с trivy-action по тегу – считайте утёкшим.
Что делать
Заменить все actions с тегов на SHA-хэши. Ротировать секреты если использовали trivy-action по тегу. Прописать permissions: read-all в каждом workflow.
Пример: NORA
Open-source проект NORA (github.com/getnora-io/nora) – 30 actions в CI/CD, ни один по тегу:
# Уязвимо:
uses: aquasecurity/trivy-action@0.34.2
# NORA – атака не проходит:
uses: aquasecurity/trivy-action@57a97c7e... # 0.35.0
Плюс permissions: read-all глобально, write только где необходимо. Тот же trivy-action, но атака не проходит ни на одном слое.
От кейса к политике
SHA-пины для всех actions – теги не доверяем. Allowlist на уровне организации. OIDC вместо долгоживущих ключей. Ephemeral раннеры – персистентный стейт это бомба.
Quis custodiet ipsos custodes. Сканер стал вектором. Фиксация по хэшу – не паранойя, а гигиена.
---
Как ваш CI/CD пережил бы атаку на Trivy?
😁 – У нас нет CI/CD в этих ваших интернетах
😎 – SHA-пины, permissions: read-all, OIDC, ephemeral runners.
😱 – Пиним по тегу, permissions не прописаны, секреты вечные.
💪 – Форкнули все actions к себе, собираем раннеры из исходников, threat model включает захват GitHub. Коллеги крутят пальцем у виска, но CI не ломался ни разу.
---
#кейс #devops
😁2 2❤1😱1
На выходных провел небольшую встречу со студентами на тему: "От журналирования до реестра артефактов". И вспомнил нашу серию постов про "Лотерею собеседований". Серия была навеяна обратной связью от ребят, кто собесы проходил тогда, там был вопрос от HR: "Для чего нужны WAL-файлы в PostgreSQL?" Что за вопросы с подковырками тогда разбирали.
Вот только это не подковырка. Это проверка: ты будешь тем дежурным, который в пятницу в 23:00 поймёт почему база встала? Или тем, кто напишет в чат "всё красное, что делать?"
Инциденты всё реже из-за кода. Всё чаще потому, что инженер не понял систему.
По данным Uptime Institute, доля инцидентов, связанных с ошибками процессов и человеческим фактором, остаётся одной из самых высоких и продолжает расти.
И очень часто причина одна: журнал либо отсутствует, либо работает не так, как ты думаешь.
WAL – Write-Ahead Log, журнал упреждающей записи.
Принцип: прежде чем что-то изменить, запиши это в журнал. Упал? Поднялся и дочитал.
И это не фича PostgreSQL, а фундаментальный принцип, которому больше полувека.
И это не одна и та же технология, но одна и та же задача: пережить сбой, не потеряв согласованность данных.
PostgreSQL — WAL.
Файловые системы — journal.
Kafka — commit log.
Redis — AOF.
etcd — тоже WAL.
Git — reflog (история изменений ссылок).
Каждый реализует идею по-своему: PostgreSQL пишет физические изменения страниц, Redis записывает команды, Kafka вообще строит на логе всю архитектуру.
Но принцип один: сначала зафиксировать, потом применить.
Принципу десятки лет.
И за это время лучше ничего не придумали.
Потому что нечего придумывать. Диск не стал умнее за 50 лет. Он всё так же быстрее пишет подряд, чем прыгает по случайным блокам. Меняются названия. Принципы – нет.
Тот инцидент с диском в пятницу? PostgreSQL копил мёртвые строки три месяца, потому что никто не настроил autovacuum.
Каталог WAL вырос с 1 до 50 гигабайт за выходные. Ноль симптомов до момента полного заполнения диска. Ни медленных запросов, ни ошибок.
А потом – всё и сразу.
Дежурный, который знает что такое WAL, через минуту понимает: освободить место в pg_wal, проверить архивирование, разобраться с replication slot. Дежурный, который не знает – гуглит конфлюенс, идёт в нейронки - "PostgreSQL не запускается" и теряет час. А иногда делает хуже.
Вопрос про WAL на собеседовании – не про PostgreSQL. Он про то, видишь ли ты одни и те же принципы в разных инструментах. Да, бывает, что спрашивающий сам не до конца понимает вопрос. Но это не отменяет главного: ты должен понимать. И если ты это видишь – тебе не нужно зубрить ответы. Ты их выводишь.
Инженер – это не тот, кто знает все команды, а тот, кто видит паттерны.
Проверь себя: сможешь объяснить WAL, не упоминая PostgreSQL?
Если нет – ты учил инструменты, а не принципы.
#devops #мышление #кейс #карьера #devitway
Вот только это не подковырка. Это проверка: ты будешь тем дежурным, который в пятницу в 23:00 поймёт почему база встала? Или тем, кто напишет в чат "всё красное, что делать?"
Инциденты всё реже из-за кода. Всё чаще потому, что инженер не понял систему.
По данным Uptime Institute, доля инцидентов, связанных с ошибками процессов и человеческим фактором, остаётся одной из самых высоких и продолжает расти.
И очень часто причина одна: журнал либо отсутствует, либо работает не так, как ты думаешь.
WAL – Write-Ahead Log, журнал упреждающей записи.
Принцип: прежде чем что-то изменить, запиши это в журнал. Упал? Поднялся и дочитал.
И это не фича PostgreSQL, а фундаментальный принцип, которому больше полувека.
И это не одна и та же технология, но одна и та же задача: пережить сбой, не потеряв согласованность данных.
PostgreSQL — WAL.
Файловые системы — journal.
Kafka — commit log.
Redis — AOF.
etcd — тоже WAL.
Git — reflog (история изменений ссылок).
Каждый реализует идею по-своему: PostgreSQL пишет физические изменения страниц, Redis записывает команды, Kafka вообще строит на логе всю архитектуру.
Но принцип один: сначала зафиксировать, потом применить.
Принципу десятки лет.
И за это время лучше ничего не придумали.
Потому что нечего придумывать. Диск не стал умнее за 50 лет. Он всё так же быстрее пишет подряд, чем прыгает по случайным блокам. Меняются названия. Принципы – нет.
Тот инцидент с диском в пятницу? PostgreSQL копил мёртвые строки три месяца, потому что никто не настроил autovacuum.
Каталог WAL вырос с 1 до 50 гигабайт за выходные. Ноль симптомов до момента полного заполнения диска. Ни медленных запросов, ни ошибок.
А потом – всё и сразу.
Дежурный, который знает что такое WAL, через минуту понимает: освободить место в pg_wal, проверить архивирование, разобраться с replication slot. Дежурный, который не знает – гуглит конфлюенс, идёт в нейронки - "PostgreSQL не запускается" и теряет час. А иногда делает хуже.
Вопрос про WAL на собеседовании – не про PostgreSQL. Он про то, видишь ли ты одни и те же принципы в разных инструментах. Да, бывает, что спрашивающий сам не до конца понимает вопрос. Но это не отменяет главного: ты должен понимать. И если ты это видишь – тебе не нужно зубрить ответы. Ты их выводишь.
Инженер – это не тот, кто знает все команды, а тот, кто видит паттерны.
Проверь себя: сможешь объяснить WAL, не упоминая PostgreSQL?
Если нет – ты учил инструменты, а не принципы.
#devops #мышление #кейс #карьера #devitway
❤2👍2
⚡️ DevOps Digest #6 | 24.03.2026
🔥 Главное:
1. Istio переезжает на новый реестр образов – контейнеры из
https://istio.io/latest/blog/2026/retirement-of-gcr.io/
2. Prometheus: флаг uncached-io для предсказуемого потребления памяти – экспериментальный флаг отключает страничный кэш при компакции блоков, снижая давление на память контейнера и устраняя «призрачное» потребление, которое путает мониторинг и провоцирует OOMKill.
https://prometheus.io/blog/2026/03/05/uncached-io/
3. PentAGI – автономный ИИ-агент для тестирования на проникновение – open-source система на Go, способная самостоятельно выполнять сценарии пентеста. 3400+ звёзд за неделю на GitHub.
https://github.com/vxcontrol/pentagi
4. Canonical выпустила MicroCloud 3.1 – инструмент для быстрого развёртывания кластеров на собственном оборудовании с распределённым хранилищем и защищённой виртуальной сетью. Написан на Go, лицензия AGPL 3.0, ставится из snap.
https://www.opennet.ru/opennews/art.shtml?num=65048
5. Технический анализ перехвата трафика в клиенте Telega – 18 марта создатели «удобного Telegram без VPN» активировали перенаправление трафика через свои серверы с отключённым PFS и нейросетевым анализом переписки. Воспроизводимый разбор с доказательствами.
https://habr.com/ru/articles/1014144/
🔍 Почему Prometheus «ест» больше памяти, чем вы думаете
Путаница между
🛠 Команда дня:
Покажет все поды с образами Istio из старого реестра
#дайджест #kubernetes #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Istio переезжает на новый реестр образов – контейнеры из
gcr.io/istio-release перестанут быть доступны с 1 января 2027. Новый адрес – registry.istio.io. Если не мигрировать, поды при рестарте перестанут подниматься.https://istio.io/latest/blog/2026/retirement-of-gcr.io/
2. Prometheus: флаг uncached-io для предсказуемого потребления памяти – экспериментальный флаг отключает страничный кэш при компакции блоков, снижая давление на память контейнера и устраняя «призрачное» потребление, которое путает мониторинг и провоцирует OOMKill.
https://prometheus.io/blog/2026/03/05/uncached-io/
3. PentAGI – автономный ИИ-агент для тестирования на проникновение – open-source система на Go, способная самостоятельно выполнять сценарии пентеста. 3400+ звёзд за неделю на GitHub.
https://github.com/vxcontrol/pentagi
4. Canonical выпустила MicroCloud 3.1 – инструмент для быстрого развёртывания кластеров на собственном оборудовании с распределённым хранилищем и защищённой виртуальной сетью. Написан на Go, лицензия AGPL 3.0, ставится из snap.
https://www.opennet.ru/opennews/art.shtml?num=65048
5. Технический анализ перехвата трафика в клиенте Telega – 18 марта создатели «удобного Telegram без VPN» активировали перенаправление трафика через свои серверы с отключённым PFS и нейросетевым анализом переписки. Воспроизводимый разбор с доказательствами.
https://habr.com/ru/articles/1014144/
🔍 Почему Prometheus «ест» больше памяти, чем вы думаете
Путаница между
container_memory_usage_bytes, container_memory_working_set_bytes и container_memory_rss – боль каждого, кто настраивал лимиты в Kubernetes (этой проблеме уже 9 лет, и issue до сих пор открыт). Причина – страничный кэш ядра: данные, записанные при компакции, остаются в кэше и учитываются в usage_bytes, хотя процессу не нужны. Флаг --enable-feature=uncached-io использует прямой ввод-вывод (O_DIRECT) для записи компактируемых блоков, обходя кэш. Если ваш Prometheus регулярно упирается в лимит памяти – включите флаг и сравните потребление до и после.🛠 Команда дня:
kubectl get pods --all-namespaces -o json \
| jq -r '.items[] | select(.spec.containers[].image | startswith("gcr.io/istio-release")) | "\(.metadata.namespace)/\(.metadata.name)"'
Покажет все поды с образами Istio из старого реестра
gcr.io – если список не пуст, пора мигрировать на registry.istio.io#дайджест #kubernetes #security
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
Istio
Istio is Migrating Container Registries
What you can do today to ensure your clusters are not impacted by the retirement of `gcr.io/istio-release`.
🔥3❤1
NORA v0.2.35
за 2 недели: 7 релизов, токены на Argon2id, SLSA provenance, полный npm proxy, заявка в Роспатент.
Из интересного: уже несколько просьб добавить Go module proxy. Значит, кому-то нужно, добавил в роудмеп.
Если хочешь попробовать контрибьют, есть несколько несложных issues, буду рад помощи: github.com/getnora-io/nora/issues
Подробный changelog — в @getnora
Статья на dev.to: dev.to/devitway/why-i-replaced-nexus-with-a-32mb-binary-470f
#кейс #rust
за 2 недели: 7 релизов, токены на Argon2id, SLSA provenance, полный npm proxy, заявка в Роспатент.
Из интересного: уже несколько просьб добавить Go module proxy. Значит, кому-то нужно, добавил в роудмеп.
Если хочешь попробовать контрибьют, есть несколько несложных issues, буду рад помощи: github.com/getnora-io/nora/issues
Подробный changelog — в @getnora
Статья на dev.to: dev.to/devitway/why-i-replaced-nexus-with-a-32mb-binary-470f
#кейс #rust
👍2❤1
⚡️ DevOps Digest #7 | 27.03.2026
🔥 Главное:
1. Вышли nginx 1.28.3 и 1.29.7 – устранены 6 уязвимостей, четыре с рейтингом 8.5+. Три из них – переполнение буфера. Обновляйтесь без промедления.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65068
2. Библиотеку LiteLLM (95 млн загрузок/мес) скомпрометировали в PyPI. Версии 1.82.7 и 1.82.8 содержали код для кражи ключей и паролей. Вредоносные пакеты удалены, проект заморожен до окончания расследования.
🔗 https://futuresearch.ai/blog/litellm-attack-transcript/
3. Что происходит с открытыми Ollama-серверами: данные с трёх ловушек (DE, US, RU) за март. Трейдинг-боты, контент-фермы, перебор моделей. Если ваш Ollama доступен извне – гости уже в пути.
🔗 https://habr.com/ru/articles/1015646/
4. llm-d – open-source платформа для запуска больших языковых моделей на Kubernetes с аппаратным ускорением. Облачно-агностичное решение для самостоятельного развёртывания.
🔗 https://github.com/llm-d/llm-d
5. Коллекция Shell-приёмов для ежедневной работы – от продвинутого history до хитростей с перенаправлением потоков. 579 очков на Hacker News, значит зацепило многих.
🔗 https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
🔍 Цепочка поставок Python: один пакет, 95 миллионов загрузок
Атака на LiteLLM показывает: между
🛠 Команда дня:
Проверяет все установленные Python-пакеты на известные уязвимости. После компрометации LiteLLM – первое что стоит запустить на своих серверах.
#дайджест #security #kubernetes
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Вышли nginx 1.28.3 и 1.29.7 – устранены 6 уязвимостей, четыре с рейтингом 8.5+. Три из них – переполнение буфера. Обновляйтесь без промедления.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65068
2. Библиотеку LiteLLM (95 млн загрузок/мес) скомпрометировали в PyPI. Версии 1.82.7 и 1.82.8 содержали код для кражи ключей и паролей. Вредоносные пакеты удалены, проект заморожен до окончания расследования.
🔗 https://futuresearch.ai/blog/litellm-attack-transcript/
3. Что происходит с открытыми Ollama-серверами: данные с трёх ловушек (DE, US, RU) за март. Трейдинг-боты, контент-фермы, перебор моделей. Если ваш Ollama доступен извне – гости уже в пути.
🔗 https://habr.com/ru/articles/1015646/
4. llm-d – open-source платформа для запуска больших языковых моделей на Kubernetes с аппаратным ускорением. Облачно-агностичное решение для самостоятельного развёртывания.
🔗 https://github.com/llm-d/llm-d
5. Коллекция Shell-приёмов для ежедневной работы – от продвинутого history до хитростей с перенаправлением потоков. 579 очков на Hacker News, значит зацепило многих.
🔗 https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/
🔍 Цепочка поставок Python: один пакет, 95 миллионов загрузок
Атака на LiteLLM показывает: между
pip install и утечкой секретов может быть одно скомпрометированное обновление. Защита: фиксируйте версии в requirements.txt с хэшами (--require-hashes), держите приватное зеркало PyPI для продакшена, не обновляйте зависимости автоматически без проверки. Добавьте pip-audit в CI-конвейер – он сканирует пакеты на известные CVE.🛠 Команда дня:
pip-audit
Проверяет все установленные Python-пакеты на известные уязвимости. После компрометации LiteLLM – первое что стоит запустить на своих серверах.
#дайджест #security #kubernetes
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
www.opennet.ru
Обновления nginx 1.29.7 и 1.28.3 с устранением 6 уязвимостей
Сформирован выпуск основной ветки nginx 1.29.7, в рамках которой продолжается развитие новых возможностей, а также выпуск параллельно поддерживаемой стабильной ветки nginx 1.28.3, в которую вносятся только изменения, связанные с устранением серьёзных ошибок…
🔥3❤1
Гофер теперь живёт в NORA
NORA v0.3.0 — Go модули из коробки.
Одна строчка:
GOPROXY=https://your-nora:5000/go go build ./...
И все зависимости кэшируются у тебя.
Без Nexus, без Artifactory.
Что ещё в релизе:
→ Токены теперь Argon2id (SHA256 автомиграция, ты ничего не делаешь)
→ Retry при 5xx от upstream (Maven, npm, PyPI)
→ Интеграционные тесты: Docker push/pull, npm install — всё E2E
→ UI: все 7 реестров на одном дашборде
7 реестров. 32 МБ. Ноль зависимостей.
Docker · Maven · npm · Cargo · PyPI · Go · Raw
Полный changelog → @getnora
#кейс #rust
NORA v0.3.0 — Go модули из коробки.
Одна строчка:
GOPROXY=https://your-nora:5000/go go build ./...
И все зависимости кэшируются у тебя.
Без Nexus, без Artifactory.
Что ещё в релизе:
→ Токены теперь Argon2id (SHA256 автомиграция, ты ничего не делаешь)
→ Retry при 5xx от upstream (Maven, npm, PyPI)
→ Интеграционные тесты: Docker push/pull, npm install — всё E2E
→ UI: все 7 реестров на одном дашборде
7 реестров. 32 МБ. Ноль зависимостей.
Docker · Maven · npm · Cargo · PyPI · Go · Raw
Полный changelog → @getnora
#кейс #rust
🔥6
⚡️ DevOps Digest #8 | 31.03.2026
🔥 Главное:
1. Компрометация axios в npm – в популярнейшую HTTP-библиотеку (83 млн загрузок в неделю) через захват аккаунта мейнтейнера внедрили троян удалённого доступа. Третья крупная атака на цепочку поставок за неделю после LiteLLM и Telnyx.
🔗 https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
2. Microsoft Copilot вставляет рекламу в pull-запросы – ИИ-ассистент начал добавлять рекламу лаунчера Raycast в описания PR на GitHub и GitLab. Обнаружено уже 1,5 млн затронутых pull-запросов.
🔗 https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/
3. Ubuntu продолжает переход на Rust – в версии 26.10 интегрируют NTP-сервер ntpd-rs, который уже используется в Let's Encrypt. Это третий Rust-компонент после Coreutils и sudo-rs. Заодно уберут поддержку Btrfs, XFS, ZFS и LVM в /boot.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65092
4. Beszel – легковесный мониторинг серверов на Go с историей метрик, статистикой Docker-контейнеров и алертами. Разворачивается на своих серверах, минимальные требования к ресурсам.
🔗 https://github.com/henrygd/beszel
5. Как превратить, что угодно в роутер – подробное руководство по настройке маршрутизации на Linux: iptables, NAT, DHCP, DNS. Полезно для лабораторий и изолированных площадок.
🔗 https://nbailey.ca/post/router/
6. Анонимизация данных с прода в «Гринатоме» – опыт внедрения security-лейблов в Postgres Pro Enterprise для безопасного тестирования на реальных данных. Почему синтетика не заменяет реальный массив и как не нарушить 152-ФЗ.
🔗 https://habr.com/ru/companies/greenatom/articles/1014942/
🔍 Три атаки на цепочку поставок за неделю
axios (npm), LiteLLM и Telnyx (PyPI) – все скомпрометированы через захват аккаунтов мейнтейнеров. Паттерн одинаковый: получают доступ к учётке, публикуют вредоносную версию, собирают секреты из окружения и рабочих директорий жертвы. Двухфакторная аутентификация на всех реестрах пакетов – не рекомендация, а обязательное требование. Для критичных зависимостей пинните хеши и проверяйте подписи.
🛠 Команда дня:
Мгновенный снимок потребления ресурсов всех контейнеров: CPU, память, сеть.
#дайджест #security #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
🔥 Главное:
1. Компрометация axios в npm – в популярнейшую HTTP-библиотеку (83 млн загрузок в неделю) через захват аккаунта мейнтейнера внедрили троян удалённого доступа. Третья крупная атака на цепочку поставок за неделю после LiteLLM и Telnyx.
🔗 https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
2. Microsoft Copilot вставляет рекламу в pull-запросы – ИИ-ассистент начал добавлять рекламу лаунчера Raycast в описания PR на GitHub и GitLab. Обнаружено уже 1,5 млн затронутых pull-запросов.
🔗 https://notes.zachmanson.com/copilot-edited-an-ad-into-my-pr/
3. Ubuntu продолжает переход на Rust – в версии 26.10 интегрируют NTP-сервер ntpd-rs, который уже используется в Let's Encrypt. Это третий Rust-компонент после Coreutils и sudo-rs. Заодно уберут поддержку Btrfs, XFS, ZFS и LVM в /boot.
🔗 https://www.opennet.ru/opennews/art.shtml?num=65092
4. Beszel – легковесный мониторинг серверов на Go с историей метрик, статистикой Docker-контейнеров и алертами. Разворачивается на своих серверах, минимальные требования к ресурсам.
🔗 https://github.com/henrygd/beszel
5. Как превратить, что угодно в роутер – подробное руководство по настройке маршрутизации на Linux: iptables, NAT, DHCP, DNS. Полезно для лабораторий и изолированных площадок.
🔗 https://nbailey.ca/post/router/
6. Анонимизация данных с прода в «Гринатоме» – опыт внедрения security-лейблов в Postgres Pro Enterprise для безопасного тестирования на реальных данных. Почему синтетика не заменяет реальный массив и как не нарушить 152-ФЗ.
🔗 https://habr.com/ru/companies/greenatom/articles/1014942/
🔍 Три атаки на цепочку поставок за неделю
axios (npm), LiteLLM и Telnyx (PyPI) – все скомпрометированы через захват аккаунтов мейнтейнеров. Паттерн одинаковый: получают доступ к учётке, публикуют вредоносную версию, собирают секреты из окружения и рабочих директорий жертвы. Двухфакторная аутентификация на всех реестрах пакетов – не рекомендация, а обязательное требование. Для критичных зависимостей пинните хеши и проверяйте подписи.
🛠 Команда дня:
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"Мгновенный снимок потребления ресурсов всех контейнеров: CPU, память, сеть.
#дайджест #security #devops
💬 Переслал коллегам? Пусть подпишутся: @DevITWay
www.stepsecurity.io
axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity
Hijacked maintainer account used to publish poisoned axios releases including 1.14.1 and 0.30.4. The attacker injected a hidden dependency that drops a cross platform RAT. We are actively investigating and will update this post with a full technical analysis.
🔥3
Запускаю КМБ — Курс молодого бойца
Linux-администратор с нуля. Путь в DevOps через практику.
Для тех, кто хочет в IT, но не знает с чего начать.
Что внутри:
— Несколько Linux-серверов: веб-сервер, приложение, база данных — как в реальной компании
— AI-наставник прямо в терминале
— Реальные задачи, не видеолекции
— 24 недели от «что такое терминал» до «поднял и обслуживаю веб-приложение»
Для кого:
— Хочешь сменить профессию на IT
— Нет опыта — не проблема
— Совмещаешь с работой — темп гибкий
После КМБ — готов к работе Linux-администратором или к DevOps-интенсиву
Подробности: devitacademy.com/kmb
Заявка: DevITWay@gmail.com
Звонок: +7 924 077-81-83
ТГ: @devitway_pavel
#курс #linux
Linux-администратор с нуля. Путь в DevOps через практику.
Для тех, кто хочет в IT, но не знает с чего начать.
Что внутри:
— Несколько Linux-серверов: веб-сервер, приложение, база данных — как в реальной компании
— AI-наставник прямо в терминале
— Реальные задачи, не видеолекции
— 24 недели от «что такое терминал» до «поднял и обслуживаю веб-приложение»
Для кого:
— Хочешь сменить профессию на IT
— Нет опыта — не проблема
— Совмещаешь с работой — темп гибкий
После КМБ — готов к работе Linux-администратором или к DevOps-интенсиву
Подробности: devitacademy.com/kmb
Заявка: DevITWay@gmail.com
Звонок: +7 924 077-81-83
ТГ: @devitway_pavel
#курс #linux
🔥3👍2🙏1
NORA теперь в Awesome Docker 🐳
Короткий апдейт: мой PR в awesome-docker вчера ночью успешно смерджили. Теперь NORA официально числится в списке годного инструментария для работы с контейнерами.
Приятно, что подход к производительности и минимализм на Rust находят отклик. Для тех, кто следит за версией 0.3.0: это хороший маркер, что двигаемся в правильном направлении.
И нет, это не первоапрельская шутка. Ссылка в репозитории уже живая.
Работаем дальше.
P.S. В репозитории висит несколько открытых ишуек, если есть желание поконтрибьютить, залетайте.
#кейс #rust
Короткий апдейт: мой PR в awesome-docker вчера ночью успешно смерджили. Теперь NORA официально числится в списке годного инструментария для работы с контейнерами.
Приятно, что подход к производительности и минимализм на Rust находят отклик. Для тех, кто следит за версией 0.3.0: это хороший маркер, что двигаемся в правильном направлении.
И нет, это не первоапрельская шутка. Ссылка в репозитории уже живая.
Работаем дальше.
P.S. В репозитории висит несколько открытых ишуек, если есть желание поконтрибьютить, залетайте.
#кейс #rust
👍4❤2🔥1
Round Robin — свинья на дежурство
Дефолтная балансировка в большинстве систем, и никто его не трогает, «потому что работает же». До первой нормальной нагрузки.
Допустим у нас есть три сервера. Один пускай будет «ветеран» на HDD, который выжил чисто случайно, и два бодрых на NVMe. Пятница, вечер, трафик делает x3.
Round Robin честно пилит запросы поровну. Ему фиолетово, что старый диск захлёбывается. В итоге: очередь растёт, время ответа улетает в потолок, а треть твоих юзеров ловит таймауты. Ты в это время ловишь алерты и пытаешься понять, почему всё горит, если два сервера из трёх почти простаивают.
Least Connections эту драму даже не заметит. Он видит, что одна нода тормозит, и просто перестаёт на неё лить. Всё. Тишина и спокойствие.
Чтобы не объяснять это на пальцах, я собрал симулятор. Там наглядно видно, как ложится сервис при разных раскладах: смерть ноды, скачок трафика или просто тормозной бэкенд. Зайти и бахнуть трафиком можно тут:
👉 sim.devitacademy.com
Посмотрите, как ведут себя алгоритмы под нагрузкой. Разница видна секунд за 30, без регистрации и смс, как говорится.
#кейс #devops
Дефолтная балансировка в большинстве систем, и никто его не трогает, «потому что работает же». До первой нормальной нагрузки.
Допустим у нас есть три сервера. Один пускай будет «ветеран» на HDD, который выжил чисто случайно, и два бодрых на NVMe. Пятница, вечер, трафик делает x3.
Round Robin честно пилит запросы поровну. Ему фиолетово, что старый диск захлёбывается. В итоге: очередь растёт, время ответа улетает в потолок, а треть твоих юзеров ловит таймауты. Ты в это время ловишь алерты и пытаешься понять, почему всё горит, если два сервера из трёх почти простаивают.
Least Connections эту драму даже не заметит. Он видит, что одна нода тормозит, и просто перестаёт на неё лить. Всё. Тишина и спокойствие.
Чтобы не объяснять это на пальцах, я собрал симулятор. Там наглядно видно, как ложится сервис при разных раскладах: смерть ноды, скачок трафика или просто тормозной бэкенд. Зайти и бахнуть трафиком можно тут:
👉 sim.devitacademy.com
Посмотрите, как ведут себя алгоритмы под нагрузкой. Разница видна секунд за 30, без регистрации и смс, как говорится.
#кейс #devops
🔥6
Первая статья на Хабре
Да, я понимаю иронию – писать в Telegram о том, что Telegram заблокировали. Для личного пользования все всё понимают. Но когда приходит аудит и слово «регламент» – VPN на сервере мониторинга перестаёт быть решением.
Telegram замедляли с февраля, в апреле заблокировали окончательно. Алерты из Zabbix перестали доходить.
Кто когда-то строил ChatOps на Mattermost, а потом смотрел как его сворачивают и заменяют на то, что никогда не закроет потребности дежурной смены – тот понимает, зачем нужен свой канал доставки.
Я написал Pusk – self-hosted сервер алертов на Go + SQLite. Один бинарник, мимикрирует под Telegram Bot API. Чтобы переехать, достаточно поменять base_url в конфиге бота – он продолжит работать, не зная, что под капотом уже не Telegram.
На Хабре разложил архитектуру:
— Почему один бинарник с SQLite, а не Mattermost с Postgres на полгига RAM.
— ACK алертов: дежурный нажал кнопку → Alertmanager создал silence автоматически. Видно, кто взял инцидент.
— WebSocket-relay для ботов за NAT — без ngrok и обратных туннелей.
— Что не сделано и почему.
В статье написано 16 МБ – пока была на модерации, собачка немного подросла. Но всё ещё не Mattermost.
Если алерты летят через VPN в заблокированный мессенджер – возможно пригодится.
👉 Статья: habr.com/ru/articles/1018932/
💻 Код: github.com/getpusk/pusk
#кейс #devops
Да, я понимаю иронию – писать в Telegram о том, что Telegram заблокировали. Для личного пользования все всё понимают. Но когда приходит аудит и слово «регламент» – VPN на сервере мониторинга перестаёт быть решением.
Telegram замедляли с февраля, в апреле заблокировали окончательно. Алерты из Zabbix перестали доходить.
Кто когда-то строил ChatOps на Mattermost, а потом смотрел как его сворачивают и заменяют на то, что никогда не закроет потребности дежурной смены – тот понимает, зачем нужен свой канал доставки.
Я написал Pusk – self-hosted сервер алертов на Go + SQLite. Один бинарник, мимикрирует под Telegram Bot API. Чтобы переехать, достаточно поменять base_url в конфиге бота – он продолжит работать, не зная, что под капотом уже не Telegram.
На Хабре разложил архитектуру:
— Почему один бинарник с SQLite, а не Mattermost с Postgres на полгига RAM.
— ACK алертов: дежурный нажал кнопку → Alertmanager создал silence автоматически. Видно, кто взял инцидент.
— WebSocket-relay для ботов за NAT — без ngrok и обратных туннелей.
— Что не сделано и почему.
В статье написано 16 МБ – пока была на модерации, собачка немного подросла. Но всё ещё не Mattermost.
Если алерты летят через VPN в заблокированный мессенджер – возможно пригодится.
👉 Статья: habr.com/ru/articles/1018932/
💻 Код: github.com/getpusk/pusk
#кейс #devops
🔥8