Обновить
512K+

DevOps *

Методология разработки программного обеспечения

329
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Безопасная песочница

Время на прочтение5 мин
Охват и читатели3.2K

Каждую неделю появляется новая песочница для агентов. Большинство таких решений опирается на встроенные механизмы Linux: namespaces, seccomp, cgroups и Landlock. Эти инструменты полезны, но они делят одно ядро с хостом и оставляют оператора внутри модели политик хоста. Полная microVM дает более четкую границу: ядро, которое вы сами выбрали, корневой диск, который можно проверить, сетевой линк, который можно записать, и отказ, который не становится состоянием хоста.

Читать далее

Новости

VPS-бастион: доступ к домашнему серверу без белого IP

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели7.7K

У вас дома крутятся полезные сервисы: Home Assistant, Jellyfin, code-server или Nextcloud. Или вы только собираетесь их запустить. Пока вы дома, всё открывается по локальному IP. Но стоит выйти за пределы квартиры, и сервисы пропадают. Причина: провайдер выдал серый IP-адрес, то есть применяет CGNAT. Белый адрес получить либо нельзя (примерно, как советский дефицит), либо он стоит дополнительных денег.

Читать далее

Релиз GitLab 19.0: ИИ‑оркестрация, которая наконец‑то догнала темп написания кода

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4.8K

21 мая 2026 года вышел мажорный релиз, переосмысляющий то, как платформа управляет жизненным циклом от идеи до деплоя.

Основной повесткой как уже принято стал ИИ, в Gitlab уделили этому особое внимание.
ИИ уже генерирует больше кода, чем успевают проверять инженеры. Merge Request'ы накапливаются, конфликты разрастаются, секреты утекают в переменные окружения, а зависимости с уязвимостями тихо живут в requirements.txt. GitLab 19.0 отвечает на этот вызов не просто набором фич, а сменой парадигмы: платформа берёт на себя операционную работу, оставляя командам только решения, требующие человеческого суждения.

Ниже я разберу релиз подробно, постараюсь описать примеры конфигурации, архитектурные схемы и дам выводы, таким образом как я это понял)

Читать далее

Мониторинг Kerio Connect через Zabbix 7: разбор шаблона без агентов и regex по DAT

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели5.1K

Kerio Connect — почтовый сервер, который в нашей стране всё ещё крутится в десятках организаций, особенно тех, что когда-то слезли с Exchange и не захотели возвращаться. Для системного администратора это означает простую вещь: почта работает, а наблюдать за ней нечем. Официальная страница zabbix.com/integrations предлагает шаблоны только для Kerio Control (фаервол), для Connect — пустота. В zabbix/community-templates тоже пусто. На форумах советуют парсить графический DAT-файл регулярками — работает, но теряется API-уровень.

У меня под рукой Kerio Connect 10.x в продакшене, и однажды я устал смотреть на него через веб-интерфейс и счётчики антиспама в логе. За несколько дней собрал Zabbix 7 шаблон поверх Kerio Admin API (JSON-RPC), выложил под MIT. В статье — разбор того, что выяснилось: почему минимальная роль для API оказалась тупиком, как 4 вызова уложились в один master-айтем, что делать с отрицательной дельтой на counter reset и почему агент на хосте всё-таки иногда нужен. Без пересказа документации, с граблями.

Читать далее

Как сисадмин написал свою библиотеку для Jira на Ruby: история Rujira

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.9K

Привет, Хабр!

Давайте сразу начистоту: я не профессиональный программист. Я системный администратор и DevOps-инженер. Мой день состоит из автоматизации процессов, настройки серверов, написания скриптов и бесконечной рутины. И, конечно же, работы с тикет-системами, главная из которых — Jira.

Если есть необходимость взаимодействовать с Jira из Ruby-кода, то обычно выбирают гем jira-ruby — заслуженный стандарт индустрии.

Однако, попробовав использовать его для простых скриптов автоматизации в админской экосистеме, я понял: этот инструмент слишком избыточен и тяжел для сисадминских нужд. Мне хотелось чего-то простого, легкого и понятного. Так родилась rujira — моя собственная легковесная библиотека для работы с Jira REST API.

В этой статье я расскажу, почему меня не устроил стандартный гем, как сисадминский взгляд на инструмент помог сделать его удобнее для простых скриптов, и почему rujira идеально подходит для небольших DevOps-задач.

Читать далее

15 Google-аккаунтов и ни рубля на ИИ: пишу VPN-сервис в одиночку

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели18K

Я начал с requests.get() к Hysteria2 API, а через месяц получил рабочий VPN-сервис: FastAPI, React, PostgreSQL, JWT, Docker Compose, несколько VPS-нод, сбор трафика и автодеплой. А ещё выводы о работе с ИИ: где он ускоряет разработку, как улучшить качество кода и почему без собственного понимания проект быстро превращается в месиво.

Читать далее

Ваш Kubernetes упал: найдёте root cause за 15 минут?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели14K

Вторник, 14:00. Кластер Kubernetes перестал отвечать, команда в панике, а вам нужно за 15 минут найти первопричину.

