Как мы непрерывно тестируем
производительность 30 проектов

Денис Трифонов, 2ГИС

Как мы непрерывно тестируем
производительность 30 проектов

Денис Трифонов

Специалист по тестированию
производительности, 2ГИС

Обо мне

Занимаюсь тестированием производительности бекендов внешних продуктов 2ГИС.

Первые шаги

© George Shuklin

Подключаем новые проекты

Автоматизируем


Cloud :  Apps
CI :  Runners  Tests
		

Мониторим


Cloud :  Apps
CI :  Runners  Tests
Metrics :  Exporters  Dashboards
		

Хотим фичи


Cloud :  Apps
CI :  Analitycs  Runners  Tests
Metrics :  Exporters  Dashboards
		

Подключаем ещё проекты

И вот их перевалило за 20

© www.trainmania.com.ua

Плюсы

Минусы

Узкие места


Cloud :  Apps
CI :  Analitycs  Runners  Tests
Metrics :  Exporters  Dashboards
		

Ещё людей?

Всё переделываем?

© www.pskovrail.ru

План перестройки

Кодим


Cloud :  Apps
CI :  Analitycs  Runners  Tests
Metrics :  Exporters  Dashboards
		

Нюансы и факты

Автоматизируем


Cloud :  Apps
VCS, CI :  Analitycs  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
		

Нюансы

Погружаем в тестирование

Факты

Мониторим


Cloud :  Apps
VCS, CI :  Analitycs  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
		

Нюансы

Смотрим в аналитику


Cloud :  Apps
VCS, CI :  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
Analitycs
		

Факты

Учимся в Kubernetes

Стучимся в процессы

Что получилось

Инфраструктура


Cloud :  Apps
VCS, CI :  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
Analytics

Legend: Admins  Perf  Teams
		

Хотим стрелять во внешний сервис?


Cloud :  Apps
VCS, CI :  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
Analytics

Legend: Common  Teams
		

Хотим свои нагрузочные мощности?


Cloud :  Apps
VCS, CI :  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
Analytics

Legend: Common  Teams
		

Хотим добавить аналитику?


Cloud :  Apps
VCS, CI :  Runners  Tools  Tests
Metrics :  Exporters  Dashboards
Analytics

Legend: Common  Teams
		

Новый проект: тест


phantom:
	address: example.org
	load_profile:
		load_type: rps
		schedule: line(1, 100, 30s) const(100, 120s)
	uris:
		- "/"
		

Новый проект: CI


test:
	image: docker-hub/perf/tools
	script:
		- yandex-tank -c load.yaml
	after_script:
		- cli upload
	tags: [ perf ]
		

14 LOC

2 года

1 человек

© blog.allo.ua

Простые советы

Денис Трифонов

dentrifonov.github.io

Спасибо!