Обновить

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

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

Чему меня научили десятки AI-агентов: как я в качестве эксперимента написал хранилище Blockstor

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

Пару месяцев назад я решил провести эксперимент и сделать с нуля clean-room имплементацию LINSTOR, используя его референсы и публичные API-типы. Изначально эта идея зародилась как пятничная шутка: я просто хотел уделить этой задаче минимум времени, запустить ее на фоне и посмотреть, к чему это приведёт. Целью было просто проверить, насколько современные нейросети способны к автономной работе без участия человека. 

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

Читать далее

Nelmwave – декларативный оркестратор релизов поверх nelm

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

Если в кластере больше пяти Helm-релизов, рано или поздно появляется скрипт. Сначала десять строк с helm upgrade --install, потом sleep 30 между базой и приложением, потом sops ▎ -d values.yml | helm -f -, потом ветка if [ “$ENV” = prod ]. В какой-то момент никто не может сказать, что именно он раскатит на проде, пока он это не сделает.

▎ nelmwave заменяет этот скрипт одним манифестом

Ок, смотрим дальше

Написал расширение, которое качает статьи Хабра в Markdown — и не долбит сервер

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

В прошлых двух статьях я разбирал DNS-трафик домашней сети и анализировал 1233 публикации Хабра, чтобы понять, за что площадка даёт рейтинг. И там, и там был вопрос, который я обходил: чем, собственно, я выгрузил эту тысячу статей?

Не руками копировал и не скриптом на Python, который на двухсотом запросе получил бы 429 и бан по IP. Я написал расширение для Chrome, которое сохраняет статьи Хабра в Markdown — по одной, пакетом или автоматически по расписанию, — и делает это достаточно вежливо, чтобы сервер не считал его атакой.

Главная мысль статьи оказалась не про парсинг HTML, а про хорошие манеры к серверу. Наивный качатель на голом fetch пишется за пять минут и получает бан на десятой. Инструмент, которым можно пользоваться постоянно, отличается тремя вещами:

— держит принудительный интервал между запросами (1.5 секунды, гарантированно); — слушает 429 и при перегрузке сервера замолкает на три минуты целиком (паттерн circuit breaker), а не долбит сквозь ограничение; — работает с открытыми статьями для личного архива, а не сливает базу.

Внутри: разбор вежливого граббера с кодом, почему парсинг чужой вёрстки ломается на каждом редизайне и как от этого защищаться фолбэками, формат Markdown с YAML-метаданными (тот самый, что сделал возможным анализ тысячи статей) и правовая рамка — где граница между «сохранил для себя» и «спарсил».

Расширение с открытым кодом под MIT, ставится из Chrome Web Store в один клик.

Читать далее

Мидл — это не три года опыта. Грейды в DevOps как типы ответственности

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

Два инженера, у обоих пять лет в DevOps и одинаковый стек в резюме: Kubernetes, Terraform, GitLab и вот это вот всё. Весной оба ходили по собеседованиям, но первый собрал офферы уровня “мидл, 200”, второй ушёл с “сеньор, 300” (алгоритмические секции первый, к слову, проходил лучше). Разница больше миллиона в год при неотличимых резюме. Ниже рамка, которая по моему мнению объясняет за что доплачивают, и три вопроса, чтобы найти в ней себя.

Читать далее

IP не валяй, или как я переобувал кластер kubernetes на ходу

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

В статье рассматривается опыт миграции сети Kubernetes-кластера на новый IP-пул (Pool IP) с использованием CNI Cilium. Особое внимание уделено процессу смены IP-адресов для Pod'ов и Service'ов в работающем кластере без длительной остановки, а также подводных камнях, с которыми пришлось столкнуться при обновлении до версии 1.20.0. Материал будет полезен инженерам по эксплуатации Kubernetes использующих уже Cilium, а так же желающим познакомиться с этим инструментом.

Читать далее

С нуля до Junior DevOps в 2026 году. Часть 7.1 Ansible: автоматизация настройки серверов

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

Что происходит после создания сервера? Его ещё нужно настроить: установить пакеты, создать пользователей, настроить службы, Docker, Nginx и другие компоненты. В статье разбираемся, как автоматизировать эту работу с помощью Ansible — одного из инструментов, упрощающих этот процесс.

Читать далее

Огонь, вода и медные сети: почему операторы по всему миру никак не откажутся от медных коммуникаций

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

Медные коммуникации дороги в обслуживании и энергозатратны — а в некоторых странах еще и регулярно становятся добычей охотников за металлом. Неудивительно, что телекомы массово переходят на оптоволокно: старую медь можно выгодно продать, а в бывших телефонных станциях устроить ЦОДы. На словах их поддерживают и руководства стран, но на деле не все так гладко: например, американскому AT&T отказаться от медных сетей в Калифорнии попросту не разрешили — дело дошло уже до суда. Посмотрим, что происходит с медной инфраструктурой в мире и при чем тут «поставщики последней инстанции».

Читать далее

EvertyDesk: я отдаю то, на что ушли годы

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

Меня зовут Артур Валиев. Я открыл исходники EvertyDesk Lite — и заодно EvertyDesk Next, то, что должно было стать следующей версией. Полностью. Без купюр.

Читать далее

Подмания: правило вычисления UID хоста для пользователя в контейнере

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

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

