Marc Brooker, инженер Amazon Web Services, который занимается безопасностью и политикой в области агентного ИИ, использует анимации, чтобы помочь инженерам выработать интуитивное понимание того, как работают и выходят из строя распределённые системы. Он отмечает, что анимации могут прояснить поведение, которое трудно уловить только по тексту.
Один из примеров показывает, что кластер Raft может потерять записи, если хотя бы один член кластера ошибочно сообщит, что fsync() завершён. Созданный ранее Брукером инструмент Stability Sim наглядно показывал метастабильные сбои в абстрактном виде, однако инженеры часто сомневаются, что такое поведение возникает в системах, проверенных в промышленной эксплуатации.
Чтобы развеять эти сомнения, он приводит трассировки реальных систем. В Postgres 16, работающем в Micro VM, всплеск нагрузки заполняет память запросами, вытесняет данные из кэша страниц на диск, и база данных, которая раньше обрабатывала 20 запросов в секунду, уже не справляется. В etcd всплеск нагрузки на запись делает перегруженных участников недоступными, что вызывает повторные отправки на уровне приложения и поддерживает перегрузку.
Ещё один пример из etcd демонстрирует петлю обратной связи сборщика мусора: рост чтений с 500 до 1000 в секунду увеличивает время GC и уменьшает доступный процессор, и система не восстанавливается без вмешательства. Брукер предполагает, что среды выполнения без GC могут вести себя похоже из-за накладных расходов аллокатора, но пока не воспроизвёл это. Все анимации созданы с помощью Kiro и Kiro Crew на основе трассировок, полученных в реальной тестовой среде.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing