Обновить

Администрирование

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

IMPulse: аутентификация, Inhibition, Maintenance и шаблоны тредов

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

IMPulse - ChatOps система менеджмента инцидентов. Если вы получаете алерты напрямую от Alertmanager, IMPulse поможет формировать из них полноценные инциденты с эскалацией, ответственными и тредом обсуждения проблемы. Подробности в статье.

После прошлого поста вышли v3.4.0-v3.7.0. Ниже - что изменилось по факту.

Читать далее

Не переписывая пайплайны: переезд с include на GitLab CI Components

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

Переезд с include на GitLab CI Components: у модуля появляется объявленный spec: inputs с типами и дефолтами, а опечатка в имени input роняет пайплайн до старта…

Как переезжали

nxs‑anomaly: open‑source инструмент для алертинга и дежурств

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

Всем привет, меня зовут Пётр, я DevOps инженер компании Nixys. История с алертами и дежурствами для меня, как и для любого DevOps инженера, довольно противная, потому что не знаешь, что вызывает больше негатива: ложный звонок посреди ночи или критичный алерт, который почему-то не сработал.

Долгое время решением этого были Grafana OnCall, PagerDuty и другие платформы, которые предоставляли возможность установки open-source инструментов для оповещения инженеров, ведения смен и эскалации происшествий. Но в марте 2026 года состоялась полная архивация проекта Grafana OnCall OSS, а PagerDuty полностью прекратила сотрудничество с клиентами из России еще в 2022. И вот, время шло, а крепкой зарубежной opensource замены уровня Grafana так и не появлялось. Это побудило нас самостоятельно взяться за разработку локального проекта для управления алертингом, который мы бы хотели предоставить в открытый доступ.

Читать далее

Почему трафик филиалов тормозит через ЦОД и как исправить это с помощью Identity‑First

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

Когда весь трафик филиала сначала уходит в центральный ЦОД, привычная схема быстро начинает давать побочные эффекты: задержки растут, SSL‑инспекция становится дорогой, а попытка сделать обход через PBR приводит к асимметричным маршрутам.

Один из выходов — перенести принятие решений ближе к пользователю и строить маршрут с учётом его идентификатора и политики приложения. На конкретных конфигах посмотрим, как такую схему собрать с PoP, DNS, WireGuard и Envoy.

Разобрать архитектуру

Простая декларативная установка NixOS, часть 2.5 (теория) — Флейки и nixpkgs

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

Эта статья является прямым продолжением этой статьи, посвящённой декларативной разметке диска через disko.

Что мы будем делать сегодня?

Мы с вами разберёмся, что такое флейки, что они из себя представляют, а вместе с этим разберёмся с тем, как Nix устанавливает и хранит пакеты.

Это ЧИСТО ТЕОРЕТИЧЕСКАЯ статья, а не практическая. Иными словами - мы не будем сегодня писать никаких конфигураций или команд. Наша задача на данный момент - разобраться, что такое флейки и какую проблему они решают, прежде чем перейти к непосредственной работе с ними.

Что мы узнаем?

1. Что такое флейки, зачем они нужны и чем отличаются от стандартного nix-channels

2. Как работает установка и хранение пакетов в NixOs

Читать далее

Distributed tracing: как разобраться, что происходит с запросом внутри микросервисной системы

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

В распределённых системах недостаточно знать, что сервис работает медленно или начал возвращать ошибки. Нам часто нужно понять гораздо более конкретную вещь: что произошло с одним конкретным запросом и где именно он потерял время.

Для этого существует distributed tracing — распределённая трассировка.

В этой статье разберём, зачем она нужна, из чего состоит Trace, что такое Span, как между сервисами передаётся tracing context, какую роль в этом играет OpenTelemetry и где потом смотреть собранные данные.

Читать далее

Два TLS-сервиса на одном 443-м порту: разбор по SNI

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

Один публичный IP, один 443-й порт, на нём уже работает сервис с живыми пользователями — и туда же нужно посадить второй. Менять настройки на устройствах пользователей нельзя.

Разбираю, как разделить порт между двумя TLS-сервисами, ничего не расшифровывая: SNI уходит открытым текстом в ClientHello, и nginx умеет читать его директивой ssl_preread, оставаясь для TLS прозрачным. Отдельно — почему всё держится на ветке default, чем за прозрачность платят (бэкенд перестаёт видеть реальные адреса клиентов) и когда у этого решения закончится срок годности.

Читать далее

Как ESP32, MQTT и PowerShell заменили мне умную розетку

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

