Обновить
309.24

DevOps *

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

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

Надоел Celery? Не нужен K8s? Как мы сделали легковесный оркестратор на Python

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

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

Если вы когда-нибудь сталкивались с задачей запуска сотен изолированных фоновых процессов на одном сервере (будь то парсеры для клиентов, торговые боты или обработчики данных в SaaS), то вы знаете, как быстро всё усложняется.

Можно, конечно, вручную поднимать Docker-контейнеры и писать костыли для мониторинга. Можно развернуть полноценный Kubernetes, но для одной ноды это часто — оверкилл, требующий отдельного администратора. Можно использовать Celery, но он управляет задачами, а не контейнерами, и изоляция на уровне процессов — это не тоже самое, что изоляция на уровне контейнеров.

Мы столкнулись с этой болью и написали инструмент, который закрывает этот пробел. Встречайте: RedTailFox — легковесный оркестратор на Python, который управляет Docker-контейнерами с вашими воркерами на одном сервере. Он сам решает, когда поднять новый контейнер, сам следит за здоровьем слотов и сам себя чинит.

Читать далее

Новости

Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL

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

09:12 — db-replica-02 connection timeout

HTTP 5xx = 0.2%
HAProxy зелёный
p50 = 38-42ms

Replica в другой стойке недоступна
Отказоустойчивость потеряна
Инцидент не объявлен

Читать разбор

Агентская амнезия: как я решил эту проблему на Go

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

Недавно наткнулся на статью про Echovault на Хабре — инструмент для памяти AI-агентов, написанный на Python. Автор описывал ровно ту же боль, что и я испытывал месяцами. Идея хорошая, реализация — рабочая. Но Python. Я ничего не имею против языка, просто не мой выбор для инструментов, которыми пользуюсь каждый день. Люблю скомпилированные бинарники: кинул файл — и работает, без virtualenv, без pip, без «а какая у тебя версия питона». Поэтому я взял идею и переписал её с нуля на Go. Получился Pantry.

Расскажу, зачем это вообще нужно и что внутри.

Читать далее

Как мы проводим IT-аудит: живой кейс, инженерный подход и надежность без фанатизма

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

Привет, меня зовут Станислав Пьянов, я DevOps-техлид в KTS.

За годы работы мы сформировали свою практику для аудита инфраструктуры. Мы не придумали для нее громкого цепляющего названия, но это не мешает ей приносить пользу. Она стабильно помогает нам выявлять и устранять недостатки в «подкапотном пространстве» совершенно разных бизнесов.

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

Читать далее

Гайд-лонгрид: Как правильно читать User-Agent

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

Всем привет! 👋

Запускаю серию постов по техничке антифрода — для подписчиков и всех, кто копает в сторону фрода

Разберём ежедневку: User-Agent, куки, хедеры, отпечатки устройств, IP и другие “невидимые” детали, которые отличают честных юзеров от мошенников

Начнём с базового, но ключевого — User-Agent. Покажу, что это и как его едят

Что такое User-Agent и зачем он нужен

User-Agent (UA) — это текстовая строка, которую браузер автоматически отправляет серверу при каждом запросе. Это как "визитка" браузера: сервер смотрит на неё и понимает, с какого устройства и браузера зашёл пользователь

Зачем это антифроду: — Мошенники часто подделывают UA, чтобы притвориться обычным пользователем с мобилки, когда на самом деле сидят с ПК через эмулятор — Если UA меняется между сессиями у одного пользователя — это красный флаг — Несовместимые комбинации (например, Windows + iPhone Safari) выдают фрод

Структура User-Agent: разбираем по кусочкам

Берём реальный пример:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36

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

Часть 1: Mozilla/5.0

Это исторический префикс, который есть у всех современных браузеров — Chrome, Edge, Firefox, Safari, Opera и т.д.

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

Читать далее

Отказоустойчивый кластер виртуализации KVM на Astra Linux

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

Импортозамещение, уход вендоров, требования регуляторов, безопасность — причин переезжать с продуктов Microsoft и VMware сегодня хватает.
Но важно, чтобы это было осознанное инженерное решение, а не реакция по принципу «лишь бы уйти». Тем более что далеко не всегда есть смысл переплачивать за продукт, который для вашей инфраструктуры избыточен.

В статье разбираю, как собрать отказоустойчивую виртуализацию на базе Astra Linux:
DRBD + GFS2 + Pacemaker против Ceph.

Отказоустойчивый кластер KVM на Астре

6 инструментов для параллельного Claude Code: тестирую всё, чтобы вам не пришлось

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

