Обновить
256K+

DevOps *

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

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

AVM изнутри задачи, сбои и состояние виртуальных машин

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

В первой части мы разобрали, почему Aeza ушла со сторонней платформы и как AVM устроен в общих чертах. Здесь уровень ниже: путь запроса от вызова до задачи на конкретной ноде, устройство конвейеров, поведение при сбоях и то, где система хранит состояние виртуальных машин.

Любой запрос клиента заканчивается цепочкой задач на ноде: скачать образ, создать диск, поднять машину. Этими цепочками управляет AVM — собственная система управления виртуализацией.

Читать далее

Мы списали uv со счетов. А потом он ускорил наш CI на 80%

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


Мы списали uv со счетов. А потом он ускорил наш CI на 80%

В Python-сообществе вокруг uv уже несколько месяцев шум: быстрый резолвинг, один инструмент вместо зоопарка утилит и обещание ускорить привычный workflow. Звучит хорошо — пока не проверишь на своём стеке.

Мы так и сделали. Взяли один микросервис: Python 3.14, 37 прямых зависимостей, 153 пакета в lock-файле, приватные пакеты и внутренний Nexus. Ожидание было простым: если uv действительно быстрее Poetry, миграция окупится сама.

Локально получилось наоборот. Резолвинг — да, быстрее. Установка по готовому lock-файлу — нет, иногда даже медленнее. Эксперимент закрыли и остались на Poetry.

Через несколько недель пришлось вернуться. Не из любопытства, а из-за алерта Trivy и сюрпризов Poetry 2 с корпоративными индексами. И вот тогда uv показал себя совсем в другом месте — в CI.

В статье разберем:

- почему локальный бенчмарк uv vs Poetry нас обманул;
- как Poetry 2 сломал привычную разработку без VPN;
- зачем мы писали парсер poetry.lock requirements.txt и почему это оказалось костылём;
- как точечная замена Poetry на uv sync в пайплайне сократила время с 5:10 до 2:50;
- почему в итоге uv стал единым стандартом и локально, и в CI.

Коротко: если инструмент не выиграл с первого прогона — это ещё не значит, что он бесполезен. Часто вы просто мерили не то узкое место.

Читать далее

Sentry пора на покой… Metric готов принять пост

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

Self-hosted Sentry — это 65 контейнеров, 16-32 ГБ RAM и выделенный инженер на поддержку. Всё ради того, чтобы ловить стектрейсы. Разбираемся, почему индустрия приняла это как норму, сравниваем альтернативы (GlitchTip, BugSink, Hawk) и знакомимся с Metric — Sentry-совместимым мониторингом на, которому хватает 1 ГБ RAM и двух контейнеров. Миграция — смена одной строки DSN.

Читать далее

Введение в воспроизводимые сборки

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

И вновь я всех приветствую! Сегодня я бы хотел рассказать о такой теме как воспроизводимые приложения/сборки. 

Читать далее

Одна среда на шесть компьютеров вместо командной подписки Claude Code

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

Я настроил свою работу так, что у меня в одной среде - 6 компьютеров.

Хочу подробнее описать как у меня устроена командная работа с Claude Code

У меня шесть машин: всегда включённый десктоп, два ноутбука на Windows, два Мака и Linux-VPS. За ними работают три человека. На каждой машине свой Claude Code, свой логин.

Я сажусь за любой компьютер и пишу: «напомни, что коллега вчера делал с гейтом публикации, хочу продолжить». И продолжаю. Не спрашиваю в чате, не жду, пока передадут дела, не читаю сорок сообщений, чтобы понять, что имелось в виду. Все что делают коллеги - я вижу и апдейты по любым их сессиям могу запросить у своего клода, хотя все компьютеры\ноутбуки залогинены в разных клод код аккаунтах

Так у меня работает с июня.

Читать далее

Как мы управляем софтом в сложной ИТ‑инфраструктуре

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

Сложная ИТ-инфраструктура неизбежно вызывает множество проблем: нужно обеспечивать её масштабируемость и работоспособность, сдерживать рост затрат на сопровождение и поддержку, повышать прозрачность использования инфраструктуры и работающего на ней ПО.

Привет, Хабр! Меня зовут Юрий Самойлов, я директор по продукту MWS B2B Store. Сегодня поговорим о том, как управлять сложными инфраструктурными и ИТ-ландшафтами в целом, обсудим проблемы стандартизации, упаковки и развёртывания ПО, а также вопросы контроля лицензий, в том числе уже приобретённых у разных вендоров. Кроме того, мы посмотрим, как эти задачи решаются в MWS.

За помощь в подготовке материала спасибо Евгению Тетенчуку, техлиду команды MWS B2B Store. Эта статья — текстовая версия вебинара.

Читать далее