Уезжал в долгий отпуск, а дома оставалась рабочая машина с RTX 5090: GPU периодически нужен для локальных моделей. Оставлять её включённой на несколько недель не хотелось, просить родню жать кнопку, тем более.

В итоге дома круглосуточно работает только плата ESP32 за пять долларов от USB-зарядки для телефона. Жму кнопку в веб-панели, плата будит ПК по Wake-on-LAN и подтверждает включение в Telegram. После загрузки Windows сама цепляется к MQTT-брокеру и исполняет любые команды: от «выключись» до «выполни python-скрипт и пришли вывод». Отдельной командой поднимается reverse SSH, и локальная Ollama становится доступной как облачный эндпоинт.

В статье разбираем, почему включение и управление сделаны двумя раздельными каналами, как устроена прошивка с deep sleep (плата еле тёплая и живёт месяцами), зачем нужен дебаунс команд на 5 секунд и где у схемы честные слабые места. Плюс найденные по дороге грабли: кириллица в Telegram из PowerShell, Wi-Fi, который греет плату сильнее, чем кажется, и авто-выключение через час простоя, если я сам забыл про включённый ПК.

Читать далее

Как работает Docker в режиме Rootless

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

Привет, Хабр! Меня зовут Александр, я работаю DevOps-инженером в команде Мир Plat.Form. Одна из достаточно сложных задач, которая стояла перед отделом DevOps, это миграция Jenkins в K8S и развертывание динамических (эфемерных) агентов.

Сама миграция Jenkins оказалась относительно простой частью. Но поскольку для сборки и деплоя наших приложений мы активно используем подход DinD (Docker-in-Docker) при переносе Jenkins-агентов в Kubernetes нам пришлось учитывать ряд технических особенностей.

Для запуска Docker внутри Kubernetes мы решили использовать Docker в режиме Rootless. Именно этот подход и добавил миграции немало технических нюансов, о которых я расскажу дальше.

Читать далее

Как разблокировать LUKS-корень Альт Linux по SSH

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

Не так давно наткнулся на статью Red Hat про разблокировку LUKS-шифрования по SSH. Суть там простая: сервер с зашифрованным корнем перезагружается, замирает в initramfs и ждёт парольную фразу на консоли, за которой никто не сидит. Решение у редхатовцев выглядит довольно простым: поставить пакет dracut-sshd, включить модуль NetworkManager в initramfs, дописать параметры ядра. Несколько команд, и застрявшая машина открывается по SSH с вашего дивана.

И стало мне интересно: а как та же задача решается, если у меня на серваках крутится не RHEL, а наш Альт? Копировать редхатовский рецепт вслепую смысла нет: у Альта собственная система сборки initramfs и свои механизмы ранней загрузки. Тем любопытнее посмотреть, как всё устроено здесь.

TL;DR. Сделать можно. Проверил это на живой виртуалке. Рецепт в итоге вышел на удивление прямолинейный, но с двумя-тремя особенностями, о которых лучше узнать из статьи.

Читать далее

Анатомия FASTTRUNCATE: как 1С работает с временными таблицами в PostgreSQL

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

SELECT FASTTRUNCATE нет в документации PostgreSQL, но на боевой базе эта команда занимала 12.9% времени всех запросов. Разбираем, как платформа 1С на самом деле работает с временными таблицами, почему УНИЧТОЖИТЬ в запросе ничего не уничтожает и что изменилось в 8.3.25.

Читать далее

Сайт не открывается из России, хотя сервер в Москве

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

Вчера переехал на свой сервер. Сегодня утром обнаружил, что сайт у меня не открывается. Ни из дома, ни с телефона.

Сервер при этом в Москве, у российского хостера. И с ним всё в порядке.

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

Читать далее

Выполняю тестовое задание для DevOps Cloud.ru Camp 2025

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

Я тут недавно пытался попасть на бесплатные курсы от Aston, но получил отказ с такой формулировкой.

Денис, добрый день! После изучения вашей анкеты, к сожалению, мы не готовы пригласить вас к дальнейшему рассмотрению на обучение в компании. У нас очень большой поток кандидатов на курсы. В данный момент взяли в рассмотрение участников с показателями выше. Ваша анкета будет сохранена, возможно, вернемся к вашей кандидатуре, при наборе на следующий поток. Благодарим за внимание к нашей компании.

Хотя я даже не понял, как смогли оценить мои показатели и в чем они измерялись, если не давали ни тестового задания, ни собеседования. В анкете у них несколько вопросов и уровень образования. Но да ладно, это тема отдельной статьи.

Сегодня хочу попробовать пройти тестовое задание от клауд.ру. Оно охватывает тот самый стек для devops, linux, docker, git, kubernetes.

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

