Обновить
306.68

DevOps *

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

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

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

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

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

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

Новости

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

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

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

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

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

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

Читать далее

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

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

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 мин
Охват и читатели3.6K

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

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

Читать далее

Конфигурация как пакет: наводим порядок в Conan так, чтобы не было мучительно больно

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

Все, кто плотно сидит на C++ и использует Conan, знают: сам по себе пакетный менеджер — это только полдела. Настоящее веселье начинается, когда нужно раскатать одинаковые настрйки на всю команду и десяток CI-нод. Репозитории, профили, хуки, кастомные настройки всё это хозяйство нужно как-то синхронизировать.

Раньше у нас был conan config install, который тянул конфиги из git-репозитория или zip-архива. Решение рабочее, но с душком: попробуйте воспроизвести сборку двухлетней давности, если за это время мастер-ветка с конфигами улетела далеко вперед.

В Conan версии 2.x (и последних минорных обновлениях) завезли киллер-фичу: conan config install-pkg. Теперь конфигурация — это полноценный пакет. Давайте разберемся, почему это меняет правила игры.

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

250 критических замечаний, или Как мы нашли общий язык с разработчиками

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

Иногда работа идет по отлаженным процессам, но результат — вопреки ожиданиям и цитате, авторство которой приписывают то Эйнштейну, то Ваасу Монтенегро, —  получается совершенно другим. И ты понимаешь, что процессы пора менять.

В прошлой статье я рассказывала о том, какие подходы и инструменты мы используем в «Базисе» для реализации DevSecOps. Сегодня же хочу поделиться своим опытом выстраивания организационных процессов безопасной разработки.

Читать далее

В популярных Helm-чартах (Prometheus, Datadog, Grafana) нашли уязвимость RCE, но Kubernetes отказался её исправлять

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

Казалось бы, права на чтение — что с них взять? Оказывается, в Kubernetes разрешение nodes/proxy GET позволяет выполнять любой код в любых подах кластера. Уязвимость уже нашли в популярных Helm-чартах, включая Prometheus, Datadog и Grafana. И да, команда Kubernetes решила это не исправлять.

Узнать, как проверить свой кластер

ИИ в Agile-команде. Цифровой помощник, железный дровосек или коллега?

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

Всем привет! На связи команда «Клаудмастер» («Инферит FinOps»). Хотим рассказать вам про то, как мы используем ИИ в нашей работе.

Помните март 2025-го? Дарио Амадей, генеральный директор Anthropic, обещает, что очень скоро почти весь код будет писать ИИ, регуляторы и рынок труда должны будут адаптироваться (ну вы поняли). 

Тогда мы с командой спешно затеяли эксперимент: решили проверить, каков реальный КПД от ИИ на практике и стоит ли нам в него вложиться.

Читать далее

AWX: большой рефакторинг и потеря корпоративных функций — что происходит с проектом

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

Для многих технических специалистов AWX на протяжении многих лет был синонимом «бесплатного Ansible Tower» — надёжным и функциональным решением для управления Ansible-автоматизацией. Это был стандарт де-факто для тех, кто хотел получить удобство (практически) "коробочного" решения и функциональность корпоративного уровня, не вкладываясь в лицензии коммерческого решения.

Однако 2 июля 2024 года вышел релиз AWX версии 24.6.1, который стал последним на данный момент выпуском проекта. С тех пор прошло более полутора лет, а новых релизов так и не появилось. В репозитории проекта на GitHub висит предупреждение: «Releases of this project are now paused during a large scale refactoring». Для сообщества, активно использующего или планирующего использовать AWX как основной инструмент централизованного управления Ansible-автоматизацией, эта ситуация вызывает закономерные вопросы: Что происходит с проектом? Есть ли у него будущее?

Для конечного пользователя не совсем очевидно, но AWX не умирает, а кардинально трансформируется. В данной статье мы разберем текущую ситуацию вокруг AWX, опираясь на официальные анонсы, технические дискуссии разработчиков и статусы ключевых проектов. Проанализируем архитектурные изменения проекта. Разберемся, почему эти изменения были неизбежны, что именно было «вырезано» из проекта и что всё это значит для вас — инженеров ИТ инфраструктуры и архитекторов автоматизации, которые используют AWX в своей работе и проектах.

Читать далее

Пишем плагин для semantic-release

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

Вы когда-нибудь писали плагин для semantic-release? А хотели бы? Если да, то идем дальше. Расскажу, как это сделать и самое главное это не сложно. А в конце Вас ждет репозиторий, который вам поможет начать проект.

Привет! Меня зовут Алексей, я работаю в команде Авторизации Банки.ру. Сегодня хочу познакомить Вас с тем, как можно написать свой плагин для semantic-release.

Читать далее

Хаос-инжиниринг Strimzi Kafka: проверка устойчивости к сбоям через Chaos Mesh

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

Цель проекта — проверить отказоустойчивость Strimzi Kafka в Kubernetes с помощью chaos-экспериментов (Chaos Mesh). Для этого разворачивается полный стенд: кластер Kafka (KRaft, 3 контроллера + 3 брокера), мониторинг (VictoriaMetrics K8s Stack, Grafana), сбор логов (VictoriaLogs), верификация сквозной доставки сообщений через Redis и Go-приложения producer/consumer. Затем последовательно применяются chaos-сценарии (pod-kill, network partition, CPU/memory stress, IO/DNS/JVM/HTTP chaos и др.) и проверяется, что кластер корректно восстанавливается без потери данных.

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