Conductor, Crystal, Auto-Claude, Claude Squad, CCManager и Cursor 2.0 — честное сравнение с плюсами, минусами и рекомендациями по сценариям.

Читать далее

Книга: «Terraform: лучшие практики. Подготовка, запуск и масштабирование облачной архитектуры на реальных примерах»

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

Привет, Хаброжители! С появлением Terraform, замечательного инструмента управления инфраструктурой как кодом (IaC), язык конфигурирования HashiCorp (HCL) изменил подход к определению и формированию инфраструктуры центров обработки данных.

Обновленное издание включает практические примеры развертывания инфраструктуры Azure, AWS и GCP с помощью Terraform. Углубитесь в изучение ручных и автоматизированных подходов к тестированию конфигураций Terraform и познакомьтесь с приемами создания сбалансированной, эффективной и универсальной инфраструктуры и управления ею с помощью модулей Terraform. Вы узнаете, как автоматизировать развертывание конфигурации Terraform с помощью непрерывной интеграции и непрерывной поставки (CI/CD).

Читать далее

Многогранный мониторинг Angie — продолжение истории

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

Многогранный мониторинг Angie - продолжение истории

 Мы привыкли, что веб-сервер - это чёрный ящик, который просто гонит трафик. Стандартные метрики Angie представлены широким спектром. Но что, если нам надо еще больше? Что если, прямо на уровне сервера, без изменения кода приложения, можно в реальном времени видеть, что именно клиенты добавляют в корзину, строить гистограммы времени ответа бэкендов, или подсчитать буквально что угодно и делать это с производительностью атомарных операций в памяти? Сегодня разбираем мощнейший модуль metric в Angie.

Читать далее

OVN в OpenStack: реализация Metadata API

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

Привет, Хабр! На связи Кирилл Савин, я — архитектор SDN в Рег.облаке. Мы уже подробно разбирали, как устроен OVN в связке с OpenStack, — в статье «OVN под капотом: как построить сеть в OpenStack». А затем показали, как трассировать пакеты в OVN и анализировать поведение трафика.

В этом материале продолжаем тему интеграции OVN с OpenStack и разбираем более узкий, но важный сценарий — работу Metadata API при использовании OVN в качестве backend для Neutron. Речь пойдет уже не столько о маршрутизации пакетов, сколько о служебной логике поверх сетевой плоскости и особенностях ее реализации в модели OVN.

Читать далее

Полгода на включение: как мы построили онбординг в команде не по инструкции. Часть 2: геймификация, бадди и адаптация

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

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

В структуре онбординга, которую мы внедрили, получилось три ключевых части:

Геймификация — всё, что происходит до выхода, плюс квесты первых дней и встречи.

План онбординга — подробный маршрут, направляющий новичка через обучение, знакомства и задачи.

Self-Assessment — регулярная точка саморефлексии, через которую новичок понимает, куда движется и что с ним происходит.

Как это было?

Читать далее

Я заменил Google на 50 строк Python. Через месяц я забыл, как пишется tar -xzf

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

Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.

Я не идиот. Точнее, может и идиот, но не поэтому. Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память. Там дефис или нет? xzf или xfz? Или zxf? Вроде порядок не важен? Или важен?..

Короче. Месяц назад я написал скрипт, который это решил. А потом скрипт решил больше, чем я хотел.

Читать далее

Я пришёл в программирование из логистики. И в итоге начал строить систему по проверке кода

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

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

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

Нюанс какой: я зашёл «с места в карьер», как будто все уже знают, кто я, откуда и почему я так пишу и так думаю. А по факту — нет, конечно. Поэтому этот пост — «паспорт»: кто я, откуда выросла идея, почему я вообще полез в код, почему у меня агенты, почему «завод», и что я могу обсуждать с инженерами предметно (а что — не могу и не буду, потому что там секреты/безопасность/коммерческое ядро).

Сразу честно: я не классический инженер. Я могу где‑то не знать «ритуальную формулировку» термина или перепутать модное слово. Но я фанат причинности: если система говорит «работает» — она должна уметь это доказать. Всё остальное — разговоры.

Читать далее

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

Архитектура Laravel для продакшена: Traefik + FrankenPHP

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

Laravel может быть быстрым, но классическая модель PHP с полным bootstrap на каждый запрос быстро упирается в потолок. В статье разбирается практическая схема продакшен-развёртывания Laravel Octane на FrankenPHP с Docker Compose и Traefik: разделение web и воркеров, multi-stage сборка, healthcheck’и и автоматизированный деплой. Это цельный пример того, как может выглядеть современная Laravel-инфраструктура вне локальной среды.

