Обновить

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

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

DevToolbox Cheats: шпаргалки всегда под рукой

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

Привет, Хабр! В работе почти каждого, кто плотно сидит в Linux, есть один недостаток: одни и те же команды забываются с завидной регулярностью. Я, например, иногда по десять раз лезу в историю, чтобы уточнить - «так как в rsync директорию исключить, но структуру оставить?»

Можно, конечно, вести свои заметки. Можно - дрессировать Ctrl+R. А можно установить небольшую утилиту, которая будет жить в трее и выдавать нужную подсказку за полсекунды. Именно о такой утилите сегодня и расскажу - DevToolbox Cheats.

Читать далее

Как мы готовим инфраструктуру к переезду с помощью NetBox

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

Любые серьёзные изменения инфраструктуры начинаются с одного вопроса: что именно у нас есть сейчас?

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

За последние годы мы участвовали в нескольких проектах по переносу оборудования — от перемещения отдельных стоек внутри дата-центра до миграции инфраструктуры между площадками. Масштаб проектов отличался, но первая проблема практически всегда была одинаковой.

Документация существует, но её актуальность вызывает вопросы. В одном документе устройство называется одним образом, в другом — другим, а на самой стойке используется третье обозначение. В таблице порт отмечен как свободный, хотя в него включён рабочий линк. На схеме uplink уходит в один коммутатор, а LLDP показывает другой. Какие-то подключения давно не используются, но продолжают числиться в документации. Какие-то, наоборот, работают много месяцев и нигде не описаны.

Читать далее

Kuber Community Day'26: контент, который нельзя пропустить

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

Хабр, привет! 30 июля во второй раз прошла инженерная конфа Kuber Community Day. 400 специалистов встретились в Москве, чтобы послушать о вызовах в Kubernetes, обменяться опытом, завести новые знакомства. Мероприятие объединило 26 спикеров в разных форматах: доклады, круглые столы, мастер-класс, научпоп и стендап. Еще конференция запомнилась экспериментальным форматом Arch Dating, в рамках которого с опытными менторами можно было обсудить технические и карьерные вопросы.

Под катом мы собрали подборку всех выступлений с Kuber Community Day'26. Скоро вернемся с новыми анонсами, первыми о них узнают участники K8s-сообщества.

Читать далее

Четыре антипаттерна CTE в PostgreSQL: разбираем на EXPLAIN ANALYZE

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

CTE в PostgreSQL упрощают код, но могут снижать производительность. Разбираем 4 антипаттерна, примеры EXPLAIN ANALYZE и практические способы оптимизации.

В прошлой статье мы упоминали основные SQL‑антипаттерны, способные замедлять работу базы данных. Продолжаем тему — на этот раз про CTE. 

Common Table Expressions (CTE), или конструкции WITH, — привычный инструмент SQL-разработчика. Чем сложнее запрос, тем выше шанс встретить в нём WITH: код становится чище, а запутанная логика разбивается на понятные блоки. CTE используют как альтернативу вложенным запросам и временным таблицам. Однако за внешней простотой и читаемостью скрываются риски снижения производительности, которые не всегда удаётся предвидеть.

Такие запросы на первый взгляд выглядят правильными, но работают неэффективно, и проблема вылезает только в EXPLAIN ANALYZE (инструмент разбирали в прошлом гайде). Разберём четыре антипаттерна CTE, посмотрим планы выполнения и покажем, как переписать запрос. В конце — короткий чек-лист диагностики.

Эта статья может быть полезна начинающим разработчикам и аналитикам, которые уже полюбили синтаксис CTE, но хотят понять, что на самом деле происходит «под капотом» в PostgreSQL.

Читать далее

Как я перестал гадать, какая пара нод сломалась после апдейта CNI, и написал для этого свой мониторинг

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

98% успешных проверок в дашборде выглядят прекрасно. Ровно до момента, когда доходит: недостающие 2% это одна пара нод, один протокол, и так каждый день. Обновили CNI или ядро, и между двумя конкретными нодами начал теряться UDP, а агрегат всё ещё зелёный.

kconmon‑ng ставит агента на каждую ноду и гоняет TCP, UDP, ICMP, DNS и HTTP‑пробы между всеми парами каждые 5 секунд, а при сбое сам снимает MTR‑трейс, пока проблема ещё жива.

