Обновить
512K+

DevOps *

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

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

Разворачивайте сразу платформу с помощью Stackfile

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

Helmfile может координировать несколько Helm релизов. Argo CD и Flux могут синхронизировать Kubernetes объекты с Git. Terraform и Pulumi могут создать инфраструктуру. Argo Workflows может запускать jobs. В этом стеке такие инструменты используются там, где они уместны, но граница стека шире. Развертывание начинается с удаленного Linux хоста, создает k3s lab на Firecracker microVM, открывает контролируемый tunnel для локального доступа к Kubernetes, создает или проверяет S3 bucket, устанавливает платформенные сервисы, разворачивает fraud workloads, запускает Spark, запускает replay и проверяет путь данных снаружи кластера.

Читать далее

Новости

Как перестать путаться в IP-адресах серверов

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

В своёй работе мне часто необходимо подключаться к серверам через SSH и по другим протоколам. Часто эти сервера не имеют доменного имени, а подключаться необходимо по IP‑адресу.
Когда этих серверов 2-3, ещё как-то запоминаешь что на каком сервере находится. Но когда их становится больше 10, то помнить что находится на xxx.xxx.xxx.115, а что на yyy.yyy.yyy.71 проблематично.

Выход есть, можно дать этим адресам локальные доменные имена.

Привет! Меня зовут Игорь, я занимаюсь разработкой в геймдеве на Unity c 2018 года.
Короткая статья о том, как упорядочить хаос из IP-адресов.

Читать далее

Домашний сервер без белого IP: безопасная публикация сервисов через VPS, обратный SSH-туннель и Caddy

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

Как безопасно опубликовать домашний сервер без белого IP и проброса портов: домашний сервер сам устанавливает исходящее SSH-соединение к VPS, на VPS создаётся локальный endpoint обратного SSH-туннеля, а внешний доступ к сервисам отдаётся через Caddy по HTTPS. Backend-порты вроде Nextcloud, Home Assistant или Jellyfin не открываются напрямую в интернет, а остаются доступными только через loopback и reverse proxy. Отдельное внимание уделено hardening: ограниченный пользователь tunneluser, SSH-ключи, autossh, systemd, UFW, проверка sshd_config и диагностика типовых ошибок.

Поехали

Хотел упростить мониторинг проектов и в отпуск — пришлось обучать свой LLM. Часть 4. Тестирование

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

Продолжаем серию про файнтюнинг и создание DevOps-агента Oni. В первой части я собирался в отпуск и хотел, чтобы локальная моделька через OpenClaw сама мониторила ошибки и переподнимала проекты — пока я отдыхаю. Перебрал много разных моделей через Ollama и понял, что половина либо не умеет tool calling, либо ломаются на multi-step. В отпуск я в итоге не уехал — вместо этого снял VM с RTX 3090, начал учить Qwen3-14B через Unsloth QLoRA, а через неделю купил с авито старенький Dell с 3090, чтобы обучать у себя на локалке — стало интересно победить проблему.

Во второй части я пробовал разные подходы к файнтюнингу Qwen3:14b и понял: incremental delta-merge не работает. Дошёл до oni:v8 с 11/11 на Django scaffold, попытался добавить SSH/docker поверх — и модель забыла Django. Пять регрессий подряд, anchor-примеры не спасают, самый мягкий lr=1e-5 всё равно ломает. Познакомился с catastrophic forgetting, потратив пять ночей и полгигабайта удалённых GGUF-чекпоинтов. Переехал на fresh-from-base: каждая base-N с нуля от чистого Qwen3-14B, эволюционирует только датасет.

В третьей части — про дистилляцию. Hand-crafting упёрся в потолок: каждый трейс — это итерация с Claude, ревью, правки, повторная генерация, и так на каждый из тысяч примеров. Сделал локальную дистилляцию через gemma4:31b на той же 3090: сырые датасеты → фильтр → пере­формат в agent-trace → валидация → датасет. Получил внушительную базу датасетов для моего агента, не вкладывая деньги на сторону.

А эта, четвёртая часть — самая серьёзная. С неё начинается всё по-взрослому. Первые три — это «как я собрал инструмент». Тесты — это «как я понимаю, что инструмент вообще работает, и что он не работает не так, как я думаю». Без них вся история выше — самообман: цифры обучения красивые, чекпоинты лежат, в чате модель отвечает уверенно — а что она реально умеет, чего не умеет и где у неё дыры, ты не знаешь.

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели7.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 мин
Охват и читатели6K

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

torque

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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 мин
Охват и читатели15K

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

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

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

Читать далее

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

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

Полчаса в день у меня уходило на ручной обход шести нод 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 мин
Охват и читатели11K

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

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

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

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

Читать далее

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

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

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

Читать далее
1
23 ...