Читать далее

Интеграция iiko и WFM: автоматизация расписания под почасовые продажи

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

В этой статье разберем, как данные iiko становятся входом для WFM TARGControl: как забирать из POS почасовую выручку и количество чеков, превращать их во временные ряды, использовать для прогноза нагрузки и дальше — для планирования смен и аналитики.

Прежде чем перейти к API и эндпоинтам, ответим на вопрос «зачем вообще тащить POS в планирование». В HoReCa расписание проверяется не отчетом в конце недели, а кассой и залом в ближайшие 1–2 часа: спрос распределен неравномерно по времени, каналам (зал/доставка/навынос) и дням недели. Поэтому устойчивое планирование начинается не с «графика в таблице», а с измеримых драйверов спроса, которые можно регулярно обновлять автоматически.

Читать далее

Как мы делали «Cursor для неразработчиков», а сделали полноценного ИИ-агента «с руками»

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

Меня зовут Сергей Игнатенко. В прошлой жизни — девлид, 20+ лет в разработке, от C# до Kafka. Сейчас — фаундер. Эта статья про то, как первое привело ко второму.

Последний год я активно работал в Cursor — IDE с ИИ-ассистентом. И в какой-то момент меня начало подбешивать.

Cursor переименовал режим «Code» в «Agent». Звучит красиво, но по факту — это тот же автокомплит на стероидах. Никакой автономности. Никакого планирования. Ты по-прежнему сидишь в IDE, по-прежнему руками переключаешь файлы, по-прежнему сам решаешь что делать дальше. Какой же это «агент»?

Тогда я решил попробовать Claude Code — инструмент от Anthropic, о котором в тот момент восторженно писал весь Twitter. Установил, столкнулся с блокировками (я в России, привыкли), пошёл к Claude с просьбой помочь обойти защиту. Claude сказал категорическое «нет» и добавил фразу, которая засела в голове:

Читать далее

Настройка Git для одновременного fetch/push в несколько remotes. Синхронизация одной командой

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

Прим: Дополняет мою статью "Скрипт полной миграции из GitLab на свой сервер".

После успешной миграции

А что делать со старым репозиторием?
Было бы логично использовать GitLab и другие хостинги в качестве вторичных (запасных).

Но как это делать? И еще не вручную?
Для синхронизации с remotes одновременно на свой Gogs и на все GitLab, GitHub, Bitbucket, ... remotes, об этом и других "хаках" ниже:

Читать далее

Техрадар на максималках: от визуализации техдолга к автоматическому управлению миграциями

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

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

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

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

Подробности под катом

Как управлять горизонтальным масштабированием в больших проектах с помощью собственного on-premise-автоскейлера

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

Как масштабироваться, если новых нод не подвезут? Представьте, что вы управляете огромным высоконагруженным проектом, но находитесь не в облаке, а в on-premise. Никаких «запросить ещё одну ноду», никаких облачных щедрот — только то, что стоит в вашем серверном зале, и бюджет, который уже освоен. В таких условиях масштабироваться — всё равно что играть в «Тетрис» на харде: ресурсы ограничены, фигуры падают быстро и места всё меньше.

В этой статье мы — Илья Семёнов @ilc6 и Алексей Игнатов @AViIgnatov из Сбера, — расскажем, как мы построили собственный автоскейлер, который не запрашивает новые ресурсы, а перераспределяет существующие. Обойдёмся без магии облака, только логика, метрики и симуляция — и да, на DevOps Conf это вызвало оживлённые дискуссии.

Наша экспертиза — от разработки до архитектуры, в том числе высоконагруженных бэкендов, интеграционных, архитектурных и платформенных решений. Эта статья написана по мотивам доклада на DevOps Conf. Расскажем про наш собственный автоскейлер, который применяем к on-premise с инсталляцией, и какие решения для этого придумали.

Итак, поехали!

Читать далее

Чем занимается DevSecOps? Обзор инструментов

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

В материале мы разберемся, чем на практике занимается DevSecOps, какие инструменты используются в повседневной работе. Поговорим об SSDLC и откуда в этой аббревиатуре появилось слово «Security», а также в какой момент проекту стоит задуматься о внедрении безопасного жизненного цикла разработки. Отдельно остановимся на том, как внедрять SSDLC без вреда для проекта и обсудим чек-лист оценки зрелости. Погрузимся в облако тегов DevSecOps, разберем ключевые практики и инструменты, а также поговорим о том, что делать после того, как все эти процессы уже внедрены.

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