К версии 2.0.0 у проекта выросла веб‑консоль: матрица N×N, расследование с ранжированием причин без ML, машина времени для разбора ночных инцидентов и алертинг, который сводит правила в настоящий PrometheusRule. Под капотом всё тот же Prometheus.

Читать далее

Как перенести любую ВМ с одной платформы на другую: тестируем агентскую миграцию в мультивендорной среде

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

Привет, Хабр! Это снова Евгений Шилкин и Степан Татауров, эксперты дивизиона инфраструктуры Группы Rubytech. В прошлой статье мы разобрали подходы к миграции, посмотрели, какие есть альтернативные решения, и обмолвились парой фраз про MIND Migrate Guest. 

В этой статье — практическая часть, проверим MIND в деле и протестируем его. Что из себя представляет процесс миграции с точки зрения алгоритма и чем он отличается от простого переноса между серверами? В процессе обнаружили несколько интересных находок. Давайте разбираться.

Читать далее

REPACK в PostgreSQL 19: перепаковка в ядре и, как всегда, дьявол в деталях

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

Мы (ну ладно, я) ждали этого больше десяти лет: в PostgreSQL 19 наконец-то завезли штатную онлайн-перепаковку таблиц. Команда REPACK в ядре и теперь больше никаких сторонних расширений и бесконечных согласований с ИБ. Да? Или нет? Эпоха pg_repack подошла к концу? Спойлер: не спешите удалять старые скрипты и утилиты. На моих тестах новая встроенная команда под нагрузкой заблокировала таблицу на три с лишним минуты, в то время как "старичок" pg_repack уложился в 0.6 секунды.

Выяснил: как устроен новый REPACK под капотом, почему он ломает привычный MVCC и в каких сценариях попытка использовать штатный инструмент на проде станет фатальной ошибкой.

Читать далее

Приватная LLM в облаке: развертываем RAG-систему в Managed Kubernetes

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

Выход в продакшен с собственными языковыми моделями внутри корпоративного контура часто упирается в высокую стоимость GPU-оборудования и сложные риски. Внешние сервисы вроде ChatGPT не подходят из-за требований к безопасности данных, а аренда или покупка физических серверов может приводить к переплатам за простой в неактивные часы или, наоборот, падению сервиса при пиковых нагрузках. Помимо самой модели, бизнесу необходимо развертывать и связывать между собой векторные базы данных, сервисы векторизации и оркестраторы сценариев.

Эту проблему решает запуск приватной LLM в облачном Managed Kubernetes. Приватная модель гарантирует конфиденциальность и не отправляет данные во внешние сети, облако переводит капитальные затраты в гибкие операционные, а Kubernetes берет на себя отказоустойчивость и автоматическое масштабирование дорогих GPU-ресурсов. Материал будет полезен DevOps-, MLOps-инженерам и архитекторам, перед которыми стоит задача развернуть изолированную и надежную RAG-систему.

В этой статье рассмотрим, как можно задеплоить LLM в Managed Kubernetes на примере простой RAG-системы. Будем использовать LLM-роутер AIBrix, n8n и vLLM. Дополнительно понадобятся Envoy Gateway (как зависимость для AIBrix), cert-manager (выпустим сертификаты для домена n8n), Qdrant (хранилище для RAG системы) и PostgreSQL в качестве базы данных для n8n.

Читать далее

Как добавить свой модуль nginx в контрольной панели ispmanager

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

Многие знают и используют контрольную панель ispmanager для управления сервером, но, возможно, не всем известно, что функционал работы панели можно расширить самостоятельно и адаптировать для выполнения своих специфических задач.

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

Предлагается доработать ispmanager, а именно:

Читать далее

Статистика PostgreSQL: почему запросы выполняются медленно

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

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

Разберём, откуда PostgreSQL берёт статистику, как ANALYZE её собирает и по каким признакам понять, что проблема действительно в оценках планировщика.

Ускорить запросы

OmniOS. Подключаем ИБП и попутно знакомимся с IPS

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

Задача:

Есть "коробка" с работающей 24/7 OmniOS. Со временем в "коробке" накопилось столько всего важного, что стоимость этой информации превысила стоимость самой "коробки". Наиболее вероятная угроза информации - это фатальный сбой файловой системы при сбоях электропитания. Нужно научить OmniOS "слушать" сообщения от ИБП и самостоятельно выключаться пока ИБП выдает напряжение.

Читать далее

Разобрал логи сервера: какие ИИ-боты реально ходят по сайту и что они запрашивают

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

