Maelstrom

Бесплатно
Открытый исходный код
Linux

Сайт: maelstrom-software.com

Maelstrom — система распределённого запуска тестов и выполнения задач, разработанная для упаковки отдельных тестов в лёгкие изолированные контейнеры и их параллельного прогонa как локально, так и в вычислительных кластерах. В основе подхода лежит разделение рабочей нагрузки на независимые единицы, которые могут быть эффективно распределены по доступным вычислительным ресурсам, что уменьшает время выполнения полного набора тестов и повышает устойчивость процессов за счёт изоляции ошибок.

Проект возник как ответ на потребность в масштабируемом инструменте для интеграционного и распределённого тестирования в больших разработческих организациях и непрерывных конвейерах поставки ПО. Традиционно название Maelstrom используется для обозначения нескольких одноимённых проектов и исследовательских прототипов с похожей архитектурой; если конкретные реализации отличаются по функциональности или лицензии, об этом обычно указывается в документации соответствующего проекта. В случае отсутствия общепризнанного единого стандарта под именем Maelstrom, далее описывается типичный набор возможностей и сценариев использования для систем такого класса.

  • Упаковка в лёгкие контейнеры: каждый тест или задача изолируется в отдельном контейнере для воспроизводимости окружения и предотвращения взаимного влияния.
  • Распределённое планирование: механизмы очередей и планировщиков распределяют задания по локальным и удалённым узлам с учётом приоритетов и доступных ресурсов.
  • Параллельное выполнение: поддержка массового параллелизма позволяет значительно сокращать общее время прогонов за счёт одновременного запуска множества задач.
  • Изоляция и безопасность: контейнеризация снижает риск побочных эффектов между задачами и упрощает управление зависимостями.
  • Масштабирование в кластере: интеграция с оркестраторами и системами управления ресурсами для горизонтального масштабирования рабочих нагрузок.
  • Отслеживание и логирование: централизованный сбор логов и метрик для диагностики ошибок и анализа производительности прогонов.
  • Управление артефактами: сохранение результатов тестов, отчётов и артефактов исполнения для последующего анализа и повторного использования.
  • Гибкость конфигурации: декларативные описания заданий и параметров окружения для воспроизводимых прогонов в разных средах.
  • Интеграция с CI/CD: возможность встроиться в конвейеры непрерывной интеграции и доставки для автоматизированного тестирования при изменениях кода.
  • Механизмы повторного запуска и ретрая: автоматический и ручной перезапуск упавших задач с учётом условий и ограничений.
Подробнее