ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ ДЛЯ AGILE И DEVOPS Решение для быстрого выпуска ПО с высокой производительностью Многие команды разработки начинают применять подходы Agile, для того чтобы преодолеть барьеры традиционных методов и выпускать качественное ПО в срок Тестирование производительности – это важная часть процесса создания ПО, так как позволяет оценить быстродействие операций, выяснить допустимое количество одновременно работающих пользователей или выполняемых транзакций, оценить влияние объемов данных на производительность ИТ-решения. В традиционных моделях разработки ПО методом водопада, таких как V-model, тестирование производительности планируется после того как закончена разработка и, желательно, завершено функциональное тестирование. Проекты по тестированию производительности являются технически сложными, часто требуют затрат на инфраструктуру и могут длится несколько месяцев. При этом, большую часть времени занимает подготовительная работа, такая как настройка тестовой среды, разработка нагрузочных скриптов, эмуляторов, подготовка тестовых данных. На практике, разработка программных продуктов традиционными методами заканчивается в срок менее чем в 30% случаев, поэтому тестирование производительности часто исключается, чтобы минимизировать задержку выпуска ПО. Это часто приводит к сбоям в работе приложений под нагрузкой, медленному времени выполнения операций и неспособности службы эксплуатации предсказать поведение системы в будущем, когда нагрузка и количество данных вырастут. Многие команды разработки начинают применять подходы Agile, для того чтобы преодолеть барьеры традиционных методов и выпускать качественное ПО в срок. Agile позволяет значительно сократить циклы разработки – теперь они исчисляются неделями или даже днями. В связи с этим, многие организации и независимые команды разработки задаются вопросом - как быть с тестированием производительности, которое выглядит громоздким и не соответствующим идеологии коротких циклов. Часто, как и в традиционных моделях, это является причиной отказа от проведения тестирования производительности и приводит все к тем же негативным последствиям. Перфоманс Лаб предлагает решение для тестирования производительности в проектах Agile и DevOps, которое позволяет обеспечить быстрый выпуск ПО с высокими показателями производительности. Больше не нужно ждать месяцы для получения результатов тестирования производительности. Наше решение интегрируется в циклы непрерывной интеграции и непрерывного выпуска программных продуктов, позволяя инженерам получать непрерывную обратную связь и оптимизировать производительность ПО в рамках текущих спринтов. 1 Многие команды разработки начинают применять подходы Agile, для того чтобы преодолеть барьеры традиционных методов и выпускать качественное ПО в срок Преимущества для бизнеса Использование технологий Agile и DevOps позволяет бизнесу побеждать в конкурентной борьбе за счет быстрого выпуска продуктов на рынок. А применение решения Перфоманс Лаб позволяет гарантировать необходимую производительность этих продуктов. выполнялось в конце цикла, то в Agile оно смещается в начало, к ранним стадиям жизненного цикла, включая анализ и проектирование. Это хорошая практика, потому что производительность системы напрямую зависит от архитектуры и качества проектирования. Если при разработке ПО методом водопада, тестирование производительности На рисунке показано различие между разработкой ПО методом водопада и Agile. SDLC - Seguential Activities Agile SDLC -Seguential Activities Analysis Analysis Design Design Code Code Test Test Time Решение Перфоманс Лаб обеспечивает высокую производительность приложений и ИТ-систем, в рамках процессов непрерывной интеграции и непрерывного выпуска продуктов и позволяет: • 2 Time • Измерять время выполнения критичных операций на разных уровнях нагрузки. • Находить узкие места, которые ограничивают производительности ИТсистемы. Обладать точной информацией о максимальной производительности ИТсистемы и о том • o сколько пользователей (операций, транзакций) может работать в системе одновременно? • o при какой нагрузке быстродействие критичных бизнес-операций снижается? • o при какой нагрузке ИТ-сервис становится недоступен? Сравнивать между собой различные версии ИТ-системы, различные конфигурации оборудования и системного ПО. Выяснить, готова ли ИТ-система к сезону высоких продаж, рекламе в интернете или открытию новых филиалов. Узнать какой объем базы данных является предельным для ИТ-системы. Решение Перфоманс Лаб Наши услуги помогут интегрировать управление производительностью ИТрешения в процесс разработки ПО. Фундаментальным принципом DevOps является непрерывное предоставление работающего программного продукта пользователям. Agile-команды опираются на непрерывную интеграцию. Решение Перфоманс Лаб использует систему непрерывной интеграции для своих целей. В Agile-командах различают три типа сборок: CI-сборки, ночные сборки (или сборки по выходным) и сборки в конце спринтов и релизов. Решение Перфоманс Лаб использует систему непрерывной интеграции для своих целей 3 CI-сборки выполняются несколько раз в день, поэтому все проверки кода должны выполняться быстро. Как правило, в CI-сборках разработчики запускают юнит-тесты. Решение Перфоманс Лаб позволяет настроить юнит-тестирование производительности, при помощи специальных инструментов, таких как JUnitPerf. Это позволит контролировать выполнение performance stories, измеряя время выполнения кода и запуская его параллельно от нескольких пользователей. Ночные сборки дают больше времени для верификации ПО, так как не задерживают работу команды разработчиков. Обычно, ночью автоматически запускаются интеграционные тесты и регрессионные автотесты. Решение Перфоманс Лаб, позволяет включить в ночные сборки выполнение нагрузочных тестов в LoadRunner или JMeter. Несмотря на то, что функциональность программного продукта на момент ночных сборок часто является неполной и, поэтому, профиль нагрузки не является точным, такие тесты безусловно являются полезными, потому что позволяют выявить многочисленные проблемы работы системы, которые проявляются только под нагрузкой. Например, утечки памяти и блокировки в базе данных. Сборки в конце спринтов или финальные сборки релиза отличаются от ночных сборок тем, что они запускаются не автоматически, а тогда, когда команда решит выполнить финальное тестирование. Решение Перфоманс Лаб позволяет провести полноценное нагрузочное тестирование финальной версии релиза. В этот момент функциональность системы является полной, поэтому инженеры по производительности могут работать с максимально точным профилем нагрузки и многократно отлаженными нагрузочными скриптами, обеспечивающими отличное тестовое покрытие. Применение решения Перфоманс Лаб, позволяет полностью завершить нагрузочное тестирование ИТсистемы к моменту окончания разработки, не отнимая дополнительного времени, так как это происходит в моделях разработки методом водопада. Решение Перфоманс Лаб позволяет использовать настроенные в ходе разработки средства мониторинга производительности (на базе Neuron-R или других решений) для контроля производительности ИТ-системы в ходе его промышленной эксплуатации. Приступая к работе по тестированию производительности Перфоманс Лаб добавит в вашу команду недостающих специалистов по тестированию производительности в формате аутстаффинга 4 Если вы решили пригласить нас для выполнения работ по тестированию производительности, то мы предложим вам план, состоящий из двух этапов. Этап 1: Настройка окружения. Решение Перфоманс Лаб работает в парадигме непрерывной интеграции. Поэтому мы начнем работу с анализа вашего окружения, в котором развернуты автоматизированные средства поддержки непрерывной интеграции/предоставления. Если окружение пока не настроено, то мы выполним его настройку с нуля и обучим специалистов клиента в нем работать. Если у клиента уже настроена система непрерывной интеграции/ предоставления – мы добавим в нее технические средства, необходимые для управления производительностью разрабатываемых ИТ-решений, такие как JUnitPerf, JMeter, средства статического и динамического анализа кода и другие. Этап 2: Предоставление специалистов. В основе философии DevOps лежит правило - разработчики, тестировщики и специалисты службы эксплуатации являются членами одной команды, нацеленной на непрерывное предоставление качественных продуктов конечным пользователям. Поэтому Перфоманс Лаб добавит в вашу команду недостающих специалистов по тестированию производительности в формате аутстаффинга. В качестве опции, Перфоманс Лаб также готов предоставлять подготовленных релизменеджеров для эффективной координации процесса DevOps. Почему Перфоманс Лаб Перфоманс Лаб является широко признанным лидером в области тестирования производительности. Наша запатентованная технология “PLUS” не имеет аналогов в России и позволяет провести тестирование производительности не только систем, работающих на основе известных протоколов, но и системы с протоколами собственной разработки, системы с наличием асинхронных вызовов, системы со сложными и зашифрованными протоколами, интеграционные шины и вебсервисы. Работая с нами, вы можете быть уверены, что: • В вашем проекте будут применены передовые международные практики тестирования производительности. • Будут локализованы и описаны проблемы производительности и узкие места. • Вы получите реальные рекомендации по оптимизации, после применения которых сможете получить увеличение производительность (в нашей практике нередки случаи, когда наши рекомендации позволяют повысить производительность ИТ-системы более чем в 100 раз). • Риски деградации производительности, сбоев и отказов ИТ-системы будут сведены к минимуму. Риски деградации производительности, сбоев и отказов ИТ-системы будут сведены к минимуму 5 Краткая информация о Перфоманс Лаб ПЕРФОМАНС ЛАБ – крупнейшая в России компания со специализацией в области тестирования и обеспечения качества ПО. Мы входим в топ-30 мировых QA-компаний. С 2008 года мы работаем в финансовом и государственном секторе, ритейле и телекоме, позволяя нашим клиентам добиваться существенного улучшения качества критичных для бизнеса ИТ-систем. В 2014 году наш годовой оборот превысил 360 миллионов рублей. Перфоманс Лаб является призёром рейтинга работодателей «Индекс лидерства 2013» в области ИТ и телеком. Это значит, что нас высоко оценили более 300 наших сотрудников в Москве и Ижевске. Мы гордимся, что попали в этот рейтинг вместе с такими компаниями, как IBM, Microsoft, Яндекс и МТС. Мы выполняем наибольшее число проектов по независимому тестированию в стране благодаря крупнейшему центру компетенций, который постоянно развивается. Нашими клиентами являются лидеры отраслей, такие как МТС, Вымпелком, МГТС, ВТБ и ВТБ-24, Альфабанк, Райффайзенбанк, Лето банк, Росбанк, X5 Retail Group, М-Видео, Эльдорадо, Лента, крупные государственные организации: Пенсионный фонд Российской Федерации, Департамент ИТ города Москвы, а также множество других организаций. ООО «ПЕРФОМАНС ЛАБ» Москва, ул. Барклая 6 стр.5, офис 511 Тел. +7 495 989 6165 www.performance-lab.ru ООО «Перфоманс Лаб» Ижевск, ул. Азина, д. 1, оф. 711 Тел: +7 963 064 2741 Performance Lab US, LLC 4633 Old Ironsides Drive, Santa Clara, California, 95054, USA Phone: +1.844.446.7587 performancelabus.com 8 КОНТАКТЫ Ковалёв Юрий Викторович Управляющий партнёр email: y.kovalev@pflb.ru моб. +7 965 205 2222 Кутузов Максим Юрьевич Генеральный директор email: ceo@pflb.ru моб. +7 909 904 1111