Обновить
256K+

DevOps *

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

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

Невозможно быть вне политики с Airflow Cluster Policies

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

Привет, Хабр! Я Миша Онянов, Python-разработчик и платформенный инженер в крупнейшем проекте MAGNIT TECH – F&R. Из статьи вы узнаете, как с помощью механизма Cluster Policies в Apache Airflow вынести требования к DAG’ам в исполняемый код:

- Поговорим о том, когда и зачем нужен отдельный слой Policies.

- Посмотрим на примеры требований в больших data-инженерных проектах и способ их реализации с помощью политик.

- Покажу нашу архитектуру, примеры кода и способы внедрения.

- Сделаем выводы из моих ошибок, допущенных при разработке и внедрении.

- В конце посмотрим, в каких ещё системах используется аналогичный механизм.

Материал будет полезен всем, кто собирается внедрять или уже работает с Apache Airflow ✌️🥸

Читать далее

Боюсь vibe coding, поэтому встроил автоматический security-скан (Semgrep + gitleaks) во все свои проекты

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

Я работаю в IT-консалтинге первый год и параллельно веду несколько пет-проектов вместе с Claude Code. И в какой-то момент меня начало беспокоить одно и то же:

«А код, который мне написал AI, вообще безопасный?»

Несколько личных проектов я собрал в связке с Claude Code, и раз уж большую часть code review я отдаю модели, то вполне реально, что куда-нибудь просочится:

Читать далее

Минус 500 MB: оптимизируем Docker-образ Django-приложения

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

Когда Docker-образ backend-приложения начинает весить 1,5 GB, это уже хороший повод хотя бы посмотреть, что вообще лежит внутри. Пока все работает, мало кто задумывается, сколько мусора, dev-зависимостей и ненужных файлов уезжает в production вместе с приложением. Но на самом деле от «лишнего веса» нужно избавляться, потому что каждый лишний мегабайт — это более долгие сборки и дополнительные сложности.  

Читать далее

«РБПО для бедных»: настраиваем сервисы безопасной разработки

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

В прошлой статье цикла мы закончили разворачивать инфраструктуру будущего РБПО: установили GitLab, Nexus, HashiCorp Vault, Dependency-Track и DefectDojo, подготовили отдельную виртуальную машину с инструментами безопасности и убедились, что все сервисы успешно запускаются.

Но установить сервисы — это только половина дела. Теперь их нужно настроить и подготовить к совместной работе. Без этого GitLab останется просто GitLab, Vault — просто хранилищем секретов, а DefectDojo и Dependency-Track — красивыми веб-интерфейсами без практической пользы.

В этой статье займемся базовой конфигурацией. Настроим GitLab и GitLab Runner, подготовим Nexus к приему артефактов, научим Vault доверять GitLab через JWT-аутентификацию и создадим необходимые сущности в DefectDojo и Dependency-Track.

Документация открыта, терминал запущен, банка кваса на месте. Начинаем настройку инструментов.

Читать далее

От идеи до MVP: сервис генерации временных ссылок для S3 на FastAPI

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

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

В этой статье я познакомлю вас с реализацией бэкенд-сервиса, который решает эту проблему элегантно: S3 отвечает за хранение и отправку данных, а мое приложение — за проверку прав и генерацию одноразовых, короткоживущих ключей доступа (Pre-signed URL). Я разберу архитектуру решения, покажу, как настроить безопасное разграничение доступа между публичными и приватными объектами, а также продемонстрирую механизм, который позволяет клиентам скачивать файлы напрямую из хранилища, минуя сервер приложения.

Материал будет полезен бэкенд-разработчикам, системным архитекторам и DevOps-инженерам, которые сталкиваются с задачами организации безопасного хранения и выдачи файлов, ищут способы снижения нагрузки на API своего сервиса и стремятся построить надежную систему разграничения прав доступа с использованием современных объектных хранилищ.

Читать далее

Удалёнка убивает тело медленно и без предупреждений: два года DevOps-подхода к себе

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

Статья про то, как удалёнка незаметно меняет тело. Перед длинными выходными особенно актуально :)

🍔 Это не про «ЗОЖ-героизм» или «срочно всем в зал», а про честную инженерную диагностику собственного режима: где сломались метрики, почему это долго не было видно и что пришлось поменять, чтобы вернуть организм из состояния «вроде работает» к нормальной эксплуатации.

