Обновить
256K+

DevOps *

Методология разработки программного обеспечения

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

Чем различаются способы установки приложений на сервер

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

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

Читать далее

Новости

Я написал сканер уязвимостей для вайбкода и проверил им 3 800 чужих репозиториев

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

Сегодня Telegram-бот для продажи VPN собирается за вечер: Cursor, пара промптов, и он уже принимает деньги. Только в config.py лежит токен бота, Postgres открыт наружу, а в истории git остался .env, который «потом удалили».

Я написал SAST-сканер для кода, сгенерированного ИИ, и прогнал его по 3 800 публичным репозиториям. Рассказываю, что нашлось, как 16 378 сырых находок превратились примерно в 30 настоящих утечек и почему я не проверил ни одного чужого ключа.

Читать далее

Как мы создали и внедрили AI-разработчика: опыт EXANTE

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

Codey ведёт задачу от Jira до работающей фичи. Рассказываем, как устроена наша мультиагентная AI-система и почему для внедрения AI в разработку одной сильной модели мало: нужны чёткие требования, подготовленные проекты и измеримые проверки.

Читать далее

Бэкап был, восстановить было нечего: как pg_dump молча собирал битые дампы из-за row-level security

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

Если у вас PostgreSQL с включённым row-level security и ночной pg_dump по таймеру, откройте каталог с бэкапами и сравните размеры вчерашнего и позавчерашнего дампов. Если файлы подозрительно одинаковые и маленькие, возможно, у вас нет ни одного рабочего бэкапа. У нас так было не меньше двух недель.

Читать далее

Палеокомпьютинг, часть 2: Kubernetes на Обероне, радио Вирта вместо сети, кластер в браузере и преимущества перед K8s

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

Представьте кластер Kubernetes, в котором нет ни одной сетевой карты. Его узлы ничего не знают ни о TCP/IP, ни даже об Ethernet и перекликаются по радио короткими пакетами по 32 байта, как прорабы по рациям на стройке. Управляющий слой написан на языке конца восьмидесятых и вместе с сетевым протоколом занимает около 1250 строк. Чтобы запустить под, ничего не нужно скачивать: узел просто загружает модуль и вызывает в нём процедуру. А главное, всё это открывается во вкладке браузера: можно выдернуть узел из розетки, заглушить эфир, подсунуть кластеру поддельную команду и посмотреть, что из этого выйдет.

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

Читать далее

Kubernetes просто часть 6: Для чего нужен Gateway API?

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

В этой части разберём, зачем Kubernetes понадобился Gateway API, если уже существует Ingress. На простом примере посмотрим, как Gateway и HTTPRoute разделяют точку входа и маршрутизацию, зачем нужен GatewayClass и почему такая модель удобна, когда кластер и приложения обслуживают разные команды.

Читать далее

Как я менял PagerDuty на self-hosted-решение

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

Привет! Я Сергей, DevOps-инженер в KTS.

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

Новую систему я выбирал среди self-hosted, чтобы больше не зависеть от зарубежных провайдеров. Нашел два подходящих решения, IncidentRelay 1.1 и OneUptime 11.4.1, поднял оба в Kubernetes и сравнивал уже на своих сценариях дежурства. Ниже расскажу, почему я выбрал OneUptime.

Читать далее

Математика катастрофы: от дифференциальных уравнений до очередей G/G/1 и формулы Кингмана

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

Знакомая картина: в 3 часа ночи падает база данных, Alertmanager засыпает каналами, через 5 минут сеть восстанавливается, но… система остаётся «мёртвой». CPU на воркерах 100 %, Goodput на нуле, а перезапуск подов только усугубляет ситуацию. Все указывает на то, что вы столкнулись с метастабильным отказом — самым коварным типом аварий в распределённых системах.

Меня зовут Артём Баранов, в «Базисе» я занимаюсь автоматизацией и развитием инфраструктуры. В этой статье я хочу рассказать о математике метастабильного отказа и через теорию массового обслуживания — конкретно через модель G/G/1 и формулу Кингмана — проложить мост от математических абстракций к реальным логам, метрикам и алертам. Далее, предложить практикующему SRE-специалисту набор методик для анализа, диагностики и предотвращения катастроф, возникающих в информационных системах по тем или иным причинам (ошибки конфигурирования, сбои «железа» и т. д.). Это позволит инженеру распознать sustaining-эффект по логам и метрикам и осознанно выбрать рычаг (backoff, retry budget, shedding, circuit breaker), а не просто объяснить постфактум, почему возникла предыдущая авария.

Углубиться в теорию и практику