Перезапустить недостаточно: как я сделал проверяемое автоматическое восстановление сервисов

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

restart-hook вернул 202, а сервис всё ещё не отвечает. Повторить запрос — рискнуть вторым перезапуском; закрыть инцидент — записать восстановление, которого не было. На этом конфликте построен recovery в Vigil: система проверяет сервис до и после действия, отсекает устаревшие задачи и останавливает автоматизацию, когда пора звать человека.

Читать далее

Мы устали искать Swagger по чатам и написали свой агрегатор

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

Мы устали искать Swagger по чатам и написали свой агрегатор.

— Где актуальный контракт сервиса рассрочек?
— В репозитории.
— В каком?
— Сейчас найду ссылку.

У нас этот диалог повторялся регулярно. Формально API-документация была. Фактически — реестр хранился в памяти нескольких сотрудников, а поиск работал через WB Wiki и корпоративный мессенджер Band.

Меня зовут Олег Леонов, я руковожу отделом системного анализа в финтехе RWB. Мы занимаемся рассрочками и кредитами, инвесткопилкой и WB Кошельком в мобильном приложении и на сайте.

Swagger Aggregator я начинал как пет-проект. Хотел собрать контракты в одном месте и искать по ним примерно так же, как по коду. Потом агрегатор прижился у команды. Расскажу, что в итоге получилось и на каких местах я потратил больше времени, чем рассчитывал.

Читать далее

Linux Capabilities: новый root, объяснения и примеры работы

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

Изначально с Capabilities я лично столкнулся в своем проекте ServeHub-2, когда настраивал контейнеры в docker-compose. Если быть более конкретным, я настраивал WG-easy с использованием AmneziaWG, которому нужны были привилегии, связанные с загрузкой модулей ядра и настройками интерфейсов. До этого я слышал о Capabilities, но не знал что это такое, поэтому решил подробнее в этом разобраться.

Сначала разберу общее понятие, что вообще такое Capabilities (далее буду кратко писать CAP), потом постепенно перейду к примерам.

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

Читать далее

Обзор Kubernetes 1.37: воскрешаем поды из снапшотов, планируем сложные workload и следим за здоровьем PV. Разбор 22 фич

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

Разбираем 22 альфа-фичи Kubernetes 1.37. Спойлер самого крутого и долгожданного:

- Больше не нужно с нуля перезапускать приложения после каждого сбоя — появились снапшоты подов.

- «Костыли» для планирования сложных нагрузок в прошлом — K8s научился работать с иерархией групп подов.

- Проблемы с хранилищем можно отловить сразу, а не когда приложение упадёт с ошибкой — теперь K8s мониторит здоровье PV.

Подробнее об этих и других фичах с примерами — читайте в статье.

Что нового в Kubernetes?

Как взрослеет DevOps на потоке: от информирующих сканов к risk-based gate'ам

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

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

На связи Илья Виссарионов, директор департамента «Аппаратно‑системная платформа» компании «Диасофт».
 
Про DevSecOps написаны тонны текстов, но почти все они – про инструменты: какой SAST выбрать, куда «воткнуть» Trivy, как подружить сканеры с GitLab. Реальная проблема 2026 года в другом. Сканеры давно стоят на всех стадиях пайплайна, базы уязвимостей обновляются ежедневно, а криты все равно доезжают до заказчика. Проблема сместилась в другую плоскость: как приоритизировать, чинить и ретестить находки, когда у тебя 2000+ развертываний в день и больше сотни команд. Проще говоря – как управлять security-долгом на конвейере.

Этот текст – результат внутренней дискуссии, в которой участвуют три стороны: те, кто отвечает за конвейер и инструменты выпуска, те, кто пишет продукты, и те, кто несет эти продукты заказчикам и первыми улавливают требования рынка. У каждой стороны своя правда, и мы решили не сглаживать углы, а честно показать, как выглядит взросление DevSecOps изнутри – со всеми компромиссами, экономическими выкладками и парадоксами, о которых обычно не пишут.

Читать далее

Как вывести YAML для Kubernetes в формате KYAML и зачем это может понадобиться

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

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

Интересно вот что: большинство этих возможностей Kubernetes не нужны. Он опирается лишь на небольшое подмножество YAML. Отсюда возник простой вопрос: если Kubernetes нужна только малая часть YAML, почему бы не стандартизировать именно эту часть, а остальное не использовать? Вместо того чтобы вводить новый язык конфигурации, SIG CLI представила KYAML, более строгий и последовательный способ писать YAML. А мы в VK Cloud перевели об этом статью.

Читать далее

Redis — история одного падения

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