🧘🏼‍♂️ Внутри: удалёнка, движение, питание, спортзал, skinny fat и немного DevOps-подхода к себе.

Заходите, читайте и делитесь своим мнением и опытом ❤️

Читать далее

Игры с Horizontal Pod Autoscaling

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

Немного практики для "пощупать" HPA в кластере, поиграться параметрами масштабирования. Можно было бы быстро перейти от теории к практике, ну или наоборот. В примерах используется масштабирование на основе очереди RabbitMQ. Можно использовать minikube, MicroK8s, или где вам удобно... Для удобства развёртывания примеры k8s-hpa-rabbitmq-demo.

Масштабировать

GPU-автоскейлинг на Kubernetes с KEDA: создание внешнего скейлера

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

Если вы запускаете GPU-нагрузки (графические ускорители) на Kubernetes — vLLM, Triton, обучающие задачи или более новые стеки агентного инференса, — вы наверняка сталкивались со знакомой проблемой: стандартный автоскейлинг по-прежнему мыслит в категориях CPU и памяти, а GPU, который реально делает работу, остается невидимым. Из-за этого простаивает дорогая емкость ускорителей, растет задержка инференса и расходуется лишняя энергия — ровно там, где компании пытаются ответственно масштабировать LLM и Agentic Ops (подходы к эксплуатации Agentic-систем).

VK Cloud перевела статью автора, который хотел бы, чтобы KEDA масштабировался по сигналам, которые важны для GPU-нагрузок: утилизации, памяти, температуре и энергопотреблению. На практике это не только вопрос стоимости. Это еще и вопрос GreenOps (экологичный подход к эксплуатации с минимизацией углеродного следа): впустую потраченные GPU-циклы напрямую превращаются в потраченную энергию и более высокие выбросы категории Scope 3 (косвенные выбросы в цепочке создания стоимости).

Оказалось, что это сложнее, чем кажется. Дальше повествование идет от его лица

Читать далее

Kubernetes дома? Ты не в себе? Как с Cursor и без DevOps-опыта поднять приватный кластер для личных проектов

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

Я реализовал свою первую задачу по замене «Яндекс Диска», довёл скорость до 1,1 ГБ/с и пошёл дальше — установил Kubernetes дома. Я не инженер DevOps, но на своём кластере из старых Mac mini я запустил полноценный K8s с Managed Services.

Читать далее

LLM Sandbox: изолированная среда для исполнения кода от LLM [часть 1, теория]

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

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

В этой статье (ее первой части) разберём среду изолированного исполнения кода: песочницу (sandbox).

Представим ситуацию: пользователь загружает Excel-файл, просит проанализировать таблицу, найти аномалии и на основе анализа создать PowerPoint-презентацию. В чистом виде LLM не умеет читать файлы, строить графики и создавать презентации. Однако может написать код, который всё это сделает.

И тут появляется вопрос: где этот код запускать?

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

В этой статье разберём:
- основные риски исполнения кода в неизолированной среде;
- что такое песочница и её ограничения;
- какие бывают подходы к реализации песочницы;
- вариант логики работы агента с песочницей.

Читать далее

Иллюзия IaC: почему Terraform не знает, что происходит с вашей инфраструктурой

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

Мы использовали Terraform как полагается. Потом сделали плановый apply — и положили прод второй раз за неделю. Разбираю, почему IaC не гарантирует консистентность, откуда берётся конфигурационный дрейф и почему «введём процессы» его не остановит.

Читать далее

Ваши тесты медленные не из-за базы данных. Я измерил. Часть 1

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

Есть устойчивое поверье: интеграционные тесты медленные, потому что ходят в настоящую базу. «Подними SQLite в памяти», «замокай репозитории», «не гоняй Postgres в CI» — стандартный набор советов. Мокать я не люблю, но крыть упрёк «настоящая база — это медленно» было нечем. Поэтому я сел, спрофилировал и померил: 3316 интеграционных тестов, прогон 30 минут. После трёх правок инфраструктуры — 109 секунд. База оказалась ни при чём, а совет «чисти базу через TRUNCATE, это быстрее DELETE» у меня работал ровно наоборот — обидно вдвойне, потому что эта рекомендация уже лежала в черновике моей следующей статьи.

