Обновить
256K+

DevOps *

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

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

Как сделать релизы скучными: production baseline на Kubernetes и GitLab CI/CD

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

Монолит без тестов.
Деплой только ночью.
Пять минут гарантированного простоя на каждом релизе.
Логи — в файле.
О проблемах узнаём от клиента.

Малый/средний бизнес МФО, без отдельного DevOps-инженера.
“Специально обученный тимлид”, который знает, какие костыли подпирают систему.

Рассказываю, как из этого получился production baseline: Kubernetes, GitLab CI/CD и наблюдаемость, после которых релизы стали скучными.

Читать далее

Полгода на включение: как мы построили онбординг в команде не по инструкции. Часть 3: Self-Assessment, 1:1 и честная ОС

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

На связи — Катя Лысенко и третья часть статьи о системе онбординга. В первых двух (ч.1 и ч.2) мы разобрали основы: как подготовить почву, выстроить маршрут и создать понятный трек для новичка. Но структура — это только половина системы. Вторая половина — то, что делает её живой: регулярная рефлексия, честный разговор и поддерживающая среда, где человек не боится расти и пробовать.

Читать далее

Как обойти платную подписку Битрикс24 и вернуть своего бота к жизни: делаем свой провайдер событий на коробке

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

Привет, Хабр! (И тебе, страдалец, который три недели смотрит на мёртвого бота в Битриксе. И тебе, админ, который уже устал объяснять руководству, почему «оно перестало работать». И тебе, безопасник, который узнал, что данные компании летают через какой-то curator.pro и чуть не уронил кружку.)

Помните мою прошлую статью про разработку Битрикс-бота? Ту самую, где я рассказывал, как документация врала, облака смеялись, а трафик зачем-то летел через сторонние сервера? Так вот - продолжение банкета.

Спойлер: стало хуже. Но мы справились.

Читать далее

SearXNG + Claude Code: бесплатный веб-поиск вместо $10 за 1000 запросов

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

Встроенный WebSearch в Claude Code стоит $0.01 за запрос и регулярно падает с «Rate limit reached» — даже на подписке за $200/мес. Я поднял локальный SearXNG, подключил через MCP — и теперь поиск бесплатный, без лимитов, а запросы не уходят на серверы Anthropic. Установка — 10 минут, три файла конфигурации.

Показать решение

Все не любят мониторинг. Настраиваю для CDC-пайплайна: Victoria Metrics, Grafana и алерты в Telegram

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

Седьмая статья цикла о построении CDC-пайплайна с нуля. Инфраструктура работает, данные текут из PostgreSQL через Kafka в HDFS. Займемся те, что никто не любит(по крайнее мере у нас на работе). Сегодня поднимаем мониторинг и настраиваем алерты в Telegram.

Читать далее

Главная уязвимость российских хостингов: как оплачивать членство RIPE NCC в 2026 году

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

Хостинговые компании России устранили старые проблемы. Большинство хостингов стабильно держат соединения с крупными интернет-провайдерами (BGP-сессии с аплинками) и правильно объявляют свои IP-адреса в глобальной сети (route-объекты). Клиенты получают сервис высокого уровня без лагов.

Однако все эти достижения могут в один момент разлететься на кусочки.

Как защитить Ахиллесову пяту

Мастерство поиска в Linux: Grep и регулярные выражения

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

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

В качестве одного из возможных инструментов для поиска может применяться утилита grep. Grep (сокращение от global/regular expression/print) является одним из самых мощных и часто используемых инструментов в арсенале системного администратора и разработчика. На первый взгляд, её задача проста — найти строки в тексте, соответствующие шаблону. Например, вхождение какого‑либо слова в текстовом файле Однако истинная мощь grep раскрывается при использовании регулярных выражений (regex).

В этой статье мы разберём три основных типа регулярных выражений, используемых в экосистеме grep: Basic (BRE), Extended (ERE) и Perl‑compatible (PCRE) и рассмотрим несколько практических примеров.

Читать далее

Сборка Docker для микросервисов: 7 шагов к идеальному образу

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