В этой статье пройдём диагностику реального отказа вместе с SRE: увидим логи, манифест etcd и ошибки, которые совершают даже опытные инженеры. Попробуйте сначала решить задачу сами, а потом сверьтесь с пошаговым разбором и проверьте, насколько вы готовы к такому инциденту.

Читать далее

Безопасный Docker с torque

Время на прочтение8 мин
Охват и читатели11K

torque

Большинство советов по сборке Docker заканчиваются на порядке слоёв: сначала копируйте манифесты зависимостей, запускайте менеджер пакетов, затем копируйте остальной исходный код. Это полезно, но недостаточно для инструмента релиза. Инструмент релиза должен отвечать на более сложные вопросы. Какой процесс имел право читать дерево исходного кода? Какие учётные данные достигли сборщика? Был ли сокет Docker предоставлен недоверенной команде? Кэш пришёл из предыдущей ветки, общего бакета или пустого локального сборщика? Может ли агент объяснить, почему сборка была быстрой, без парсинга логов BuildKit? На все эти вопросы поможет ответить torque.

Читать далее

Torque: релизы на автопилоте

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.4K

DevOps и CI/CD эволюционируют в сторону агентных систем: вместо ручных скриптов и разрозненных инструментов — декларативные стеки, верифицируемые планы и автономные агенты, которые выполняют, проверяют и фиксируют доставку. Статья показывает, что Torque — один из возможных путей к такому будущему, где инфраструктура становится предсказуемой, аудируемой и готовой к работе с ИИ-агентами.

Читать далее

Как мы в отделе документации создали LLM агента для автоматизированного перевода с английского на другие языки

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6K

Разбираем, как в отделе документации построили LLM-агента для автоматизированного перевода Markdown-документации. Архитектура, пайплайн, валидация, работа с Ollama, OpenWebUI и Qwen, плюсы и ограничения подхода. 

Читать далее

Разворачиваем облачный ТОиР на заводе за две недели

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели7.2K

Исторически сложилось, что автоматизация ТОиР на заводах — это долго и дорого.

В статье разберем, как сократить этот цикл: отказаться от закупки серверов, перенести систему в облако и запустить пилот на реальном участке за считаные недели с первыми результатами уже через несколько месяцев.

Читать далее

Пайплайн не должен хранить секрет: безопасное хранение и доставка секретов для CI/CD с Deckhouse Code и Stronghold

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели9K

CI/CD-пайплайн, который хранит секреты, — это риск. В безопасной модели он получает доступ к чувствительным данным только на время выполнения задачи и строго в рамках своих прав.

Разбираем, почему GitLab CI/CD Variables — это не хранилище секретов, какие подводные камни ждут при самодельной интеграции GitLab CE с HashiCorp Vault и как связка Deckhouse Code и Stronghold закрывает эти проблемы без Bash-портянок в before_script.

Читать далее

Claudex: как я подружил Claude Code с ChatGPT/Codex OAuth без OpenAI API key

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели13K

Я хотел запускать Claude Code через подписку ChatGPT/Codex. Без OpenAI API key и без потери привычных вещей: инструментов, скриншотов, /compact, длинных сессий и нормальных ошибок.

На бумаге это выглядит как простой локальный прокси. На практике пришлось переводить не только JSON, но и поведение Anthropic API: потоковые события, вызовы инструментов, лимиты контекста, файлы, картинки и типы ошибок.

Так появился мой open source fork Claudex. Репозиторий: github.com/pilc80/claudex. Лицензия — MIT.

Читать далее

Ближайшие события

Лёгкий мониторинг Proxmox-кластера: Pulse вместо большого Zabbix-стека

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели14K

Полчаса в день у меня уходило на ручной обход шести нод Proxmox через веб-интерфейс — он показывает по одной ноде за раз. И часть рутины всё равно проскакивала: задание PBS остановилось — никто не заметил, ZFS scrub отключили на maintenance и забыли включить, на ноде накопились pending kernel updates, и о них узнаёшь, когда уже надо ребутить.

На Proxmox-кластере, который я администрирую, после миграции с проприетарного гипервизора этот операционный долг копился особенно быстро: отключённые таймеры scrub, остановленные после рестарта PBS задания резервного копирования, дрейф конфигурации между нодами после мажорного апгрейда.

Стандартный путь — полноценный observability-стэк: Zabbix или Prometheus + Alertmanager + Grafana. Это правильный путь, но он плохо подходит к задаче «быстро получить единый экран по Proxmox-кластеру». В этой статье — про другой вариант: лёгкий read-only слой над Proxmox/PBS, который разворачивается за несколько часов и закрывает первый уровень видимости. Инструмент называется Pulse — где он работает, где нет, и что выяснилось в первый месяц эксплуатации.

Читать далее

Как я Zabbix с LLM дружил в свободное время. Архитектурный обзор взаимодействия с нейросетью. Часть 3 HLD и немного LLD

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели10K

