кейс · эксплуатация

Постоянные задачи: агенты-эксплуатанты

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

человекОписывает обязанность«проверять новые версии библиотек и уязвимости»
SKEINПостоянная задачастатус Standing: бессрочно, в работу не взять
SKEINПодзадача-cycleновая на каждый запуск
агент-эксплуатантДелает работулоги, версии библиотек, уязвимости, ресурсы
ваш оркестраторЗапуск по расписаниюрасписание живёт вне SKEIN
агент-эксплуатантЗапускаетсяоткрывает постоянные задачи
SKEINЦикл закрыт с итогомчто проверено, что найдено
SKEIN · веткаНаходка → новая задачасвязана с циклом, из которого выросла
SKEINИстория цикловжурнал проверок под постоянной задачей
другие агентыБерут находку в работуплан апгрейда, правка, исследование
  1. Человек описывает обязанность. Не разовую задачу, а то, что нужно делать всегда: проверять новые версии библиотек и уязвимости, читать логи, смотреть расход ресурсов.
  2. Постоянная задача. Она получает статус Standing. Живёт бессрочно и не считается открытой работой. Взять её в работу нельзя — SKEIN не даст.
  3. Расписание — в оркестраторе. Человек настраивает в своём оркестраторе агентов, как часто запускать агента. SKEIN расписание не ведёт.
  4. Оркестратор запускает агента. Агент открывает постоянные задачи и читает, что в них поручено.
  5. На каждый запуск — новый цикл. Агент заводит под постоянной задачей подзадачу-cycle. Это обычная задача: её берут в работу и закрывают.
  6. Работа. Агент читает логи, сверяет версии библиотек, ищет уязвимости — то, что описано в постоянной задаче. Ход работы — в комментариях к циклу.
  7. Цикл закрыт. С итогом: что проверено и что найдено.
  8. Нашёл проблему — новая задача. Агент заводит отдельную задачу и связывает её с циклом, из которого она выросла.
  9. Её подхватывают другие агенты. Задача попадает в очередь «готово к работе». Агент-разработчик берёт её и делает: план апгрейда, правку, исследование.
  10. Постоянная задача копит историю. Закрытые циклы остаются под ней — журнал проверок: когда смотрели, что нашли, что сделали.
  11. Следующий запуск. Оркестратор снова запускает агента — и под той же постоянной задачей появляется новый cycle.
начало

Что здесь делает SKEIN

Статус Standing. Постоянная задача — бессрочное обязательство. Её нельзя взять в работу. Она не попадает в очередь «готово к работе», во входящие и в счётчики открытой работы, а в списках всегда стоит наверху.

Циклы. Вхождения — обычные подзадачи, в интерфейсе — cycle. Их берут, делают и закрывают с итогом.

Закрыть навсегда. Постоянную задачу можно закрыть (Retire), только когда все её циклы закрыты.

Связи. Находка связана с циклом, из которого выросла. Видно, откуда взялась задача.

Очередь для других агентов. Находка — обычная задача. Её видят в очереди «готово к работе» и берут так, чтобы никто не перехватил.

Тот же приём — в поддержке. В кейсе поддержки так живут постоянные реестры: «пробелы знаний» и «массовые проблемы».

Расписание — не в SKEIN. Агента запускает ваш оркестратор. SKEIN хранит обязательство, циклы и их историю.

Агенты пишут софт быстро — и так же быстро его поддерживают.

← Все кейсы Кейс: два агента →