Как подключить Claude Code через шлюз и какие модели поддерживают агентный цикл

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

Привет, Хабр! На связи команда Just AI. Сегодня хотим поговорить про Claude Code. Он умеет работать не только с моделями Anthropic: если направить его запросы в совместимый API-шлюз, можно оставить привычный клиент, но при этом менять провайдера, модель и способ работы с API.

В этой статье разберемся, что Claude Code отправляет в API, что от шлюза требуется для нормальной работы и какие проблемы возникают при подключении других моделей. На примере Caila посмотрим, какие модели можно использовать с Claude Code, сколько стоит сессия и как устроено подключение.

Читать далее

Многосегментный Linux-маршрутизатор на Netplan и Nftables: DMZ, SNAT/DNAT, MGMT, диагностика и многое другое

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

В этой статье будет разбираться построение многосегментного Linux-маршрутизатора на базе Ubuntu 24.04, Netplan и nftables на основе моего лабораторного стенда. Стенд состоит из 7 виртуальных машин и нескольких изолированных сетевых сегментов: LAN, DMZ и MGMT, а также имитирует провайдерский маршрутизатор и внешнего клиента. Все виртуальные машины разворачиваются с помощью Vagrant и VirtualBox, в качестве альтернативы, если вам хочется, такую схему также можно развернуть на облачных серверах. Для этого подойдет хостинг Timeweb Cloud, в таком случае Vagrantfile писать будет не нужно.

Сам стенд можно посмотреть в моем Github. В папке docs/ есть команды с краткими комментариями по шагам, однако все самое важное будет объясняться здесь.

Всего будет 12 этапов. Для каждого этапа я подготовил пошаговый разбор конфигураций, правил файрвола и команд диагностики. Мы с нуля настроим адресацию, включим IP forwarding, разберем работу stateful-фильтрации через conntrack, организуем SNAT/DNAT, развернем локальный DNS и изолируем критические сегменты и многое другое.

Читать далее

Автодополнение в tatarnetes, sheeternetes on-prem и новые фичи гендерных K8s

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

Есть у меня несколько проектов, которые начинались как шутка в чате про Kubernetes и почему-то не остановились. Например, Sheeternetes родился из спора о том, можно ли сделать оркестратор контейнеров в электронной таблице, и оказалось, что можно. Tatarnetes вырос из желания, чтобы kubectl заговорил по-татарски (и из татарских мемов). Kyvernetria попыталась честно ответить на вопрос, как выглядел бы Kubernetes, если бы его поведение строилось на подтверждённых наукой средних различиях между мужчинами и женщинами, а не на стереотипах. Ну а Mansplainetes и Misogynetes появились как сатира на тех, кто в такие стереотипы свято верит.

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

Читать далее

Запустил собственный PII-фильтр перед облачными моделями и отказался от идеи селф-хостед LLM

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

За последние 2 месяца я протестировал RTX PRO 6000 96GB / RTX4090 48GB и даже H200, оценивая варианты для селф-хоста, купил RTX5070ti и V100 32GB и прогнал большое количество бенчей (в том числе искренне своих). Потом увидел бешеный рост цен на железо и череду утечек персональных данных к провайдерам LLM (и понимая чем это может грозить, если данные потом утекут во взломе/сливе) - начал искать актуальные варианты для себя. Нашел классный open-source вариант, настроил, переключил в enforce и считал вопрос закрытым. Перейдя чуть вперед - я ошибался, но ошибка позволила сделать прод решение и уйти от идеи полного селф-хоста к on-standby домашней LLM :-)

Читать далее

Эволюция NGINX в 2026 году: как опенсорс‑версия получила функции коммерческого Plus

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

NGINX давно стал стандартом для базовых инфраструктурных задач: терминации HTTPS, раздачи статического контента и балансировки трафика. Однако за 2026 год веб-сервер совершил технологический рывок в своей основной ветке, который выводит его далеко за рамки классического обратного прокси.

В новых OSS-версиях появились инструменты, которые раньше требовали покупки коммерческой подписки (NGINX Plus от F5) или развертывания стороннего ПО и сложных связок с Lua. Майский релиз 1.31.0 принес нативную поддержку HTTP Forward Proxy. А сентябрьское обновление 1.31.5 окончательно закрепило этот триумф, добавив полноценный динамический Control API, модуль для нативного извлечения данных из JSON и предикатные location. Параллельно с этим произошли большие изменения в скриптовании: в июне проект njs перешагнул отметку релиза 1.0.0, полностью сменив старый кастомный движок на современный QuickJS.

