Link Search Menu Expand Document
English

Stroppy - это фреймворк для тестирования различных баз данных. Он позволяет развернуть кластер в облаке, запустить нагрузочные тесты и имитировать, например, сетевую недоступность одной из нод в кластере.

Чтобы усложнить задачу для СУБД, Stroppy может попытаться сломать кластер БД, ведь в реальном мире отказы случаются гораздо чаще, чем нам хочется. А для горизонтально масштабируемых БД это случается еще чаще, так как большее количество физических узлов дает больше точек отказа.

На данный момент мы реализовали поддержку FoundationDB, MongoDB, CockroachDB и PostgreSQL (нужно же с чем-то сравнивать всё остальное).
Кроме того, для того, чтобы было удобнее анализировать результаты тестов, stroppy интегрирован с Grafana и после каждого прогона в автоматическом режиме собирает архив с графиками мониторинга, масштабированными по времени прогона. Также для FoundationDB и MongoDB поддерживается сбор внутренней статистики с заданной периодичностью - для FoundationDB собираются данные команды консольной команды status json, для MongoDB - данные команды db.serverStatus().

Основные возможности

  • Развертывание кластера виртуальных машин в выбранном облаке через terraform. Поддерживается Yandex.Cloud и Oracle.Cloud
  • Развертывание kubernetes кластера в развернутом кластере виртуальных машин
  • Развертывание выбранной СУБД в этом кластере
  • Сбор статистики из Grafana метрик k8s кластера и системных метрик виртуальных машин (CPU, RAM, storage и т.д.)
  • Управление параметрами тестов и самого развертывания - от кол-ва VM до подаваемой нагрузки и управляемых неполадок
  • Запуск тестов по команде из консоли
  • Логирование хода теста - текущее и итоговое latency и RPS
  • Удаление кластера виртуальных машин
  • Развертывание нескольких кластеров с одной локальной машины с изолированным мониторингом и консолью запуска

Stroppy GitHub