Введение в performance management

62
Software quality assurance days 19 Международная конференция по вопросам качества ПО sqadays.com Санкт-Петербург. 20–21 мая 2016 Андрей Дмитриев Санкт-Петербург Введение в Performance Management

Upload: sqalab

Post on 07-Jan-2017

1.093 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Введение в performance management

Software quality assurance days19 Международная конференция по вопросам качества ПОsqadays.com

Санкт-Петербург. 20–21 мая 2016

Андрей ДмитриевСанкт-Петербург

Введение в Performance Management

Page 2: Введение в performance management

Андрей Дмитриев

• разработчик, тимлид, групплид

• лидер JUG.ru и CodeFreeze.ru

Введение в Performance Management

Кто я?

Page 3: Введение в performance management

Андрей Дмитриев

• разработчик, тимлид, групплид

• лидер JUG.ru и CodeFreeze.ru

Введение в Performance Management

Кто я?

Page 4: Введение в performance management

• Научить вас проводить performance-тестирование

Введение в Performance Management

Цель

Page 5: Введение в performance management

• Научить вас проводить performance-тестирование

Введение в Performance Management

Цель

Page 6: Введение в performance management

• Научить вас проводить performance-тестирование

• Поделиться своим опытом

Введение в Performance Management

Цель

Page 7: Введение в performance management

• Научить вас проводить performance-тестирование

• Поделиться своим опытом

Введение в Performance Management

Цель

Page 8: Введение в performance management

• Научить вас проводить performance-тестирование

• Поделиться своим опытом

• Научить вас задавать правильные вопросы при подготовке к тестированию у заказчика

Введение в Performance Management

Цель

Page 9: Введение в performance management

• Научить вас проводить performance-тестирование

• Поделиться своим опытом

• Научить вас задавать правильные вопросы при подготовке к тестированию у заказчика

Введение в Performance Management

Цель

Page 10: Введение в performance management

• Чего не будет • Как проводить performance-замеры

• Как управлять командой

• Как общаться с заказчиком

Введение в Performance Management

План

Page 11: Введение в performance management

• Чего не будет • Как проводить performance-замеры

• Как управлять командой

• Как общаться с заказчиком

• Что будет • Какие deliverables выдавать

• Какие требовать ресурсы

• Как готовиться к тестированию у заказчика

• Как готовить отчетВведение в Performance Management

План

Page 12: Введение в performance management

• Хорошее тестовое покрытие успешно “выполнилось”

Введение в Performance Management

Чего хочет заказчик?

Page 13: Введение в performance management

• Хорошее тестовое покрытие успешно “выполнилось”

• Быть уверенным в том, что решение выдержит требуемую нагрузку

Введение в Performance Management

Чего хочет заказчик?

Page 14: Введение в performance management

Введение в Performance Management

Deliverables

Page 15: Введение в performance management

• В систему будет поступать в среднем 3000 запросов в сутки

• Длительность теста - 1 час

• Сколько запросов должно быть выполнено?

• А: 375

• B: 125

• C: 3000

• D: Ответить невозможно

Введение в Performance Management

Простой пример #1

Page 16: Введение в performance management

• В систему будет поступать в среднем 3000 запросов в сутки

• Длительность теста - 1 час

• Сколько запросов должно быть выполнено?

• А: 375

• B: 125

• C: 3000

• D: Ответить невозможно

Введение в Performance Management

Простой пример #1

•КАРТИНКА с характером нагрузки

Page 17: Введение в performance management

• NFR документ

• Strategy документ

• Проектный план

• Финальный отчет

Введение в Performance Management

Ладно, что за Deliverables?

Page 18: Введение в performance management

• Кто готовит этот документ?

• Что содержит этот документ?

Введение в Performance Management

NFR документ

Page 19: Введение в performance management

• Снимаемые метрики: 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 документ

Page 20: Введение в performance management

• Ожидаемые нагрузки (в год, день): 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 документ

Page 21: Введение в performance management

• Количество мигрированных данных:

Введение в 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

Page 22: Введение в performance management

• Объем мигрированных данных:

Введение в 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

Page 23: Введение в performance management

• Бизнес-кейсы

Введение в 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

Page 24: Введение в performance management

• 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

Page 25: Введение в performance management

• Любая страница открывается за 3 сек

Введение в Performance Management

Примеры плохих NFR

Page 26: Введение в performance management

• Любая страница открывается за 3 сек

• А как быть с отчетами, виджетами, поисками???

Введение в Performance Management

Примеры плохих NFR

Page 27: Введение в performance management

• Любая страница открывается за 3 сек

• А как быть с отчетами, виджетами, поисками???

• Любой отчет строится максимум за 5 минут

Введение в Performance Management

Примеры плохих NFR

Page 28: Введение в performance management

• Любая страница открывается за 3 сек

• А как быть с отчетами, виджетами, поисками???

• Любой отчет строится максимум за 5 минут

• А если отчет не выдает никаких данных???

Введение в Performance Management

Примеры плохих NFR

Page 29: Введение в performance management

• Нужно ли презентовать стратегию заказчику, а не только выдавать?

Введение в Performance Management

Strategy документ

Page 30: Введение в performance management

• Диаграмма компонентов

Введение в Performance Management

Strategy документ

Page 31: Введение в performance management