Читать далее

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

Разворачиваем сервис через ArgoCD

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

В классическом CI/CD пайплайн заканчивается деплоем, но дальше состояние Kubernetes‑кластера может незаметно разойтись с конфигурацией в Git. Разбираемся, как ArgoCD обнаруживает и исправляет такой дрейф, как настроить синхронизацию и где автоматизация GitOps требует особенно осторожного подхода.

Разобрать практику

Запускаем LLM локально на Windows: WSL2, Docker, CUDA и vLLM

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

Большинство инструкций по локальному запуску LLM сводятся к одной-двум командам: вставьте их в терминал, дождитесь загрузки модели и готово. Такой подход работает ровно до первой ошибки. После этого становится непонятно, на каком из нескольких уровней возникла проблема: в Windows, WSL2, драйвере NVIDIA, Docker, CUDA или самом inference-сервере.

В этой статье развернем Qwen3-0.6B на обычной NVIDIA-видеокарте под Windows 11 с использованием WSL2, Docker, NVIDIA Container Toolkit и vLLM.

Читать далее

PKI‑шторм: что делать, если Kubernetes одновременно запрашивает 100 тысяч сертификатов

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

Что произойдёт с PKI, если после аварии одновременно запустятся десятки тысяч pod’ов Kubernetes и каждому понадобится свой TLS-сертификат?

В нашем случае в центр сертификации почти одновременно прилетело около 100 тысяч запросов. При штатной нагрузке в 10–11 RPS запас производительности казался более чем достаточным, но во время массового восстановления инфраструктуры ЦС быстро превратился в узкое место: запросы начали ждать, уходить в таймауты и повторяться.

В статье разбираем, почему многократного запаса производительности оказалось недостаточно, почему простое масштабирование ЦС не всегда имеет смысл и что изменилось, когда мы разделили выпуск и потребление сертификатов. А заодно — как проблема производительности привела нас к новой задаче: безопасному хранению сотен тысяч сертификатов и соответствующих закрытых ключей.

Читать далее

Поддержка YDB в Ptah 0.13.0: описание схемы в HCL и управление миграциями

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

В Ptah 0.13.0 появилась нативная поддержка YDB. Ptah умеет читать текущую схему базы, сравнивать её с декларативным описанием и на основе разницы строить план изменений или генерировать версионные миграции. В статье разберём этот процесс на примере HCL-схемы, посмотрим на работу с индексами и drift detection, а также на особенности YDB, которые приходится учитывать при миграциях: разные возможности версий, feature flags и нетранзакционный DDL.

Читать далее

Публичный видеосервис на VPS: как не открыть дверь в домашнюю сеть

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

Обратный SSH-туннель позволяет опубликовать домашний видеосервис без проброса портов. Но одна доверенная строка из браузера может превратить Viewer в SSRF-прокси и открыть путь во внутреннюю сеть.

Разбираю реальную ошибку и её исправление: фиксированный upstream, авторизацию HLS, loopback на обоих концах туннеля, ограниченный SSH-ключ, единственную публичную точку HTTPS и аварийное отключение доступа.

Читать далее

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

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

Я не программист. По крайней мере, несмотря на то, что в 2010 году я закончил «Прикладную информатику в менеджменте» (ДГТУ) и учился писать на C++, таковым в настоящее время себя не считаю.

При этом с июля 2026 года я управляю большим продуктом (собственная фабрика аналитики, своего рода ERP внутри компании), код которого пишут ИИ‑агенты. Я даю задачи голосом (не помню, когда в последний раз формировал текст задач на клавиатуре), агенты пишут код, проверяют его и выкладывают новую версию на сайт. Продукт собран на Next.js 16, TypeScript и PostgreSQL. На 1 октября в истории проекта уже более 6500 коммитов и 1.800.000 строк кода.

Код я не читаю. Поэтому между словом агента «готово» и появлением новой версии на сайте стоят автоматические проверки. Их называют «сторожами», сейчас их около двухсот. Если хотя бы один сторож покраснел, новая версия не попадает на сайт, а я получаю в Telegram сообщение «выкат остановлен» со списком красных.

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

Читать далее

Как я перенаправил Claude Desktop и Claude Code на свой VPS с CLIProxyAPI

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

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

Я настроил Claude Desktop и Claude Code так, чтобы запросы всегда уходили с одного IP своего VPS через CLIProxyAPI.

В статье показываю как это настроить: сервер, вход через OAuth, Desktop и Claude Code. Для каждого шага есть промпт для агента и ручная инструкция:)

Читать далее
1
23 ...