Конвейер тестирования Docker/Kafka с запуском по данным

Задача

Существующее сложное многоконтейнерное приложение обменивалось данными через Apache Kafka, но не имело автоматического способа подавать на него реалистичный трафик, сохранять результаты и запускать на них тесты. Сбор, хранение и запуск тестов выполнялись отдельными ручными шагами.

Решение

В существующее приложение Docker Compose добавили контейнер сбора данных и запуска тестов и контейнер PostgreSQL. Для захвата трафика разработали Telnet-клиенты; коллектор разбирал входящие данные, отправлял их в PostgreSQL через Apache Kafka и запускал набор тестов, когда данных накапливалось достаточно. Параллельно с конвейером разрабатывался и поддерживался клиент REST API по OpenAPI/Swagger на протяжении всей разработки продукта.

Результат

Сбор, хранение и запуск тестов стали одним автоматизированным потоком: тесты идут по свежим реалистичным данным без ручной подготовки, а результаты сохраняются в PostgreSQL для анализа.

Автор статьи: Андрей Олегович