Пару лет назад мы устроили настоящее расследование серии инцидентов в поисках скрытого дефекта нашего Redis-клиента. Команда воспроизводила сбои под контролируемой нагрузкой, проверяла одну гипотезу за другой, обновляла Jedis, экспериментировала с таймаутами и размерами пулов — но ничего не помогало. А помогли новые метрики и логи, настойчивость команды, ночные эксперименты и готовность разбирать поведение системы до последнего соединения. Получилась история с неожиданными поворотами, ложными следами и одной лишней строчкой кода в роли главного подозреваемого — а её итогом стал Redis-клиент, который оказался устойчивее, чем был до начала расследования.

Меня зовут Коля Грибанов, я тимлид команды «Платформа» в hh.ru. В статье расскажу, почему потеря одной ноды Redis вызывала шторм из десятков тысяч соединений, и как мы шаг за шагом искали причину инцидентов.

Читать далее

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

Два сервера дома: аварийная инфраструктура на списанном железе

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

У меня два физических сервера на списанном железе — Xeon E5 и старый IBM, суммарно 112 потоков и 754 гигабайта памяти. На них 55 виртуальных машин, и на этом живёт онлайн-школа, платформа с курсами, мессенджер, игровой движок и майнкрафт-серверы для учеников. При этом я не девопс и не системный администратор. Разбираю технически: как поделены машины, как устроена репликация баз между площадками, что происходит при падении основной и какие вещи я сделал неправильно.

Читать далее

Через гейт без слёз: безопасность для живых людей

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

Привет! С вами Александр Трифанов, руководитель направления Application Security в Авито. Я почти десять лет занимаюсь пентестами и созданием решений для продуктовой безопасности. В этой статье расскажу про security gates: что это такое, зачем они нужны и как построить проверки, после которых разработчики не будут проклинать команду безопасности (либо я просто не в курсе).

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

Читать далее

Автофикс проблем прода с ИИ без инженера

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

Пятница, вечер. Деплой ушёл, ты со спокойной душой уходишь домой. Утром открываешь дашборд: из 68 компонентов не работают 54.

Александр Крылов, 12 лет в IT и основатель конференции K8sday, рассказал, как его команда перестала тушить одни и те же пожары и написала сервис, который сам чинит типовые проблемы CI/CD ещё до того, как о них узнает дежурный. Итог: доля падающих деплоев упала в 2,5 раза, а time-to-market вырос вдвое.

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

Смотреть, как это устроено

Кaк внeдpить cтaтичecкий aнaлиз: пpaктичecкий aлгopитм для мeнeджepoв

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

Cтaтичecкий aнaлиз кoдa дaвнo пepecтaл быть инcтpyмeнтoм иcключитeльнo для paзpaбoтчикoв. Для pyкoвoдитeлeй пpoдyктoв, тexничecкиx диpeктopoв и кoмaнд инфopмaциoннoй бeзoпacнocти oн cтaнoвитcя чacтью cиcтeмы yпpaвлeния кaчecтвoм и бeзoпacнocтью paзpaбoтки.

B этoй cтaтьe мы paccкaжeм, кaк пocлeдoвaтeльнo внeдpить инcтpyмeнт cтaтичecкoгo aнaлизa, ктo oтвeчaeт зa кaкoй этaп и кaк пepeйти oт paзoвoгo иcпoльзoвaния aнaлизaтopa к peгyляpнoмy кoнтpoлю кaчecтвa иcxoднoгo кoдa.

Читать далее

Абьюзивные отношения с Ceph: почему мы всё ещё не разводимся с ним

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

«Нам нужен Ceph» — эту фразу хотя бы раз слышал каждый, кто работает с инфраструктурой. И почти всегда за ней следует вопрос: «А нет ли на рынке альтернатив попроще?» Ночные дежурства, CRUSH, поиск инженеров, которые реально умеют его эксплуатировать… Но когда снова нужно серьёзное хранилище — в обсуждении опять появляется он. Разбираемся, почему мы двадцать лет не можем с ним расстаться, хотя иногда очень хочется.

Разобраться в причинах

А кто-нибудь знает как и почему это работает?

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

Инфраструктура может работать годами, хотя никто уже толком не понимает, как именно она устроена и от чего зависит. Разбираемся, что такое «топологический долг» и можно ли вообще измерить, насколько хорошо мы понимаем собственную инфраструктуру.

Ну давай попробуем...

Сторож бюджета сработал ровно так, как я его написал. Поэтому за сутки ушло 225 евро при жёстком пороге 150

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

Я сам написал скрипт, который следит за расходом Telegram Ads и глушит кампании при превышении дневного лимита. Двадцать пятого июня он отработал ровно так, как был написан, — и именно поэтому за сутки открутилось 224,98 € при пороге 150. Разбираю по шагам, где именно я ошибся: почему проверка «раз в час» на самом деле проверяла не то, почему остановка кампании не остановила расход, и как алерт о проблеме ушёл туда, где его никто не читал. С кодом до и после.

Читать далее