Читать далее

«Обживаемся» с Паспарту после переезда на Hermes и наступаем на новые «грабли». Ну и Codex подключаем — как же без него?

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

Продолжение истории про переезд ИИ-агента Паспарту с OpenClaw на Hermes. На этот раз — как я пересадил его на дешёвый DeepSeek, научил переключать модели на лету, подключил бесплатную NVIDIA Nemotron через OpenRouter и приделал Codex, который доводит сложные задачи до конца сам, пока ноутбук выключен. Грабли №16–25: стали мельче, но никуда не делись.

Читать далее

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

Обучение универсальным навыкам в IT

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

Дисклаймер: вся статья это мнение автора, если вы не согласны или готовы предложить что-то, то прошу в комментарии.

IT охватывают огромный простор навыков и идей, многие из них специфичны и предназчена для узкого круга профессий. При этом существуют навыки, которые или универсальны для всех, или не будут лишними точно. В данной статье пойдет речь про Git, SQL и NoSQL, Linux, базовый азы алгоритмов и структур данных и о английском языке. Дополнительно поставил себе задачу, добавить как можно больше бесплатных или квази-бесплатных ресурсов.

Читать далее

Пик продаж как стресс-тест для ИТ-инфраструктуры или почему интернет-магазины не выдерживают сезонную нагрузку

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

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

Меня зовут Эдуард, я руковожу отделом DevOps и отвечаю за сопровождение проектов по SLA 24/7 в компании KISLOROD. Сегодня расскажу о том, как пиковая нагрузка системы влияет на интернет-магазины и как готовить бизнес к дню икс.

Читать далее

Как починить блокировку Вашего сайта от РКН ТСПУ — реальный кейс

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

Ранее уже выкладывал способ, Как починить блокировку легальных сайтов РКН ТСПУ одной строчкой в Chrome - он работает, но не для всех.

Теперь же мы разберем ситуацию, как починить Ваш сайт если Вы Владелец / Администратор, расскажу как к этому пришёл и почему это работает.

Читать далее

Рабочий стол в LXC-контейнере: детективная история о протоколах, тупиках и самописном Wayland-композиторе

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

Домашний облачный рабочий стол и гейминг в контейнере, с общим GPU. Готового решения не было — пришлось пройти четыре тупика и написать свой Wayland-композитор.

Читать исследование

Hermes Skill Hub: большой каталог skills для AI-агентов, по которому уже видно, как меняется вся экосистема

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

Пока вокруг AI все в основном обсуждают модели, бенчмарки и очередных «автономных агентов», параллельно растёт более прикладная часть экосистемы — готовые skills под конкретные задачи. И Hermes Skill Hub здесь особенно интересен.

Когда открываешь такой хаб, быстро становится понятно, что агенты уже живут не только на уровне «вот модель, вот чат, вот промпт». Поверх этого слоя появляется следующий: готовые блоки действий, готовые workflow, готовые куски автоматизации, из которых можно собирать собственные процессы. По сути, skill здесь — это уже не просто текстовая подсказка, а оформленный способ решать повторяемую задачу, строить собственные пайплайны.

Читать далее

Применение Kotlin DSL в TeamCity для автоматизации пайплайнов: кейс команды ВКонтакте

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

Привет, Хабр. Меня зовут Василий Щитов. Я старший инженер в команде CI-инфраструктуры ВКонтакте. 

Когда в компании десятки проектов и сотни сборок, ручное управление конфигурациями через UI быстро превращается в хаос. Внести однотипное изменение во все пайплайны, отследить историю правок или быстро развернуть окружение на новом инстансе TeamCity становится нетривиальной задачей. Можно превратить этот хаос в упорядоченную структуру, если описать конфигурацию как код с помощью Kotlin DSL. Но далеко не все понимают, как работать с Kotlin DSL для решения своих задач.

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

Разбираемся с TeamCity под катом

Миграция с ingress-nginx: переход к Gateway API

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

В предыдущей части были рассмотрены варианты ingress-контролера. В этой статье расскажем, как мы тестировали Traefik и постепенно готовим инфраструктуру к переходу на Gateway API без простоев и массового переписывания сервисов.

Читать далее