Это третья статья из цикла о том, как я пытался сделать алерты Zabbix в домашней лаборатории чуть умнее, прикрутив к ним локальную LLM и не получить на выходе архитектурного монстра Франкенштейна.

В первой части мы разобрались с постановкой задачи и ТЗ, затем выбрали себе фаворита из локальных LLM, теперь же займемся скучным занятием- проектированием. В этой статье рассмотрим составление HLD и почему это должен делать человек, а что уже можно отдать нейросети в помощь.

В процессе написания материал разросся до неимоверных размеров, поэтому пришлось поделить его аж на четыре части. Впереди осталась самая интересная заключительная часть с тем, что получилось на выходе. Ее планирую подготовить за 2-3 недели, т.к. это просто хобби.

Часть 1: Вводная и формирование ТЗ
Часть 2: Выбор локальной LLM
Часть 3: Формирование HLD и немного LLD -> вы здесь
Часть 4: Что из этого вышло

Читать далее

Повесть о конфигурации как инженерной гигиене

Время на прочтение17 мин
Охват и читатели10K

Привет, Хабр! Меня зовут Юрий Соловьёв, я ведущий инженер в команде экосистемы Tarantool. С опытом я пришел к тому, что конфигурация должна иметь строгую спецификацию, так же как и HTTP API. В этой статье я предлагаю альтернативный подход на базе protobuf и постараюсь показать, что это не избыточная сложность, а необходимый уровень инженерной гигиены — особенно для систем, рассчитанных на долгую и стабильную жизнь. Это в какой-то мере технорассказ, которым я хочу поделиться — и именно в такой форме.

Читать далее

ИИ-агент сам создал тикет, сам же его взял, и сам закрыл. Менеджер ничего не заметил

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

Автономные агенты в разработке уже встроены в CI/CD живых команд, закрывают реальные тикеты и пишут код, который идёт в прод. Проблема не в том, что они это делают плохо, а в том, что метрики при этом выглядят слишком отлично.

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

Читать далее

eBPF для начинающих: практическое введение

Время на прочтение11 мин
Охват и читатели8.5K

Современные инструменты мониторинга (Prometheus, Grafana, профилировщики) обеспечивают хорошую видимость состояния приложения, но имеют ограничения при анализе низкоуровневых проблем. Технология eBPF (Extended Berkeley Packet Filter) позволяет преодолеть этот барьер, предоставляя безопасный доступ к событиям ядра Linux. 

Статья — это практическое введение в eBPF: попробуем готовые команды для наблюдаемости, сети и безопасности, разберём, как программа попадает в ядро и взаимодействует с user-space через maps и helpers, почему верификатор отклоняет «опасный» код и чем отличаются BCC, libbpf и bpftrace. В конце — короткий обзор того, как eBPF используют Cilium, Falco и Pixie.

Материал будет полезен программистам, DevOps-инженерам, SRE-специалистам и всем, кто интересуется Linux.

Читать далее

Взлом GitHub-репозиториев Grafana Labs: как атака на цепочку поставок npm привела к краже кодовой базы и вымогательству

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.4K

Часть I: Первопричина - атака Mini Shai-Hulud на экосистему TanStack

Цепочка поставок как вектор атаки

11 мая 2026 года, в промежутке с 19:20 до 19:26 UTC, произошло одно из наиболее технически изощрённых событий в истории атак на цепочку поставок npm. Группировка TeamPCP опубликовала 84 вредоносные версии пакетов в рамках 42 пакетов из пространства имён @tanstack/* - и всё это за шесть минут.

Кампания получила название Mini Shai-Hulud - отсылка к гигантским песчаным червям из вселенной «Дюны» Фрэнка Герберта. Это не первая волна активности TeamPCP: до этого они скомпрометировали сканер Trivy от Aqua Security в марте 2026-го и npm-пакет Bitwarden CLI в апреле 2026-го. Каждая следующая волна технически сложнее предыдущей.

Как работала атака: три уязвимости в одной цепочке

Атака объединила три уязвимости, каждая из которых по отдельности была бы недостаточна. Злоумышленник создал форк репозитория TanStack/router, открыл pull request, который запустил workflow с триггером pull_request_target, и отравил кэш GitHub Actions через границу доверия fork↔base. Когда легитимный workflow сработал, отравленный кэш был восстановлен, а вредоносный код извлёк OIDC-токен прямо из памяти процесса runner'а.

Ключевой момент: злоумышленники не крали статические npm-токены. Вместо этого они извлекали runtime OIDC-токены напрямую из памяти процесса runner'а, что позволило им аутентифицироваться легитимным образом через trusted publisher bindings и публиковать скомпрометированные обновления в npm-реестр.

Масштаб заражения

Читать далее

Культура инцидентов. Почему поиск виновных на постмортемах убивает надёжность системы

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели6.6K

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

В статье разбираемся, почему культура поиска виновных делает инфраструктуру хрупче, как работает blameless‑подход, зачем командам error budget и какие управленческие механизмы помогают превращать инциденты в системные улучшения.

Разобрать подход
1
23 ...