В этой статье разбираем важную тему микросервисной архитектуры — «толстые» образы. Приведен пример реальной практики снижения размера с 800 МБ до 120 МБ, почему Uber перешел на distroless и как 7 простых шагов по multi-stage сборке сделают ваш деплой в разы быстрее и безопаснее. Будут схемы слоев и реальные цифры. Под катом — готовый рецепт оптимального образа для продакшна.

Перейти к статье

Я просто хотел, чтобы код от Claude не поломался через месяц. Пришлось сделать runtime для воспроизводимости AI-кода

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

AI-агенты пишут код за секунды.
Через месяц этот код начинает ломаться — не из-за багов, а потому что мир вокруг него изменился.

Я столкнулся с этим, когда Express API, сгенерированный Claude, умер через 28 дней.
Перегенерация помогала… ровно до следующего обновления зависимостей.

В итоге я попытался решить не проблему кода, а проблему воспроизводимости AI-решений — и случайно пришёл к идее CI/CD для мира, где код пишет не человек, а модель.

В статье — про «гниение» AI-кода, Execution Plans, проверку смысла вместо проверки файлов и почему в большинстве случаев чинить можно без повторного вызова LLM.

Читать далее

Как HAProxy принимает решения: ACL, mode и маршрутизация трафика

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

HAProxy часто появляется в инфраструктуре незаметно. Сначала это просто балансировщик: принял трафик, отправил дальше — всё понятно. Потом появляется второй сервис, третий, routing по домену, path, заголовкам, SNI, а заодно canary и временные исключения. И вот конфиг, который когда-то помещался на один экран, превращается в логическую задачу со звёздочкой.

В этот момент почти всегда всплывают ACL. Кто-то использует их осознанно, кто-то — по принципу: нашёл в примере, вроде работает. Рядом с ACL неизбежно стоит mode: tcp или http. Снаружи это выглядит как простая настройка, но на деле — фундаментальное решение, от которого зависит, какие данные HAProxy вообще видит и какие условия способен проверить.

Проблема в том, что HAProxy не делает догадок. Он последователен и выполняет конфигурацию ровно так, как она написана. Отсюда и классика жанра: ACL есть, но backend не выбирается; mode вроде http, но заголовки недоступны; routing работает почти всегда, кроме пятницы.

Читать далее

Platformize It! Часть 2: Расширяем Kubernetes с помощью API Aggregation Layer

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

В предыдущей части статьи мы разобрались, как построить платформу для развертывания управляемых приложений с единым API и UI. Сегодня мы сделаем следующий шаг — дополним стандартный API Kubernetes своим API-сервером для синхронизации состояния. Рассказываем по порядку, это сделать.

Читать далее

FinOps на практике: фаза Inform и управление облачными затратами с помощью штатных инструментов

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

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

Практики FinOps в Telegram| Бот

Почему начинать с оптимизации — плохая идея

Первая мысль, которая появляется, когда счет за облако в очередной раз оказывается процентов на 40 выше запланированного, — взять и что-нибудь урезать. Неважно что. Лишь бы сократить расходы. Ну, оно вроде и логично. Режем лишнее – оставляем нужное – сокращаем траты.

Вот только вся проблема в том, что без понимания структуры затрат такая оптимизация — это что угодно, только не она. Потому что так можно запросто угробить десяток-другой человекочасов на тюнинг компонента, который дает 2% от общего счета, и не заметить, что 60% уходит на базы данных, про которые никто не вспоминал с момента основания компании. Или, скажем, прибить сервис, который выглядел как заброшенный, но на самом деле держал чей-то продакшн. И ходи потом доказывай, что не верблюд.

Читать далее

Как настроить swap в Linux, чтобы поды не убивались и не вытеснялись

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

С недавних пор в Kubernetes можно включать swap. Говорят, теперь можно забыть о внезапном вытеснении и убийствах подов. Но так ли это на самом деле, если риски никуда не делись?

В статье на тестах и графиках показано, как разные значения параметров ядра Linux влияют на swap и расход памяти в целом. Спойлер: если грамотно всё настроить, можно избежать проблем.

