Dark factory в софте: свет выключают не там, где кажется
IT-компания превращается в тёмный цех: работа входит в контур по RPC, агент делает ход, наружу выходит результат. Сложный продукт держит команда на один созвон вместо этажа. Но отчёт DORA показывает, что выигрыш приходит от того, что лежит под агентами, а не от самих агентов.
Авторы: slavb18
Dark factory — это цех, в котором не включают свет. Роботам он не нужен, а людей внутри нет. FANUC гоняет такой завод не первый десяток лет: роботов там собирают роботы, смена идёт неделями без человека на площадке.
В софте такой цех собирается прямо сейчас, и выглядит он не так, как рисуют на слайдах.
Как выглядит тёмный цех в софте
Никаких человекоподобных роботов за мониторами. Форма другая: работа входит в контур сообщением, агент делает ход, наружу выходит результат.
Снаружи приходит всё подряд — алерт из мониторинга, обращение клиента, коммит, вебхук платёжного шлюза. Отправители разные, формат один: сообщение с отправителем, темой, телом и требованием разобраться.
Внутри его принимает процесс агента, который живёт постоянно. Не запускается на каждый запрос, а держит сессию: в неё уходит кадр с задачей, обратно приходит кадр с результатом. Инструменты подключены конфигурацией, доступы выданы его учётной записью, регламенты лежат в репозитории, который он читает.
Агент, который разбирает инцидент, и агент, который разбирает обращение пользователя, отличаются промптом и набором инструментов. Труба у них общая. Значит, работу можно передавать между ними, и конвейер собирается из ходов.
Ближний край: что это уже умеет
Мы на днях проверили самый простой случай — инцидент.
Алерт о всплеске ошибок уехал вебхуком в агента. За один ход он сходил в хранилище логов, сходил в кластер за состоянием подов, сопоставил одно с другим и выдал первопричину: в шлюзе нет слушателя на 443, приложение бьётся в собственный HTTPS-домен и получает ECONNRESET. Под при этом живой, три дня без рестартов, и глазами это выглядит как «приложение сломалось».
Сорок минут работы инженера. Один ход агента. Разбор целиком — с кодом релея и командами.
Инцидент здесь — частный случай. Тем же способом заезжает фидбэк пользователя, отчёт о падении сборки, запрос на выкатку стенда.
Арифметика, которая от этого ломается
SaaS-продукт держал этаж. Сложный финтех — этаж плюс дежурная смена, плюс отдельные люди на регламентную отчётность.
Значительная часть этой численности уходила на передачу состояния между головами. Кто-то смотрит в логи и пересказывает в тикет. Кто-то читает тикет и идёт в кластер. Кто-то собирает из этого отчёт