Введение в performance management

Post on 07-Jan-2017

1.093 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

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

• andrei-dmitriev@ya.ru

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

Приложение

top related