Обновить
512K+

Системное администрирование *

Лишь бы юзер был доволен

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

Асинхронный I/O в PostgreSQL или история выходного дня

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

Про асинхронный ввод-вывод в PostgreSQL за последний год написали многие:

Механизм появился в 18-й версии, в 19-й его докрутили и в релиз-нотах он числится среди главных улучшений производительности.

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

Осторожно, много букв и цифр...

FinOps: С чего начать?

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

Всем привет! Меня зовут Андрей Лапкин. Около года назад я перешёл на роль архитектора ИТ-инфраструктуры в подразделении Эксплуатации музыкального сервиса Звук — и практически сразу мы запустили программу управления облачными расходами.

Облачная инфраструктура стримингового сервиса — это сотни виртуальных машин, десятки кластеров Kubernetes, объектные хранилища, базы данных, балансировщики. Ресурсы создаются под задачи, но далеко не всегда удаляются после их завершения. С ростом инфраструктуры вопрос «сколько стоит конкретный сервис?» потребовал системного ответа”.

За полгода систематической работы мы снизили ежемесячные расходы на инфраструктуру примерно на 22%. Для контекста: до старта программы счёт органически рос на 1–2% в месяц. Расскажу, как мы к этому пришли: какую методологию взяли за основу, какие принципы заложили в фундамент и как выглядит дорожная карта. Фокус статьи — на стратегии, процессах и культуре, а не на готовых шаблонах развёртывания.

Читать далее

Что изучить во второй половине августа: 39 открытых уроков для IT‑специалистов

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

Когда нужно прокачать конкретный навык, проще всего начать с практической задачи. В этом дайджесте собрали 39 открытых уроков августа для IT-специалистов: от asyncio, Kafka и PostgreSQL до системного дизайна, DevSecOps и локальных AI-моделей — с разбором инструментов и подходов, которые применяются в реальных проектах.

Перейти к подборке

CI — это не Jenkins. Зачем, как, чем — и цена отказа

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

Пайплайн у вас есть. Он есть у всех: CI перестал быть предметом споров примерно тогда же, когда Docker перестал быть новостью. Именно поэтому разговор пора вести другой - не “зачем вам CI”, а можно ли верить вашему зелёному пайплайну, сколько он стоит и кто им владеет. Разбор в формате “зачем - как - чем - цена отказа” - пилот рубрики: дальше в ней будут другие практики, формат останется.

Читать далее

WireGuard не хранит AllowedIPs у пира

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

Добавляете нового пира на сервер WireGuard — и у соседнего в wg show вместо префикса появляется allowed ips: (none). Команда отработала успешно, dmesg пуст, wg-quick промолчал, туннель up, handshake свежий. А если бы у нового пира маска была /32 вместо /24, ничего бы не произошло.

Это ловят снова и снова: в трекере VyOS с 2020-го (закрыто как Invalid — «так делает ядро»), в OPNsense в 2025-м, на форуме OpenWrt каждый раз, когда к серверу добавляют второй телефон.

Разбор по drivers/net/wireguard/ мейнлайна, тег v6.12: почему AllowedIPs вообще не хранится у пира, что делает list_move_tail в allowedips.c:201, почему симптом «пропало у одних пиров, но не у всех» объясняется одной строкой parent->cidr == cidr, и откуда берётся ping: sendmsg: Required key not available, если вы его когда-нибудь видели и решили, что это про ключи шифрования.

И заодно: то же самое лежит в FreeBSD, OpenBSD, BoringTun, wireguard-go и в драйвере под Windows — шесть кодовых баз, пять разных структур данных, один и тот же молчаливый контракт. А MikroTik, который запрет прямо задокументировал, сам его не проверяет: на CHR оба пира показывают префикс, трафик идёт одному, и вернуть его второму можно только записью того же самого значения обратно.

Плюс способ проверить самому: настоящий allowedips.c из ядра, собранный в userspace одним gcc. Без модуля и без root.

Читать далее

Почему DevOps-инженеров ищут месяцами: взгляд со стороны рекрутера и инженеров

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

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

