Введение в performance management
TRANSCRIPT
Software quality assurance days19 Международная конференция по вопросам качества ПОsqadays.com
Санкт-Петербург. 20–21 мая 2016
Андрей ДмитриевСанкт-Петербург
Введение в Performance Management
Андрей Дмитриев
• разработчик, тимлид, групплид
• лидер JUG.ru и CodeFreeze.ru
Введение в Performance Management
Кто я?
Андрей Дмитриев
• разработчик, тимлид, групплид
• лидер JUG.ru и CodeFreeze.ru
Введение в Performance Management
Кто я?
• Научить вас проводить performance-тестирование
Введение в Performance Management
Цель
• Научить вас проводить performance-тестирование
Введение в Performance Management
Цель
• Научить вас проводить performance-тестирование
• Поделиться своим опытом
Введение в Performance Management
Цель
• Научить вас проводить performance-тестирование
• Поделиться своим опытом
Введение в Performance Management
Цель
• Научить вас проводить performance-тестирование
• Поделиться своим опытом
• Научить вас задавать правильные вопросы при подготовке к тестированию у заказчика
Введение в Performance Management
Цель
• Научить вас проводить performance-тестирование
• Поделиться своим опытом
• Научить вас задавать правильные вопросы при подготовке к тестированию у заказчика
Введение в Performance Management
Цель
• Чего не будет • Как проводить performance-замеры
• Как управлять командой
• Как общаться с заказчиком
Введение в Performance Management
План
• Чего не будет • Как проводить performance-замеры
• Как управлять командой
• Как общаться с заказчиком
• Что будет • Какие deliverables выдавать
• Какие требовать ресурсы
• Как готовиться к тестированию у заказчика
• Как готовить отчетВведение в Performance Management
План
• Хорошее тестовое покрытие успешно “выполнилось”
Введение в Performance Management
Чего хочет заказчик?
• Хорошее тестовое покрытие успешно “выполнилось”
• Быть уверенным в том, что решение выдержит требуемую нагрузку
Введение в Performance Management
Чего хочет заказчик?
Введение в Performance Management
Deliverables
• В систему будет поступать в среднем 3000 запросов в сутки
• Длительность теста - 1 час
• Сколько запросов должно быть выполнено?
• А: 375
• B: 125
• C: 3000
• D: Ответить невозможно
Введение в Performance Management
Простой пример #1
• В систему будет поступать в среднем 3000 запросов в сутки
• Длительность теста - 1 час
• Сколько запросов должно быть выполнено?
• А: 375
• B: 125
• C: 3000
• D: Ответить невозможно
Введение в Performance Management
Простой пример #1
•КАРТИНКА с характером нагрузки
• NFR документ
• Strategy документ
• Проектный план
• Финальный отчет
Введение в Performance Management
Ладно, что за Deliverables?
• Кто готовит этот документ?
• Что содержит этот документ?
Введение в Performance Management
NFR документ
• Снимаемые метрики: oDB server host CPU\memory load oDB instance Average Active Session oDB server host I\O load o AWR report для каждого сервера o App server host CPU\memory load o App server threads usage для каждой ноды (active, waiting,
available, total) o App server JDBC pool usage (number of active\idle sessions) o App server JVM GC log activity o APP server JMS queues length, etc.
Введение в Performance Management
NFR документ
• Ожидаемые нагрузки (в год, день): 1 Scenario #1 10748 4 Scenario #2 18382 7 Scenario #3 3000 10 Scenario #4 6822 13 Scenario #5 5278 16 Scenario #6 7504 19 Scenario #7 4966 Total executions: 56700
Введение в Performance Management
NFR документ
• Количество мигрированных данных:
Введение в Performance Management
NFR документ
Phases Description Data volume Dates:
P h a s e 1 preparation
Set up datasources on onsite Test environment:
1. BORIS (Oracle) 2. ONPS (Oracle) 3. Cisco ISC (Sybase) 4. ProJEN (Oracle)
14.500 Engineering Orders
XYZ
P h a s e 1 execution
Executing data migration on onsite Test environment
14.500 Engineering Orders
XYZ
P h a s e 2 preparation
Set up all datasources on onsite Test environment:
1.BORIS (Oracle) 2.eDesigner Evolve VPN (MySQL) 3.eDesigner Evolve EWAN (MySQL)
4. ONPS (Oracle)
34.500 non-Engineering Orders
XYZ
34.500 XYZ
• Объем мигрированных данных:
Введение в Performance Management
NFR документ
Legacy system S o u r c e d a t a volume
Data volume after m i g r a t i o n i n t o Company Database
Data type for both migration phases (total)
System X (Oracle) 50 Gb 50 Gb 32mil records
System X VPN (MySQL) 1 Gb 1 Gb 2 0 0 K r e c o r d s (service instances + service design)
System X E1 (MySQL) 0,1 Gb 0,1 Gb 2K records (service instances + service design)
System X1 (Oracle) 350 Gb 350 Gb 410mil records
System X2 (Sybase) 0.5 Gb 0.5 Gb * 1,5 * 2,5 = 1.5 Gb at most
17K records
System X3 (Oracle) 0.5 Gb 0.5 Gb * 1,5 * 2,5 = 1.5 Gb at most
1K records
TOTAL SIZE 402 Gb 404 Gb 442mil records
• Бизнес-кейсы
Введение в Performance Management
NFR документ
# Area
Phase Description Report Criteria Tx/h (avg)
Response time
1
FUF
Phase 2
Order performance with respect to the order target date
M o n t h l y o r Q u a r t e r l y performance
16 1min
2
FUF
Phase 2
Order performance with respect to the Estimated Delivery Date -Commitment Date
M o n t h l y o r Q u a r t e r l y performance
16 3 0 m in
3
FUF
Phase 2
Order Volumes – Created M o n t h l y o r Q u a r t e r l y performance
16 5min
4
FUF
Phase 2
Order Volumes – Delivered M o n t h l y o r Q u a r t e r l y performance
16 2min
5RI
Phase 2 Network Element report
16 5min
• UI tests
Введение в Performance Management
NFR документ
# Home page User group Users i n group
Openin g s p e r hour
1 Design and Provisioning Home Page
Design & Provisioning1258
1258
2 Order Creation Home Page
Order Creation 566566
3 Project Management Home Page
Project Management 66
4 Team Leader View Team Leader 100-700
700
• Любая страница открывается за 3 сек
Введение в Performance Management
Примеры плохих NFR
• Любая страница открывается за 3 сек
• А как быть с отчетами, виджетами, поисками???
Введение в Performance Management
Примеры плохих NFR
• Любая страница открывается за 3 сек
• А как быть с отчетами, виджетами, поисками???
• Любой отчет строится максимум за 5 минут
Введение в Performance Management
Примеры плохих NFR
• Любая страница открывается за 3 сек
• А как быть с отчетами, виджетами, поисками???
• Любой отчет строится максимум за 5 минут
• А если отчет не выдает никаких данных???
Введение в Performance Management
Примеры плохих NFR
• Нужно ли презентовать стратегию заказчику, а не только выдавать?
Введение в Performance Management
Strategy документ
• Диаграмма компонентов
Введение в Performance Management
Strategy документ
• Алгоритм маппинга результатов
Введение в Performance Management
Strategy документ
• Тесты
• Длительности тестов
• Ожидания от замеров
Введение в Performance Management
Strategy документ
1. Оборудование, сеть и т.д. доступно
2. Заглушки развернуты 3. Сегменты сети одинаковые 4. Порты открыты, права выданы (weblogic, oracle, etc.) 5. Генератор нагрузки развернут с нужным ПО 6. Нужная версия продукта установлена 7. Доступность окружения (за N дней до и M дней после) 8. Поддержка DBA на протяжении замеров 9. SLA на наши запросы не более чем 1 день
Введение в Performance Management
Strategy документ: ваши требования*
• Классический проектный план
• Пересечение с другими работами на серверах
Введение в Performance Management
Проектный план
• Таблица со статусами запусков теста
Введение в Performance Management
Простой пример #2
1-May 8-May 15-MayTest #1 4h/3mil obj/
Warn12h/6mil obj/
Error24h/8mil obj/
OkTest #2 1h/3000obj/
Warn1.5h/4000obj/
Warn0.5h/4000obj/
Ok
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector Нагружающая система -
injector
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector
Stub-система
Нагружающая система -
injector
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector
Stub-системаStub-система
Нагружающая система -
injector
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector
Stub-системаStub-система
Нагружающая система -
injector
Бридж в систему заказчика
Введение в Performance Management
Какие ресурсы потребуются?
Нагружаемая система -
APP
Нагружаемая система - DB
Нагружающая система -
injector
Stub-системаStub-система
Нагружающая система -
injector
Бридж в систему заказчика
Что угодно еще
Введение в Performance Management
(Итоговый) Отчет
• Кто готовит шаблон отчета (мы или заказчик)?
• Утилизация ресурсов (CPU, io, memory)
• TBD скриншоты отчета:
• TestF таблица HighLevelReport
• Графики
• Scalability таблицы
• Что будет, если не все тесты пройдены?
• Указывать ли список тикетов в отчете?
• Важность валидации отчета с проектной командой
Введение в Performance Management
(Итоговый) Отчет
• Миграция данных
Введение в Performance Management
(Итоговый) Отчет
• Бизнес-сценарии
Введение в Performance Management
(Итоговый) Отчет
• Несоблюдение NFR
Введение в Performance Management
(Итоговый) Отчет
• Количество исполнений
Введение в Performance Management
(Итоговый) Отчет
• CPU
Введение в Performance Management
(Итоговый) Отчет
• Memory
Введение в Performance Management
(Итоговый) Отчет
• GC logs
Введение в Performance Management
(Итоговый) Отчет
• Scalability throughput
Введение в Performance Management
(Итоговый) Отчет
• Scalability resource utilisation
Введение в Performance Management
(Итоговый) Отчет
• Что будет, если вы переделаете вашу систему?
Введение в Performance Management
Какие вопросы задавать заказчику не стоит
• Что будет, если вы переделаете вашу систему?
• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.
Введение в Performance Management
Какие вопросы задавать заказчику не стоит
• Что будет, если вы переделаете вашу систему?
• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.
• Что будет, если выйдет из строя датацентр?
Введение в Performance Management
Какие вопросы задавать заказчику не стоит
• Что будет, если вы переделаете вашу систему?
• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.
• Что будет, если выйдет из строя датацентр?
• Это уже спросили Архитекторы
Введение в Performance Management
Какие вопросы задавать заказчику не стоит
• Что будет, если вы переделаете вашу систему?
• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.
• Что будет, если выйдет из строя датацентр?
• Это уже спросили Архитекторы • Или не спросили?
Введение в Performance Management
Какие вопросы задавать заказчику не стоит
• Кто за что отвечает у заказчика? ContactPerson, области ответственности (админы, PM, другие?)
• Будет ли внешнее тестирование? Их целевые показатели отличаются от наших?
• Есть ли отличия офсайт-онсайт?
• Батчи, отчеты, поиски, типы запросов к БД, реакция third-party систем, размеры сущностей в БД, миграции (какие типы, какого размера, сколько из них мигрируют), ночные работы (night jobs), количество Введение в Performance Management
Итоги Чеклист: вопросы заказчику (1/2)
• Согласованный план работ и ожиданий
• Пример: заказчик не знал, что нам понадобится доступ к БД для отката состояния базы
• Пример: БД и APP были физически в разных сегментах сети
• Отчетность
• Все характеристики, которые могут понадобиться
• 100500 пунктов из стратегии
• Акцент на бизнес-задачах, что его беспокоит (в первую очередь)
• Пересечение с другими работами на серверах
Введение в Performance Management
Итоги Чеклист: вопросы заказчику (2/2)
• https://twitter.com/it_improve
Введение в Performance Management
Q&A
Тest environment has been established in network and that environment is available for NC which includes: Application, Database and RDB instances. Test environment installed including hardware, network configuration, appropriate versions of software. Test stubs for all Network Elements in scope of WS1.2 project are installed and configured including test data setup into separate hardware. Network connectivity between Test environment and stubs instance is established. Necessary firewalls between Test environment and stubs instance are opened. Separate machine (load generator) should be provided in Customer network to generate workload on Test server solution; This environment is intended to emulate the user workload.
• Appropriate ports (required for Activation interface and sftp interfaces for batch files) are opened towards Test server. • Load generator machine should be in the same network with other Test servers;
Company is granted Access to Test environment to enable test execution, software and data updates to occur. Including file system access, web access, DB access. Appropriate permissions are provided to NetСracker for Test environment. This includes permissions to:
• To setup WS1.2 code drops on Test environment (application servers and database servers) in order to install updates on the solution; • To copy Oracle database source files on the Test Database machine in order to backup and restore Oracle instance; • To copy WebLogic, Oracle and Company solution log files into some file storage available for Company team (for example to Postman); • To execute sudo operations on load generator machine; • To establish ftp or ssh connect to (from) APP & ODB machines from (to) the load generator machine.
Test environment should have Company Product codebase and WS1.2 project code drop installed; Test environments should have all necessary configurations and test data; Test environment should have operation systems, application server’s (Oracle Weblogic) version and DB server’s (Oracle DB) version same as on Production environment; Test Application, Database and RDB machines should have following 3rd party tools installed:
• Test Framework; • Anaconda pack (http://continuum.io/downloads, a requirement for TestF); • JDK 7; • Python v3; • sar monitoring tool; • Oracle tool set (sqlplus, statspack, AWR Report, etc.); • netstat; • iostat; • GCViewer; • kSar; • DomainHealth; • Profiler.
Test environment must be available for Company not later than three weeks before the on-site Test activities are planned to start in order to perform initial Test tools configuration and smoke tests; Test Environments and Code bases are stable (should not change) for the duration of scripting, test preparation and execution;
Введение в Performance Management
Приложение