Тестовое задание состоит из 4 задач, начнем с первой.

Читать далее

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

EvertyDisplay: что я сделал и зачем

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

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

И однажды я подумал: а почему это пространство вообще должно заканчиваться там, где заканчивается физический монитор?

Читать далее

Как автоматизировать VLESS + Reality на старом Intel iMac с macOS Catalina 10.15.8: AUTO Xray

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

Старый Intel Mac с Catalina ещё рано списывать. VLESS + Reality на нём работает — но ручная настройка через V2RayXS, JSON и системный proxy быстро превращается в рутину.

Я собрал AUTO Xray: компактный клиент для macOS Catalina, который берёт на себя разбор подписки, выбор узлов и настройку proxy. В статье — как из ручного решения вырос готовый инструмент и что пришлось сделать, чтобы он стабильно работал на iMac 2013 года.

Читать далее

Где HTTP/2 и HTTP/3 реально быстрее, а где не дают ничего

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

Про HTTP/2 и HTTP/3 обычно пишут, что они ускоряют всё подряд. Я собрал стенд и померил сам: Caddy отдаёт одни и те же данные по всем трём протоколам, tc netem изображает шесть сетей — от дата-центра до края соты.

Результаты вышли неудобными. На десяти файлах HTTP/2 проигрывает старому HTTP/1.1. На одном крупном файле все три протокола показывают одинаковое время. В дата-центре новые протоколы отстают вчетверо. Выигрыш есть, но узкий и адресный.

Читать далее

Kubernetes просто, часть 1: зачем Kubernetes, устройство кластера

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

Kubernetes без магии и заучивания команд. Разберёмся, зачем он вообще нужен, как устроен кластер, чем Control Plane отличается от Worker Nodes и какую роль играют Pod, Scheduler, kubelet, etcd и другие основные компоненты.

Читать далее

Каким станет email в будущем

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

Электронной почте больше полувека, и это одна из немногих технологий, которая пережила всё: смену операционок, браузерные войны, взлёт и падение десятков мессенджеров. Секрет её долголетия в принципе «не сломано — не чини» и децентрализованной природе, унаследованной от вольных университетских лабораторий, где всё и зарождалось.

Но разработчики нет‑нет да и задаются вопросом: а что, если сделать email лучше? Так рождаются RFC — от крошечных правок до попыток заново изобрести почту на JSON. По этим документам можно заглянуть на десятилетие вперёд и понять, какие идеи получат массовое распространение, а какие останутся красивой мечтой.

Читать далее

От форка до собственной архитектуры: два года и четыре провала разработки SSH‑клиента

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

Иногда продукт начинается с идеи. Иногда с исследования рынка, десятков интервью и аккуратно нарисованного roadmap на три года. МС22 начался примерно с фразы: «Нам через месяц нужен российский менеджер соединений, который можно официально купить». Причем слово «месяц» здесь было не метафорой и не пожеланием менеджмента: через месяц решение действительно должно было существовать как продукт, быть переведено, подготовлено для корпоративного использования и пройти необходимые формальности для закупки.

Разрабатывать собственный SSH-клиент за такой срок было бы интересным способом познакомиться с бессонницей, но плохим способом выполнить проект. Поэтому в 2024 году мы пошли по максимально прагматичному пути: взяли open source, сделали форк, адаптировали его под требования заказчика и примерно за 35 дней превратили задачу по импортозамещению в продукт, который можно было закупать.

Мы тогда совершенно не планировали следующие два года переписывать интерфейс, спорить с архитектурой Electron/NodeJS, самостоятельно переделывать RDP и VNC, добавлять клиент баз данных, десяток администраторских инструментов, а в итоге выбрасывать почти весь старый backend и переносить приложение на Rust. Но именно это и произошло.

Эта статья — не о том, как мы с первого раза все сделали правильно. Скорее наоборот. Здесь будет несколько решений, которыми мы довольны, и минимум четыре случая, когда сначала пришлось сделать неправильно, чтобы понять, что вообще требуется делать.

Читать далее

Одна «кнопка» для гибридного Kubernetes: рассказываем, для каких сценариев она нужна

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

Добавление физического сервера в кластер Kubernetes требует ручных действий: подключиться по SSH, установить пакеты, добавить параметры подключения и секреты, сконфигурировать kubelet, проверить, что узел появился в кластере, повторить для следующего сервера.

Привет, Хабр! Меня зовут Андрей Волков, я руководитель SRE в команде Managed Service for Kubernetes в Yandex Cloud и мы добавили возможность подключать BareMetal-серверы в кластер Kubernetes одной кнопкой.

Читать далее