• Алгоритм маппинга результатов

Введение в Performance Management

Strategy документ

Page 32: Введение в performance management

• Тесты

• Длительности тестов

• Ожидания от замеров

Введение в Performance Management

Strategy документ

Page 33: Введение в performance management

1. Оборудование, сеть и т.д. доступно

2. Заглушки развернуты 3. Сегменты сети одинаковые 4. Порты открыты, права выданы (weblogic, oracle, etc.) 5. Генератор нагрузки развернут с нужным ПО 6. Нужная версия продукта установлена 7. Доступность окружения (за N дней до и M дней после) 8. Поддержка DBA на протяжении замеров 9. SLA на наши запросы не более чем 1 день

Введение в Performance Management

Strategy документ: ваши требования*

Page 34: Введение в performance management

• Классический проектный план

• Пересечение с другими работами на серверах

Введение в Performance Management

Проектный план

Page 35: Введение в 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

Page 36: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Page 37: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector

Page 38: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector Нагружающая система -

injector

Page 39: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector

Stub-система

Нагружающая система -

injector

Page 40: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector

Stub-системаStub-система

Нагружающая система -

injector

Page 41: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector

Stub-системаStub-система

Нагружающая система -

injector

Бридж в систему заказчика

Page 42: Введение в performance management

Введение в Performance Management

Какие ресурсы потребуются?

Нагружаемая система -

APP

Нагружаемая система - DB

Нагружающая система -

injector

Stub-системаStub-система

Нагружающая система -

injector

Бридж в систему заказчика

Что угодно еще

Page 43: Введение в performance management

Введение в Performance Management

(Итоговый) Отчет

Page 44: Введение в performance management

• Кто готовит шаблон отчета (мы или заказчик)?

• Утилизация ресурсов (CPU, io, memory)

• TBD скриншоты отчета:

• TestF таблица HighLevelReport

• Графики

• Scalability таблицы

• Что будет, если не все тесты пройдены?

• Указывать ли список тикетов в отчете?

• Важность валидации отчета с проектной командой

Введение в Performance Management

(Итоговый) Отчет

Page 45: Введение в performance management

• Миграция данных

Введение в Performance Management

(Итоговый) Отчет

Page 46: Введение в performance management

• Бизнес-сценарии

Введение в Performance Management

(Итоговый) Отчет

Page 47: Введение в performance management

• Несоблюдение NFR

Введение в Performance Management

(Итоговый) Отчет

Page 48: Введение в performance management

• Количество исполнений

Введение в Performance Management

(Итоговый) Отчет

Page 49: Введение в performance management

• CPU

Введение в Performance Management

(Итоговый) Отчет

Page 50: Введение в performance management

• Memory

Введение в Performance Management

(Итоговый) Отчет

Page 51: Введение в performance management

• GC logs

Введение в Performance Management

(Итоговый) Отчет

Page 52: Введение в performance management

• Scalability throughput

Введение в Performance Management

(Итоговый) Отчет

Page 53: Введение в performance management

• Scalability resource utilisation

Введение в Performance Management

(Итоговый) Отчет

Page 54: Введение в performance management

• Что будет, если вы переделаете вашу систему?

Введение в Performance Management

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

Page 55: Введение в performance management

• Что будет, если вы переделаете вашу систему?

• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.

Введение в Performance Management

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

Page 56: Введение в performance management

• Что будет, если вы переделаете вашу систему?

• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.

• Что будет, если выйдет из строя датацентр?

Введение в Performance Management

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

Page 57: Введение в performance management

• Что будет, если вы переделаете вашу систему?

• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.

• Что будет, если выйдет из строя датацентр?

• Это уже спросили Архитекторы

Введение в Performance Management

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

Page 58: Введение в performance management

• Что будет, если вы переделаете вашу систему?

• Очень хочется, чтобы заказчик пришел к нам с этим вопросом.

• Что будет, если выйдет из строя датацентр?

• Это уже спросили Архитекторы • Или не спросили?

Введение в Performance Management

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

Page 59: Введение в performance management

• Кто за что отвечает у заказчика? ContactPerson, области ответственности (админы, PM, другие?)

• Будет ли внешнее тестирование? Их целевые показатели отличаются от наших?

• Есть ли отличия офсайт-онсайт?

• Батчи, отчеты, поиски, типы запросов к БД, реакция third-party систем, размеры сущностей в БД, миграции (какие типы, какого размера, сколько из них мигрируют), ночные работы (night jobs), количество Введение в Performance Management

Итоги Чеклист: вопросы заказчику (1/2)

Page 60: Введение в performance management

• Согласованный план работ и ожиданий

• Пример: заказчик не знал, что нам понадобится доступ к БД для отката состояния базы

• Пример: БД и APP были физически в разных сегментах сети

• Отчетность

• Все характеристики, которые могут понадобиться

• 100500 пунктов из стратегии

• Акцент на бизнес-задачах, что его беспокоит (в первую очередь)

• Пересечение с другими работами на серверах

Введение в Performance Management

Итоги Чеклист: вопросы заказчику (2/2)

Page 61: Введение в performance management

• https://twitter.com/it_improve

[email protected]

Введение в Performance Management

Q&A

Page 62: Введение в performance management

Т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

Приложение