Про ИИ-ботов пишут в основном пересказами документации вендоров: этот собирает данные для обучения, тот ходит за содержанием по запросу пользователя. Я решил посмотреть, что происходит на самом деле — прежде всего по журналам доступа сервера. Ниже представляю вам разбор: кого видно в логах, что они запрашивают, чем отличаются два типа ботов у одного вендора и почему файл llms.txt в этой картине почти не встречается.

Читать далее

Теория миграции ИТ‑систем. Чем отличаются подходы вендоров и как с этим дела в разных странах

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

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

Статья носит обзщепознавательный характер и будет полезна тем, кому в целом интересны механизмы миграции ИТ-систем — и их ключевые отличия у разных вендоров в разных странах. В следующих статьях цикла мы разберем типы миграции, их алгоритмы и посмотрим на результаты тестирования, чтобы оценить их работу в реальных условиях. А пока…

Читать далее

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

Что делать, если сервер доступен по SSH, а сайт не открывается

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

Мониторинг шлёт тревогу, пользователи пишут, что «всё лежит», но SSH пускает на сервер. Значит, машина включена и 22-й порт доступен. О домене, портах 80 и 443, TLS, веб-сервере и приложении это пока ничего не говорит… Кажется, что нужно просто перезапустить nginx, но перезапуск стирает часть следов и может превратить частичную аварию в полную беду. Под катом расскажу, как пройти путь запроса сверху вниз и найти место, где он остановился.

Читать

Я DevOps-инженер. Моя работа — чтобы вы обо мне не вспоминали

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

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

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

Читать далее

Платформа данных на минималках. Часть 2. Практика: разворачиваем и настраиваем каталог метаданных

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

В первой части мы разобрались с архитектурой Apache Iceberg. Увидели, как иерархия метаданных позволяет находить нужную информацию без полного сканирования хранилища. Также стало понятно, почему Iceberg — это не вычислительный движок и не формат файлов, а табличная спецификация поверх объектного хранилища. 

Теперь настало время ответить на практический вопрос: как все эти метаданные связать в единую систему, чтобы несколько движков могли работать с одними и теми же таблицами без хаоса. Помимо теории развернем HMS в Docker, настроим PyIceberg и разберем внутреннюю анатомию файла metadata.json.

Привет! Я Денис, старший бэкенд-разработчик в Selectel. Надеюсь, материал будет полезен инженерам данных и архитекторам. Мы рассмотрим Hive Metastore, AWS Glue, REST Catalog и Nessie и расскажем как выбрать подходящий инструмент под специфику проекта.

Читать далее →

NVMe выдаёт 600 000 записей в секунду, а база коммитит 180

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

NVMe показывает сотни тысяч IOPS, а база упирается в пару сотен коммитов в секунду — знакомая ситуация, если ориентироваться на обычные тесты записи.

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

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

The dark side of компрессия в PostgreSQL

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

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны: какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

Читать далее

AVM: как Aeza перешла на собственную систему управления виртуализацией

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

До AVM виртуализацией управляла сторонняя платформа. Иногда она зависала и переставала принимать задачи. Нагрузку распределили между несколькими экземплярами платформы, но зависания продолжились. До вмешательства операции клиентов не шли.

Читать далее

Сказ про домен AD, ДНС, сетевого инженера и архитектора

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

В некотором царстве, в некотором государстве… Историю расскажу, как сказочку, из тех соображений, что в сказочника камней не кидают, аллергия на камни :) Ибо, ну что с него взять? Он же сказочник!

Так вот. Жила была компания, давненько это было, домен AD, w2k3 сервера, филиалы по области штук 15-20, в каждом по контроллеру домена для надежности, и объединялись они с головным офисом каналами ВПН. В некоторых ранних версиях даже через GSM-модемы.

И настали трудные времена, да так что пара филиалов задумали уйти к Шведам отпочковаться в самостоятельность. Или компанию разрывать начали за долги из-за взаимных неплатежей, я уже не помню. История покрылась патиной.

Архитектор в том домене был человеком незлобивым. Рассудил, что проще всего, при отключении филиала — долгосрочное падение линка — это как умерли, ну и потом просто удалить из домена и контроллеры, и сайты. И делу конец.

И для филиалов, тоже нормально — погасили ВПН и захватили роли FSMO на свои контроллеры, и дальше жить поживать. Зеркально удалив все лишнее, за ненадобностью. Рабочий вариант.

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

Почитать, чего надумал архитектор