Обновить
256K+

DevOps *

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

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

n8n self-hosted в production: docker-compose, nginx, ретраи и три грабли

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

n8n запускается одной командой docker run и через пять минут вы видите логин-форму. Это маркетинговый ролик. Реальный production-конфиг - с persistent storage, корректными webhook-URL, ретраями, бэкапами PostgreSQL и мониторингом - выглядит сильно иначе. В этой статье - конфигурация, которую я держу на 12 проектах в течение полутора лет. Плюс три грабли, на которые наступал лично.

Все примеры - community-edition, без коммерческой лицензии. На проде у меня сейчас крутится 2.19.5, но в image: стоит n8nio/n8n:latest плюс Watchtower (про него ниже) - он подтягивает свежий образ ночью. Внутри 2.x API/env-переменные стабильны, рекомендую :latest + Watchtower на проектах где простой 5 минут утром не критичен, и закреплённый минор (:2.19.5) - на проектах где даунтайм нельзя.

Читать далее

TLSS или portable pki service в кармане

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

Сегодня я бы хотел рассказать о небольшом проекте, который тянется немного, немало, около двух лет.

Я назвал его TLSS, или TLS Service — карманный pki сервис.

Читать далее

Дорожная карта домашнего мини-ПК в 2026: что развернуть, в каком порядке, и зачем — план апгрейда от инфраструктурщика

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

Каждый месяц с карты списываются деньги за подписки. Spotify, Яндекс Плюс, Notion, Obsidian Sync, Google One — суммы небольшие по отдельности, в сумме набегает заметно. Параллельно с этим у меня работает VPS с несколькими проектами, на роутере крутится OpenWrt с AdGuard Home, в ноутбуке стоит Docker. Инфраструктурный опыт есть. Дома при этом — никакого сервера, всё в облаке.

Это начинает раздражать не только из-за денег. Сервисы меняют каталоги без предупреждения, поднимают цены, требуют доплат за объём, периодически ломают регионы. Контроль над собственными фотографиями, заметками и медиатекой постепенно перестал быть моим.

Решил спланировать переезд на свой мини-ПК. Пока разбирался с железом и стеком, обнаружил, что нормальной системной дорожной карты «бери и иди» в 2026 году нет. Есть каталоги «50 self-hosted сервисов», восторженные посты про конкретные приложения, треды на Reddit. Структурированного маршрута для нового человека — нет.

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

Читать далее

Локальный агент для диагностики инфраструктуры

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

В статье описаны результаты, которые получил в поисках ответа на вопрос «можно ли решать реальные задачи диагностики и исправления проблем инфраструктуры на слабом MacBook в агентском режиме (да, но)».

Читать далее

Без рук: автоматизируем нагрузочное тестирование изменений в CI

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

Нагрузочное тестирование — одна из самых избегаемых тем, когда речь заходит о контроле качества ПО. Корпорации, конечно, не обходят его стороной, но если говорить о продуктах меньшего масштаба, то нагрузочное тестирование часто пропускается. Команда (и, в целом, справедливо) полагает, что продукт справится с нагрузкой — на малых объёмах это обычно прокатывает. А потом внезапно наступает день, когда пользователей стало больше, а система не готова.

Почему команды не тащат нагрузку в релизный цикл? Потому что это чаще всего просто не окупается: нужно выбрать движок, описать сценарий, гонять тесты вручную или тратить время на создание собственной обвязки для встраивания в CI, придумать критерии качества и анализировать результаты. Всё это занимает значительное время, а на короткой дистанции часто оказывается оверинжинирингом. Но если формирование требований упростить концептуально невозможно, то всё остальное вполне можно собрать в переиспользуемый инструмент, позволяющий командам легко интегрировать нагрузочное тестирование и регрессионный анализ в свой процесс доставки.

В CI/CD мы хотели простую штуку: на каждый PR запускать короткий перф‑смоук и получать ответ уровня «PASS / WARNING / DEGRADATION», а не 15 минут медитировать над CSV и тратить ценное время на анализ, который, вероятно, не пригодится в ближайшей перспективе.

Посмотрим, к чему мы в итоге пришли.

Нагрузочное тестирование на собственных мощностях: полный гайд по k6

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

Развернём нагрузочное тестирование на своих мощностях. Без ДД (долго, дорого). k6, VPS, сценарий на JavaScript, метрики в Grafana Cloud. Полчаса на настройку и встраивание в CI/CD. Для тестировщиков, разработчиков и всех, у кого есть пет-проекты.

Читать далее

ASOC на коленке: как я навайбкодил замену DefectDojo для своих задач с обогащением из БДУ ФСТЭК

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

