Files
nis2/project-tasks/p03-a-acto-state-search.md

8.2 KiB
Raw Permalink Blame History

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

  • Версия и дата проверки: 1.1, 07.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).
  • Что уже предоставляет артефакт: Acto уже генерирует переходы, проверяет достижение состояния, разворачивает операторы и воспроизводит известные ошибки; есть конфигурации и средства сбора статистики. Эти компоненты разрешено использовать, а готовую демонстрационную ошибку — только для проверки стенда. Проверенные исходные материалы: генераторы, сбор статистики.

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

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

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

  • новая конфигурация оператора и локальный стенд.
  • самостоятельный случайный baseline и сопоставление стратегий.
  • собственный расчёт покрытия, проверка состояния и анализ сбоев.

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

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

История уточнений

Дата Версия Основание Изменение обязательного результата
07.09.2026 1.1 Статический просмотр закреплённого артефакта: готовые сценарии частично покрывают задание. Закреплены новая конфигурация, собственные случайный baseline и расчёт покрытия; демонстрационная ошибка служит проверке стенда.