Давеча я приметил в Интернете, что коллеги отображают UID/GID своих сервисов в rootless podman контейнерах, начиная с круглого числа, например --uidmap=0:1000000:65536 для первого, --uidmap=0:2000000:65536 для другого, --uidmap=0:3000000:65536 для третьего и т.д. В общем-то, в этом нет ничего предосудительного, ведь задача таким образом решается без пересечения пространства имён. Но и причина, по которой так делают, тоже понятна - перестраховаться. Давайте разберёмся, как отображать UID-в-UID в rootless podman:

Читать далее

Как потеря 17% сессий запустила цепную реакцию в инфраструктуре Discord

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

25 марта 2026 года голосовая и видеосвязь Discord перестала нормально работать для большинства пользователей. Причиной стал не один большой сбой, а цепочка событий: изменение конфигурации Kubernetes привело к потере части пользовательских сессий, затем система столкнулась с лавиной переподключений и новыми узкими местами в инфраструктуре.

В статье команда Discord разбирает этот инцидент изнутри: как 17% остановленных сессий запустили каскадный отказ, почему механизмы восстановления сами стали источником нагрузки и какие архитектурные изменения помогли сделать систему устойчивее.

Читать разбор

Почему после восстановления Bitrix24 через restore.php перестают работать сессии, Push и WebSocket

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

Недавно мне потребовалось перенести корпоративный портал Bitrix24 на новую BitrixVM.

По документации всё выглядело достаточно просто:

Читать далее

Атака TONTOU, или во что нам обходятся процессорные уязвимости

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

7 августа 2026 года появилась информация о TONTOU — новой технике атаки на механизмы защиты от Spectre v2. Интересна она не столько скоростью утечки — она как раз невелика, — сколько способом обхода защиты.

Исследователи из MIT CSAIL смогли обнаружить интересный момент: между моментом, когда процессор или ядро очищает состояние механизма предсказания переходов, и моментом, когда этим состоянием снова пользуются, неизбежно существует небольшой промежуток. Иногда — всего несколько инструкций. И если в этот момент заставить процессор обработать прерывание, состояние предсказателя можно снова испортить.

Назвали этот класс уязвимостей «TONTOU» — Time‑of‑Neutralization to Time‑of‑Use, по аналогии с хорошо известным классом TOCTOU (Time‑of‑Check to Time‑of‑Use). В TOCTOU объект успевает измениться между проверкой и использованием; здесь то же происходит с состоянием предсказателя — его нейтрализовали, но до следующего использования прерывание успевает снова его изменить.

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

Читать далее

Вышел Cozystack 1.6: Talos на рабочих узлах, SSO для тенантов, Security Groups и иерархические квоты

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

Вышел Cozystack v1.6.0. Релиз опубликован 22 июля 2026 года и включает все исправления, ранее вышедшие в патч-релизах v1.5.1–v1.5.3. Ниже — перевод официального анонса, дополненный главными исправлениями из патч-релиза v1.6.1 от 5 августа.

В этом выпуске изменилось несколько важных частей платформы. Рабочие узлы тенантных кластеров Kubernetes теперь работают на Talos Linux вместо Ubuntu, тенанты могут включать аутентификацию OIDC для Kubernetes и Grafana, а новый API SecurityGroup даёт более безопасный интерфейс для управления сетевыми политиками приложений.

Читать далее

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

ggrebalance: Часть 3. Выполнение ребаланса

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

В статье рассматривается исполнительная часть утилиты ggrebalance: механизм физического перемещения primary- и mirror-сегментов между хостами кластера Greengage DB (open-source форк Greenplum), устройство конечного автомата ребаланса, отслеживание статусов операций, обработка сбоев и реентерабельность, откат перемещений, а также практические рекомендации по эксплуатации и итоговое сравнение с альтернативными инструментами.

Читать далее

Я фанател от MDT. Потом его не стало — и я написал свой

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

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

Это MDT. И его больше нет.

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

Читать далее

Как мы сделали веб-аналог Jaspersoft Studio (и зачем вообще это понадобилось)

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

Представьте сотни уникальных шаблонов строгой отчётности — от актов выполненных работ до счетов-фактур, — которые являются неотъемлемой частью работы одного из крупнейших банков страны. Каждый шаблон — JRXML-файл, каждый файл — чья-то зона ответственности. В нашей команде инструмент для создания этих шаблонов был Jaspersoft Studio — но и он нередко становился источником системных проблем.

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

Читать далее

Комплексный мониторинг физической инфраструктуры ЦОД

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

В данной статье под мониторингом физической инфраструктуры ЦОД понимаются три вещи:
1) В каком юните стойки в реальности стоит оборудование.
2) В какую конкретно розетку PDU подключен шнур питания конкретного оборудования.
3) В какую розетку СКС подключен коммутационный шнур от сетевого порта конкретного оборудования.
Никаких мегатехнологий технологий описано не будет. Представленные технические решения несложные, но, пожалуй, в самом деле новые.

Читать далее

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

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

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

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

Читать далее

Как я Zabbix с LLM дружил в свободное время. Архитектурный обзор взаимодействия с нейросетью. Часть 4 «Реализация»

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

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

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

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

Часть 1: Вводная и формирование ТЗ

Часть 2: Выбор локальной LLM

Часть 3: Формирование HLD и немного LLD

Часть 4: Что из этого вышло (Вы здесь)

Читать далее

АКПП Voith не включается выше второй передачи: разбираемся в J1939

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

Изучаю шину CAN J1939 через написание самописных утилит. Целенаправленно отключал датчик наддува для проверки своих программ.

И здесь случай: Идёт выпуск машин на маршрут. На одном из автобусов АКПП не включается выше второй передачи. Сканера нет читать нечем. Но есть C, Linux, CANable, map_id_j1939, viz_j1939.

Читать далее