Когда я начал разбираться, чем в open source можно закрыть задачу ASOC / Vulnerability Management, выбор оказался довольно грустным. По сути единственный известный вариант это DefectDojo. Сам я его в production не тащил, но от коллег регулярно слышал одну и ту же боль: на больших объёмах findings он начинает захлёбываться, в UI быстро не хочется заходить, а аналогов с человеческим интерфейсом и БДУ ФСТЭК «из коробки» в open source я просто не нашёл. Так и появилась моя ASOC-платформа: Go + PostgreSQL + Redis Streams + React, развёртывание одной командой docker compose up, миллион findings без тормозов (почти), обогащение из 7 источников, формула приоритизации, которая учитывает не только CVSS, но ещё EPSS, CISA KEV и БДУ ФСТЭК. В статье расскажу про архитектурные решения, грабли и почему я выкинул ORM ещё до первой строчки SQL.

Это не статья про готовый коммерческий продукт и не пиар-релиз. Скорее разбор того, как и почему был спроектирован Red Lycoris, open source платформа для централизованного хранения, дедупликации, обогащения и приоритизации уязвимостей. Я делаю её один, и если кому-то она пригодится, буду только рад. Если найдёте, где я ошибся в архитектуре, буду рад вдвойне.

Читать далее

Memory MCP Server, часть 2: как проект вырос из semantic search в memory backbone для инженерных агентов

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

В первой части я показывал agent-memory-mcp v0.1.0: MCP-сервер на Go + SQLite, который даёт AI-агентам persistent memory, semantic search и RAG по документации проекта.

Во второй части разбираю, что изменилось после нескольких месяцев реального использования. Почему fallback между embedding-моделями оказался опаснее отказа, зачем понадобились local-only режим и reembed, почему одного semantic search мало для инженерной памяти, как появились session close, Claude Code hooks, canonical knowledge, stewardship, sedimentation и multi-hop recall.

Это не changelog, а разбор эволюции архитектуры: как простой memory tool вырос в memory backbone для инженерных агентов — слой, который не просто хранит заметки, а помогает поддерживать актуальное, проверенное и полезное знание проекта.

Читать далее

Базированый Ansible

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

Настраивать оборудование можно разными способами. Можно ходить от одной железки к другой и делать всё руками, но это медленно и непродуктивно, сгодится максимум для дома. Можно использовать скрипты, но это может не всегда работать и вызывать проблемы. А можно использовать подход, который сейчас называют Infrastructure as Code, то есть описать в каком состоянии Вы хотите видеть свою инфраструктуру, а программа сделает всё сама. Вот про одну из таких программ, которая активно завоёвывает рынок, мы и поговорим, а именно об Ansible.

Читать далее

Как ручное тестирование вскрывает дефекты в логике интерфейса: 5 кейсов Modus BI

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

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

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

На примере Modus BI разберём пять багов, которые нашли с помощью ручного тестирования. Это не история про «кликнуть по кнопке и сверить текст». Каждый кейс показывает конкретный тип логической проблемы...

Читать далее

Команда ушла в стартап. Кому принадлежит код?

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

Один из самых болезненных сценариев в IT-бизнесе: ключевые разработчики увольняются, открывают собственную компанию и выпускают продукт, подозрительно похожий на ваш. Или обратная ситуация — вы сам разработчик, который ушёл строить своё, а бывший работодатель уже звонит юристам.

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

Так чей же код?

Лучшие практики деплоя: Ansible, GitLab CI

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

Ручной деплой через SSH и bash-скрипты – это практика, которая рано или поздно приводит к инцидентам. В этой статье разбираем, как построить предсказуемый Continuous Delivery с помощью Ansible и GitLab CI. Обсуждаем реальный кейс миграции, пишем плейбуки, настраиваем zero-downtime rolling update и автоматические откаты.

Читать далее

Хотел упростить мониторинг проектов и в отпуск — пришлось обучать свой LLM

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

Я работаю по ИП, поэтому не только пишу код, но и поддерживаю как DevOps свои проекты у заказчика. Эта история началась банально: я собирался в отпуск и хотел оптимизировать часть процессов, которые в повседневной жизни занимают время — чтобы не дёргать клиентов из-за вопросов по ошибкам, которые я мог не увидеть во время отдыха. Пусть локальная моделька сама разгребает типовое. Думал: запущу OpenClaw, подключу к локальной модели — и поеду спокойно.

Через две недели — вместо отпуска — я сидел и обучал Qwen3 на Nvidia RTX 3090 24GB, потому что ни одно из существующих решений у меня не работало. Дальше расскажу, как до этого докатился — с цифрами, граблями и бенчмарками.

Читать далее

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

Можно ли отдать всю разработку полностью ИИ? Я попробовал

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

Всем привет!