Причина далеко не всегда в количестве специалистов, проблема начинается гораздо раньше — с самого понимания того, кто такой DevOps-инженер.

Сделать шаг к успешному найму

Policy Based Routing (Linux + Juniper)

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

В статье мы рассмотрим настройку маршрутизации на основе политик (Policy Based Routing, PBR) для управления трафиком от сервера в Интернет в зависимости от IP-адреса источника. Опишем шаги по конфигурации PBR на сервере c Ubuntu и маршрутизаторах Juniper MX.

Читать далее

Цена, которой не существовало: две недели поиска бага, который не видел мониторинг

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

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

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

Читать далее

Как мы добавили Global Orchestration в IncidentRelay: маршрутизация алертов до создания инцидента

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

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

Один источник пишет critical, другой — disaster, третий передаёт severity: 5. В одном payload сервис называется checkout, в другом — payments-api, а в третьем его приходится угадывать по namespace.

Если все эти события приходят через общий Alertmanager или webhook, одной статической настройки маршрута быстро становится недостаточно.

Обычно проблему решают одним из трёх способов:

Читать далее

У nginx сжатие заголовков одностороннее

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

Стенд: один nginx, одно HTTP/3-соединение, четыре одинаковых запроса подряд. Меряем размер сжатого блока заголовков в обе стороны.

Ответ (nginx → клиент): 131, 131, 131, 131 байт. Запрос (клиент → nginx): 246, 8, 8, 8.

Ответ — константа: сколько запросов ни повтори, столько же байт. Запрос со второго раза схлопывается в тридцать раз. В HTTP/2 к тому же серверу — та же константа.

Между тем динамическая таблица HPACK и QPACK и есть половина смысла обоих протоколов: повторяющийся заголовок отправляется один раз, дальше идут ссылки на номер. Клиент ей пользуется. Сервер не пользуется ни в одном из двух — в HTTP/2 выставляет её размер в ноль, в HTTP/3 не открывает encoder-поток вовсе.

Разбор по фиксированным тегам: nginx 1.31.3, quic-go, Cloudflare quiche, ls-qpack, Google QUICHE. Две реализации из пяти таблицу всё-таки ведут. И приёмная половина — та, которой сервер сам не пользуется, но обязан обслуживать, — в мае принесла nginx use-after-free с оценкой 9.2.

Читать далее

Выбор платформы виртуализации для малых инсталляций

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

Сегодня даже для небольшого бизнеса или образовательного учреждения «сервер» редко представляет собой одну физическую машину. Чаще в эту сущность упаковывают понятийно сразу несколько сервисов: файловое хранилище, веб‑сервер, базу данных и пр. Потому что запускать каждую службу на отдельном «железе» дорого, неэффективно и сложно в обслуживании. В этом случае на помощь приходит виртуализация — технология, позволяющая создать несколько изолированных виртуальных машин (ВМ) на одном физическом сервере.

Как выбрать правильную платформу, особенно когда у вас нет отдельного штата ИТ‑инженеров и огромного бюджета?

В нашей статье мы разберём ключевые критерии, на которые стоит обратить внимание при выборе системы виртуализации.

Читать далее

Один DNS‑запрос породил 329 запросов. Я полез разбираться, куда они все ушли

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

Один DNS‑запрос. Пустой кеш. И 329 исходящих запросов вслед за ним.

Сначала я решил, что где‑то неправильно понял цифры. Потом полез разбираться и выяснил, что recursive resolver внутри делает намного больше работы, чем видно по обычному dig.

Разбираю, откуда берутся эти сотни запросов, при чём здесь CNAME, glue, DNSSEC, IPv6 PTR и почему разные версии BIND на одном и том же запросе могут отличаться почти в три раза.

Читать далее

От десктопа к Android и в роутеры

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

MASQUE — туннель, неотличимый от обычного HTTPS-трафика к Cloudflare, постквантовый VLESS, AmneziaWG, дотянутый до эталона. Всё это теперь не только в телефоне, но и прямо на роутере: отдельный Wi-Fi, весь трафик которого уходит в туннель. Рассказываю, как мое ядро sing-box-lx до этого доросло

