tgoop.com/rybakalexey/177
Last Update:
Кейс использования K6 в Picodata
Внутри эко-системы Grafana Labs есть инструмент для нагрузочного тестирования k6. Он немного странный (прожорливость, автоматизация на ява-скрипте, паралеллизация не по тредам/соединениям, а по параллельным пользовательским сессиям whatever it means). Но он становится всё более популярным, и выглядит мощно в плане кастомизаций. Кейс про то, как Picodata прикрутили k6 к тестированию своей СУБД.
Лонг-рид: https://habr.com/ru/companies/arenadata/articles/864974/
Ниже - краткое саммари (кстати, как вам промт?)
Кому будет интересна статья
* Гошникам
* Разработчикам распределённых систем и баз данных.
* Инженерам по нагрузочному тестированию.
* Специалистам, занимающимся построением инфраструктуры тестирования производительности.
Статья посвящена подходу компании Picodata к нагрузочному тестированию распределённых баз данных (NewSQL СУБД). Рассматриваются проблемы, с которыми сталкиваются разработчики таких систем, и выбор инструментов для создания практики тестирования производительности. Основное внимание уделяется созданию собственного решения — системы Picostress, основанной на инструментарии k6.
Используемые продукты и решения
* Picostress - разработанный инструмент для нагрузочного тестирования.
* Go - язык программирования, на котором написан весь код Picostress, а также k6
* k6 - утилита для создания нагрузочных тестов, поддерживающая выполнение скриптов на JavaScript.
* xk6-модуль: расширение для k6, реализованное для взаимодействия с Picodata через её нативные протоколы (iproto и pgproto).
* Cobra - Go-библиотека для создания CLI-приложений, использованная для создания обёртки вокруг k6.
Основные выводы
* Среди множества утилит для нагрузочного тестирования именно k6 оказался наиболее подходящим благодаря гибкости, расширяемости и поддержке пользовательских сценариев.
* Наиболее интересные особенности k6: интеграции в CI/CD процессы, создание сложных сценариев тестирования на JavaScript, поддержка постоянной нагрузки (constant throughput load) с учётом проблемы coordinated omission.
* Разработка собственного модуля: В Picodata был создан xk6-модуль для взаимодействия с нативными протоколами системы, что позволило реализовать нагрузочное тестирование, учитывающее специфику распределённых систем.
* Автоматизация и адаптивность: Picostress, основанный на k6, стал не только инструментом тестирования, но и ключевым элементом мониторинга и оптимизации производительности для каждого релиза продукта.
BY System Design & Highload (Alexey Rybak)
Share with your friend now:
tgoop.com/rybakalexey/177