Обновить

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

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

Нормальные формы в базах данных. Как в БД появляются аномалии

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

Привет Хабр! В прошлой статье мы детально разобрали функциональные зависимости. Возможно, после нее у вас, как и у многих, остался закономерный вопрос: зачем нам вообще так париться, выискивая эти зависимости? Как это применяется в проектировании баз данных?

Естественно, можно спроектировать базу данных, вообще не заботясь ни о каких правилах. И она даже будет работать! Все будет прекрасно ровно до первого ее реального использования в продакшене. При проектировании «абы-как» возникают три типовые проблемы: избыточность, аномалии обновления, аномалии удаления.

И вот это уже плохо.

Читать далее

AI-ассистент для алертов: как n8n + LLM

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

Все кто касался темы обеспечения бесперебойной работы сервисов знает на сколько изнуряющим и трудно оценимым по времени бывает диагностика и устранение инцидентов. Настало время это исправить!

Читать далее

За что я полюбил FreeBSD

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

Когда я впервые заглянул во FreeBSD Handbook в 2002 году, то не мог поверить своим глазам. За шесть лет работы с различными дистрибутивами Linux, о чём у меня уже была статья, я научился выискивать документацию по кусочкам — часто неполную или устаревшую, причём иногда спустя всего год. Здесь же операционная система сопровождалась полноценным, точным и достаточно свежим подробным руководством. В то время я уже был убеждённым сторонником Open Source, но рассуждал очень практично. Если разработчики этой ОС вкладывают так много усилий даже в её документацию, то представьте, насколько проработанной должна быть сама система. Короче, я решил её попробовать. Тогда у меня был Sony Vaio, где не было места для второй операционки. В итоге я скопировал все данные на настольный ПК, собрался с духом и принял решение установить на этот ноут FreeBSD, а по завершению эксперимента снова вернуть на него Linux.

Спойлер: FreeBSD осталась на том ноутбуке навсегда.

Читать далее

Когда 50 байт ломают весь CI: охота на MTU mismatch в Docker + OpenStack

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

Пятница, 17:40. Билд красный, GitLab живой, curl отвечает за полсекунды — а git clone из контейнера молча висит две минуты и падает. Все инструменты говорят «всё ОК». Виновник — 50 байт, о которых никто не подумал.

Разобраться

Белые списки на домашнем интернете — уже скоро и как подготовиться?

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

Пошла волна новостей о том, что провайдеры получили прямую задачу внедрять систему «Белых списков» на wifi. Официальная версия — «безопасность» и доступность социально значимых ресурсов. Но все мы прекрасно все понимаем: это не столько про удобство, сколько про возможность 24/7 фильтровать вообще всё, что проходит через ваш домашний Wi-Fi.

Читать далее

Как я написал обход блокировки Telegram на Rust — без VPN, без серверов, через WebSocket

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

TL;DR: Написал open-source десктопное приложение TG Unblock на Rust, которое в один клик обходит блокировку Telegram через локальный WebSocket-прокси. Трафик заворачивается в обычный HTTPS к web.telegram.org — DPI не видит MTProto, провайдер не может шейпить. Без VPN, без серверов, без абонентки. Код на GitHub — by-sonic/tglock.

Предыстория: почему GoodbyeDPI не спасает

С весны 2026 года Telegram в России стал работать, мягко говоря, через боль. Сообщения доходят по 10 секунд, медиа не грузятся, звонки рвутся. Классическая картина: провайдер + DPI = страдания.

Первое, что приходит в голову — GoodbyeDPI. Запустил, пакеты фрагментируются, DPI не узнаёт MTProto... и вроде работает. Но:

Пинг 200+ мс — при норме 40–60

Постоянные переподключения — DPI переобучается и режет соединения

IP-шейпинг — провайдер троттлит весь трафик к подсетям Telegram (149.154.x.x, 91.108.x.x)

Соник, что ты сделал?

Шероховатости Linux

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

Linux (и когда то в далеком прошлом FreeBSD) как рабочую станцию я начинал использовать где то в 2002-2003 годах. Двигало мною и любопытство исследователя, и желание лучше освоить эти системы, и некоторая гордость (неТАкизм), а также желание быть не хуже сокурсников, которые уже умели что то ставить и настраивать.

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

Тем не менее, я не оставался на Linux навсегда (хотя периоды были до пары лет). Рано или поздно мне приходилось либо ставить Windows как вторую ОС, либо запускать ее в виртуальной машине.