Хочу поделиться историей, как я решил попробовать сделать для себя тот самый саморазвивающийся ИИ-стартап и что из этого вышло.

Начну с предыстории. В 2022 году я переехал в Грузию, в Батуми. Здесь я практически сразу начал учить язык, и мне захотелось чуть упростить себе этот процесс — сделать это я решил с помощью своего Telegram-бота. Почему бота? Всем известно, что материал усваивается быстрее и проще, если не садиться за него раз-два в неделю, а стараться изучать что-то небольшое каждый день. Тут мне бы очень помог Duolingo. Но там грузинского нет, хотя есть клингонский. Короче, было решено сделать свой Duolingo из Telegram-бота, только для грузинского.

Сначала получилось что-то совсем простое: перевести / сохранить слово / устроить с новыми словами квиз. Долгое время этого функционала мне хватало, и бот я не развивал, но вот решил попробовать автоматизировать его при помощи современных LLM. Идея была такая — ночью агенты кодят. А утром я читаю чейнджлог и наслаждаюсь новыми функциями. Что получилось на деле —можно почитать под катом.

Читать далее

Streamlit для внутренних GUI: быстрый и гибкий low-code инструмент

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

В эпоху вайбкодинга удивить кого‑то базовым веб‑интерфейсом сложно. Но сделать его понятным и простым в поддержке — другой вопрос. Если вы хотите обернуть свои скрипты\автоматизацию в красивую обертку, а также сделать это быстро и просто — я нашел для вас классную библиотеку на python.

Цель статьи — поделиться классным инструментом и замотивировать вас к созданию нового. Поехали!

Читать далее

Между нами SLA: как бизнесу и поддержке договориться до первого инцидента

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

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

Читать далее

Self‑service деплой: как перестать ждать DevOps и ускорить команду

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

В статье разбираем, как self-service подход и платформенная инженерия помогают убрать этот шлюз: автоматизировать деплой, выдачу окружений, базы данных и типовые операции так, чтобы разработчики получали автономию, а админы и DevOps занимались архитектурой, надёжностью и развитием платформы.

Читать далее

Как устроена ML-платформа Michelangelo и какие базовые принципы из неё важно усвоить

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

Привет! Меня зовут Катерина Цаплина, я программный эксперт курса «MLOps для разработки и мониторинга моделей», и это вторая статья цикла о том, как компании реализуют MLOps. В предыдущей части мы разбирали, какие архитектурные подходы скрываются за MLOps: от workflow-фреймворков до managed-сервисов и внутренних платформ. 

В этой статье хочу разобрать один из самых известных платформенных кейсов — Michelangelo компании Uber. Он ценен тем, что наглядно показывает, как ML-платформа вырастает из практических задач и затем эволюционирует  вместе с изменением сценариев: от классического ML к deep learning и LLMOps.

Поговорим о том, как устроена платформа, какие сущности и слои в ней ключевые и почему этот пример остаётся полезным. Посмотрим на Michelangelo через призму российских реалий, порассуждаем о связи между зрелостью ML в компании и сложностью корпоративного ландшафта, а также о том, когда платформа действительно становится оправданной.

Читать далее

Как у клиента с восемью продуктовыми командами мы построили AI Kit

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

Привет, Хабр. Мы платформенная команда в продуктовой компании с восемью продуктовыми командами. У каждой свой микросервис, свой стек, свои нюансы. Есть общие конвенции, общий security baseline, общий подход к observability.

В начале прошлого года стало понятно: AI-инструменты разработки уже не эксперимент, а повседневная реальность. Claude Code, Cursor, Copilot, кто во что горазд. И при этом ровно ноль централизованного подхода. У одного разработчика в ~/.claude/CLAUDE.md свой набор правил, у другого .cursorrules с другими правилами. В одном репо команды лежал 400-строчный CLAUDE.md с дублирующимися общими конвенциями, в другом пустота. AI отвечал по-разному в одном и том же сервисе в зависимости от того, кто его спрашивал.

За полгода мы построили то, что внутри называем AI Kit. Это централизованный набор правил, skills, subagents и CI-инструментов для AI-ревью. В этой статье наш путь, грабли, цифры. И чего бы мы не делали, если бы начинали заново.

Если у вас несколько продуктовых команд и AI-инструменты уже есть, но дисциплины их использования нет, то статья для вас. Будет полезно тимлидам, CTO, инженерам платформенных команд и AI Champions.

Читать далее

Rust и Docker

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

Привет, Хабр! Сегодня я хочу осветить тему работы с системой контейнеризации Docker прямиком из программы на Rust. Эта статья будет полезна тем, кто хочет разрабатывать различные программы для автоматизации рутинных действий Docker.

Читать далее