Files
nis2/project-tasks/p03-a-acto-state-search.md
T
2026-09-06 19:26:12 +03:00

5.4 KiB
Raw Blame History

P03-A. Acto: поиск состояний

  • Версия и дата проверки: 1.0, 05.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: Jiawei Tyler Gu и соавт. — Acto: Automatic End-to-End Testing for Operation Correctness of Cloud System Management. SOSP 2023.
  • Кратко о статье: Операторы Kubernetes должны многократно приводить управляемую систему к объявленному состоянию, поэтому отдельные тесты обработчиков не покрывают поведение длинных последовательностей операций. Acto представляет операции как переходы состояния, систематически строит их последовательности и проверяет фактическое состояние системы на соответствие требуемому. В проекте основной акцент сделан на стратегии поиска состояний и её преимуществе перед случайной генерацией.
  • Почему результат актуален: Acto продолжает развиваться и применён уже к одиннадцати операторам; работа NSDI 2026 о надёжности операторов подтверждает, что ошибки во взаимодействии оператора с управляемой системой остаются существенным классом отказов.
  • Артефакты и данные: xlab-uiuc/acto под Apache-2.0, с локальными режимами Kind, Minikube и K3d, воспроизводимыми ошибками и конфигурациями реальных операторов. При проверке артефакта подтверждены его доступность, работоспособность и воспроизведение результатов. Зафиксированные ревизии: xlab-uiuc/acto@a0d0fb7bb840 (Apache-2.0).

Обязательный результат

  • Проверяемый вопрос или утверждение: генерация последовательностей переходов и сквозная проверка состояния позволяют находить ошибки согласования, которые пропускают отдельные тесты обработчиков и случайная генерация операций.
  • Технический результат: Развернуть небольшой оператор и управляемую систему в Kind, подключить генератор переходов Acto и воспроизводимый случайный baseline. Добавить сбор покрытия переходов и автоматическую проверку достижения желаемого состояния.
  • Эксперимент: На одном операторе выполнить не менее трёх серий систематической и случайной генерации с одинаковым бюджетом. Сравнить покрытие переходов, число уникальных расхождений и время до первого сбоя; для найденного сбоя подтвердить воспроизводимость отдельным тестом.
  • Границы выводов: результат показывает покрытие и обнаружение сбоев для выбранного оператора, модели переходов и бюджета генерации; он не доказывает полноту поиска или корректность оператора во всех конфигурациях.
  • Ресурсный профиль: расширенно локально, Linux, Docker, Kind, CPU, желательно 16 ГБ памяти. Если выбранный оператор слишком тяжёл, использовать демонстрационную конфигурацию Cassandra либо собственный минимальный оператор с намеренно внесёнными ошибками согласования.

Содержательные направления

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

Возможное продолжение

Перенести Acto на новый оператор, добавить новый тип перехода или вид проверки, исследовать раннюю остановку либо автоматическое уменьшение ошибочной последовательности.