В начале года я снова, в который раз, поставил на рабочий ПК свежий Linux (в этот раз ALT Linux Workstation 11, KDE Edition) – и спустя почти 3 месяца меня прям «распирает» консолидировать ВЕСЬ прошлый опыт и сделать для себя некоторые выводы.

Читать далее

Свой Firewall Operator для Docker

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

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

За 7 лет работы с Docker я устал от этой рутины и решил написать простой инструмент, который решает проблему на уровне инфраструктуры как кода. В этой статье полезем под капот ядра Linux: разберемся, как безопасно прыгать по неймспейсам (netns) в Go, чтобы не сломать планировщик, почему я выбросил iptables в пользу бинарного протокола netlink и как сеты в nftables позволяют обновлять правила без потери трафика.

Читать далее

Мой продакт-менеджер — это пользователь. Как мы сделали PingZen «всемогущим» благодаря вашим отзывам

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

Реальные сообщения от пользователей - мы читаем всё и стараемся оперативно реагировать. Именно так появились многие фичи PingZen.
Так же о подключении PingZen к AI-агентам через MCP: выбираем инструмент (Claude Code, Cursor, VS Code, Claude Desktop, Windsurf) - и всё готово. Дальше сервис сам проведёт через OAuth.

Читать далее

Симулируем сети на vESR в среде GNS3

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

Поскольку использование контейнерных версий сетевых устройств Cisco IOS-XRd в среде симулятора GNS3 особого интереса не вызвало, свой опыт побеждания Cisco NSO (официальное название – Cisco Crosswork Network Services Orchestrator), тоже в контейнерной версии и в том же симуляторе, решил пока не описывать.

Вместо этого предлагаю более близкую (надеюсь) сердцам читателей ситуацию с использованием виртуальной версии сервисного маршрутизатора от компании Eltex – vESR.

Пока из «большой тройки» сетевых вендоров, пробившихся в ТОРП и российские ЦОДы (B4COM Tech, QTEC и Eltex), только Eltex выпустил «официальный» виртуальный маршрутизатор, пригодный для лаб и продуктива. Вот о моем первом удачном опыте его применения и будет эта статья.

Также описал возможные сценарии его применения, сложности при установке vESR в симуляторе GNS3 по инструкции производителя и адаптированный файл шаблона .gns3a.

Читать далее

School Arch-based Linux. Свой дистрибутив для школы

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

Я cобрал свой дистрибутив на базе arch Linux специально для ПК в учебном заведении, где я обучаюсь.

Хеллоу хабр! Я ученик 10 класса и сейчас работаю над своим проектом по информатике. В качетсве идеи я выбрал то, что очень давно хотел осуществить, а именно собрать свой дистрибутив Linux и раз уж у меня проектная деятельность, то почему бы не совместить приятное с полезным и не решить давно наболевшую проблему со школьными ПК.

Читать далее

Крастерский маршрутизатор на FreeBSD из старого компа

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

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

Читать далее

Zabbix + мессенджер Max: как заменить заблокированный Telegram на отечественный мессенджер

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

После блокировки Telegram в России потребовалась альтернатива для уведомлений из Zabbix. Разбираемся, как интегрировать отечественный мессенджер Max через Webhook, с какими проблемами столкнулся и как их решил.

Читать далее

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

Почему VACUUM не спасает от раздувания индексов в PostgreSQL

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

VACUUM в PostgreSQL принято считать универсальным средством поддержания порядка: он очищает мёртвые кортежи, обновляет статистику и вроде бы держит базу «в форме». Но с индексами всё сложнее. В какой-то момент они начинают расти и деградировать так, что это уже влияет на планы запросов и поведение оптимизатора — при том, что формально всё обслуживается корректно.

Разберёмся, где именно возникает это расхождение между ожиданиями и реальностью и что на самом деле происходит внутри B-дерева.

Разобраться глубже

Проверяем навыки DevOps-инженеров. Проверим ваши?

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

Привет, я Александр Хренников, руководитель DevOps-юнита в KTS.

Нам тут, оказывается, 5 лет стукнуло. Точнее, нашему блогу на Хабре. Подарков мы не дождались, так что решили сами вручить их вам. Дарить будем футболки с нашим фирменным принтом — Котзиллой. Это как Годзилла, только кот.

Но подарок получат не все, а десять DevOps-инженеров, которые справятся с нашим испытанием быстрее остальных. Суть проста: мы даем вам тестовый стенд с кластером Kubernetes с ArgoCD и отдельный GitLab-сервер. В ArgoCD добавлено приложение — простой Nginx, обернутый в Helm-чарт. И оно не запускается. Надо запустить.