В конце — набор рекомендаций и базовых настроек, которые можно протестировать на своих приложениях.

Читайте, как настроить без риска

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

Как я решил вкатиться в Android разработку через вайбкодинг. Часть 2. Ну или разработка мобильного приложения через ИИ

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

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

Читать далее

Как мы организовали работу с Persistent Volume в кластере

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

Привет, Хабр! Я Анна Мелкомукова — инженер команды Spirit Compute в T-Банке. Наша команда отвечает за создание и полную поддержку Kubernetes-кластеров. 

Раньше трава была зеленее и небо голубее, а в Kubernetes крутились только легкие и беззаботные stateless-микросервисы. Поды появлялись и исчезали, как будто так будет всегда, но затем в архитектуре появился Stateful.

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

Читать далее

glenv: синхронизируем .env файлы с GitLab CI/CD переменными без боли

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

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

Если вы работаете с GitLab и у вас больше одного окружения — вы наверняка знаете этот ритуал: открываешь Settings → CI/CD → Variables, начинаешь вбивать переменные вручную, на пятой ошибаешься, на двадцатой теряешь счёт, на пятидесятой начинаешь сочувствовать тем, кто хранит секреты прямо в коде.

Я написал glenv — CLI-инструмент на Go, который синхронизирует .env файлы с GitLab CI/CD переменными через API. Под катом — история о том, почему существующих решений не хватило, как это устроено внутри и несколько примеров использования.

Читать далее

Оптимизация стоимости владения K8s-кластерами в AWS и YC

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

Облака обещают магическую экономию и бесконечное масштабирование. На практике Kubernetes‑кластеры в AWS и Яндекс.Облаке легко превращаются в бездонную чёрную дыру для бюджета. Мы в «Антиплагиате» научились готовить споты, научили шедулер и дешедулер работать правильно и выжали из кубов максимум надежности и производительности при минимуме затрат. В этой статье — конкретные шаги, которые позволили сэкономить миллионы рублей.

Казалось бы, задай вопрос любой популярной LLM, она выдаст набор рецептов на любой вкус. То, что будет в этой статье, LLM не расскажут. Я проверял. В этой статье, только реализованные и действительно работающие рецепты с плюсами, минусами и подводными камнями.

Без галлюцинаций и смс, погнали!

Telescope: Kubernetes как ещё один источник логов

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

В прошлом году я писал на Хабре про Telescope - инструмент для просмотра логов через веб-интерфейс. Тогда основной сценарий был связан с ClickHouse, и в комментариях логично возник вопрос: не "прибит" ли инструмент к одной базе данных.

Технически - нет. Модель источников изначально задумывалась расширяемой. Позже появилась поддержка Docker, чтобы Telescope можно было использовать и в локальной разработке, без централизованного хранилища логов.

В версии 0.0.24 добавлен ещё один тип источника логов - Kubernetes. Теперь Telescope может напрямую читать логи pod-ов через Kubernetes API, сохраняя ту же модель прав доступа и язык фильтрации.

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

Читать далее

git-wt — AI First обёртка для git worktrees на чистом Bash

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

CLI-обёртка над git worktree на чистом Bash. Автоименование worktrees, централизованное хранение в ~/.git-wt/, копирование .env файлов, shell-автодополнение и поддержка AI-агентов через SKILL.md. Сделана для параллельной работы нескольких Claude Code / Cursor / Windsurf на одном репозитории, но полезна и для код-ревью, хотфиксов и тестирования. Ноль зависимостей, установка за 5 секунд.

Читать далее

Мы знаем как готовить БД. Но индустрия изменилась: что бы я заложил в OLTP-БД с нуля

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

Обычно мы используем СУБД как инструмент: учитываем нюансы синтаксиса, оптимизатора, утилит и поведения движка — и решаем прикладные задачи. Но недавно, разворачивая очередной PostgreSQL‑кластер для продакшена, я поймал себя на мысли: не слишком ли много всего нужно поднять вокруг PostgreSQL, чтобы система работала одновременно безопасно и предсказуемо по производительности?

Читать далее