Читать далее

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

Self-hosted почта на arch linux, postfix, dovecot и let's encrypt

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

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

Читать далее

Мне нужен был скрипт для выключения виртуалок. В итоге я написал VDI

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

Речь пойдёт про VDI-портал: систему, которая клонирует виртуалки из шаблона, выдаёт их пользователям и гасит простаивающие. Но статья не о нём как о продукте, а об одном вопросе, который на входе выглядит тривиальным: этой машиной ещё пользуются? Ссылка на код будет в конце, одна.

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

Первое решение было очевидным — скрипт по таймауту. Никто не подключён N минут — машина гасится. Понадобилась — поднимается.

Скрипт я написал за вечер, и он даже работал, но по итогу я изобрёл VDI. Только не так, что посмотрел готовые решения и они меня не устроили, — я вообще не формулировал свою задачу как «нужен VDI» и потому не искал. Я решал «пусть виртуалки сами гасятся», а всё остальное наросло само, вопрос за вопросом. Когда стало очевидно, во что это превратилось, переезжать на готовое было уже и поздно, и незачем.

Дальше разбираю вопросы, которые нарастали.

Читать далее

Уязвим не nginx, а две строки вашего конфига. Разбираю CVE-2026-42945 на живом стенде

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

Критическая дыра в nginx: 9.2 по CVSS, восемнадцать лет в коде, нашёл её ИИ-агент за шесть часов. В новостях к этому прилагают 5.7 миллиона уязвимых серверов, а сканы реальных конфигов находят ноль из 1465 и один из 35633. Поднял стенд, чтобы понять, кто прав. Заодно выяснилось, что граница проходит не там, где её рисуют: трейлинговый знак вопроса безопасен, промежуточный rewrite гасит флаг, а именованный захват спасает не всегда.

Читать далее

Что изучить в DevOps, Kubernetes, observability и сетях для работы с современной инфраструктурой

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

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

Читать далее

Как ядро Linux решает, какой процесс «убить» при нехватке памяти

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

В сентябре 2004 года разработчик Томас Хабетс вернулся к рабочей станции и обнаружил, что его экран разблокирован. Память закончилась, OOM Killer выбрал жертву и завершил xlock... Для того, чтобы больше такого не произошло Хабетс предложил список процессов, которые Linux запрещено убивать даже в такой ситуации. Его патч в ядро не вошёл, но позже разработчики добавили настройку приоритетов, поддержку cgroups и отдельный поток для быстрого освобождения памяти. 

Несмотря на это, OOM Killer всё равно может снести важный процесс, ведь ядро видит только объём памяти и заданные администратором правила. Если правил нет, то Linux сам решает, кого «убить». Почему и что делать, чтобы этого не произошло — в статье.  

Читать

Docker объявил об открытом бета-тестировании Docker VMM

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

Docker объявил об открытом бета-тестировании Docker VMM
Собственного, полностью переписанного слоя виртуализации, который отныне лежит в основе Docker Desktop. Новый движок уже доступен в паблик-бете на macOS и Windows начиная с Docker Desktop v4.86. Разберёмся, что именно поменялось, почему это важно даже тем, кто никогда не задумывался о VMM, и как всё это протестировать самостоятельно.

Читать далее

Копия почты по IMAP: опцию включает сотрудник, а не организация. Запретить — может, и то не всем

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

Опция “С сервера imap.yandex.ru по протоколу IMAP” живёт в личных настройках сотрудника: справка Яндекса адресует все четыре шага владельцу ящика. Документация Яндекс 360 API описывает при этом обратное действие - enable_imap: false ограничивает работу через почтовые программы, причём до тех, кто уже включил доступ себе, этот параметр не достаёт. Разбираю, что эта асимметрия означает для инструментов, которые забирают почту по IMAP, и как за вечер проверить свой на тестовой учётной записи.

Разобраться с галочкой