DevOps-челленджи мы проводим не впервые: уже были этот, этот и еще несколько до них. Опытные участники уже знают механику, а для новых энтузиастов я расскажу ниже, как все устроено.

Читать далее

DataOps + FinOps: как хранить и обрабатывать данные, не переплачивая

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

Когда счет за облако приходит в конце месяца, а финдир молча передает вам распечатку с суммой на 40% больше прошлого месяца, это верный признак того, что проблемы начались и сами собой не решатся. Не будет такого, что сегодня перерасход есть, а завтра все вдруг придет в норму. Не придет. Данных со временем становится больше, пайплайны запускаются чаще, хранилище разрастается, а понимания куда уходят деньги из ниоткуда не появляется. И, чтобы навести порядок, используют практики DataOps и FinOps.

DataOps выстраивает процессы работы с данными между командами: автоматизацию пайплайнов, контроль качества, управление изменениями и единые правила работы с данными на всех этапах обработки. FinOps делает стоимость инфраструктуры прозрачной для инженерных команд и позволяет понимать, сколько стоят архитектурные и технические решения. Когда данные о потреблении и стоимости становятся видны, появляется возможность управлять расходами и принимать обоснованные решения по инфраструктуре.

Читать далее

Эволюция логирования в Lenta tech: грабли, миграции и неочевидный финал с Victoria Logs

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

Привет, Habr!

Меня зовут Максим Юрченко, я руководитель группы DevOps-инженеров в Lenta tech («Группа Лента»). В статье я расскажу о том, как за последние четыре года менялась наша система логирования, какие решения мы принимали по ходу роста инфраструктуры и к какому результату в итоге пришли (спойлер — без подводных камней и граблей не обошлось).

Читать далее

Тонкая настройка Wi-Fi в OpenWrt — секция wifi-iface — от простой точки до Mesh-сети (2 часть)

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

Привет, Хабр! Меня зовут Алексей, и я занимаюсь беспроводными технологиями. Мы продолжаем погружение в глубины конфигурации /etc/config/wireless. В прошлой статье - Тонкая настройка Wi-Fi в OpenWrt — достигаем максимальной стабильности и покрытия мы подробно разобрали секцию wifi-device, которая отвечает за физическое радио — частоты, мощность, каналы. Но, как вы помните, в wireless-конфиге есть ещё один тип секций: wifi-iface. Именно они создают те самые виртуальные интерфейсы, которые позволяют реализовать: точки доступа, клиентские подключения, mesh-сети и даже сервисы мониторинг эфира.

Именно здесь задаётся имя сети (SSID), методы шифрования, правила доступа, изоляция клиентов и многое другое. Казалось бы, что тут сложного? Указал SSID, выбрал шифрование, ввёл пароль — и всё работает. Но и здесь есть свои «подводные грабли», мифы и возможности, о которых многие даже не догадываются.

Читать далее

Media Redundancy Protocol (MRP): Обеспечение отказоустойчивости в промышленных сетях

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

В промышленной сети обрыв кабеля — это не локальная неприятность, а сбой, который может повлиять на весь технологический процесс. Поэтому здесь особенно важны отказоустойчивость и предсказуемое поведение сети при авариях. Media Redundancy Protocol решает эту задачу за счёт кольцевой топологии с контролируемым резервированием: в штатном режиме он предотвращает образование петли, а при сбое быстро восстанавливает связность. В статье разберём, как устроен MRP, какие роли выполняют устройства в кольце, как происходит переключение и какие ограничения нужно учитывать на практике.

Разобраться в MRP

Cozystack v1.0 & v1.1: пакетная архитектура, cozystack-operator, бэкапы через Velero, поддержка MongoDB и OpenBAO

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

Предыдущим релизом платформы был 0.41. И тут неожиданно будущий релиз 0.42 стал ответом на главный вопрос жизни, вселенной и всего такого: слишком много серьезных изменений накопилось в платформе. Так что 0.42 пришлось переименовать в 1.0.

С выходом версии 1.0 платформа Cozystack перешла на новую архитектурную модель. Мы создали систему пакетов на основе FluxCD и артефактов OCI, похожую на apt в Debian/Ubuntu, но для Kubernetes (см. раздел «Развертывание на основе пакетов» ниже). Это позволило нам реализовать новый подход — Build Your Own Platform (BYOP).

Читать далее