Тестирование масштабируемости: 7 шагов к успеху
Системы, которые очень хорошо работают во время разработки, развернутые в небольшом масштабе, могут пренебрегать целями производительности, как только развертывание будет масштабировано вокруг поддержки реальных степеней использования.
Уместный образцовый случай этого происходит от значительной компании Blue Chip, которая недавно передала разработку ориентировочной платформы с высокой технологией. Хотя разработка отстала от графика, это считается приемлемым. Машина постепенно проходила функциональные компоненты индивидуального приемлемого тестирования, и, наконец, оказалась так, как если бы дата развертывания могла быть установлена. Но поставщик начал тестирование нагрузки и тестирование масштабируемости. Затем последовало расширенное и дорогостоящее количество архитектурных изменений и изменений в требованиях машины. Поставщик героически боролся за предоставление удовлетворительной системы, пока, наконец, проект не стал навалком.
Это не изолированный случай. Это фольклор изобилует подобными сказками. От систем отправки скорой помощи до веб-сайтов для электронного представления налоговых заявлений, системы терпят неудачу, поскольку они масштабируют и испытывают пиковые требования. Все эти проекты, по -видимому, никогда не выявили и упорядочили основные риски, с которыми они столкнулись. Это может быть фундаментальной стадией тестирования на основе риска, и в равной степени применяется к тестированию масштабируемости или тестированию нагрузки, поскольку оно делает функциональность тестирования или тестирование непрерывности бизнеса. Без оценки риска они не признали, что масштабирование было между самыми большими рисками, намного больше, чтобы обеспечить всю функциональность
Недавние тенденции в отношении сервисной архитектуры (SOA) пытаются решить проблему масштабируемости, но дополнительно вводят новые проблемы. Включение извне предоставленных услуг в ваше текущее решение подразумевает, что ваша возможность масштабирования сейчас зависит от этой внешней системы, работающей при нагрузке. Убедиться, что это может быть требовательной задачей, и, к сожалению, тестирование деформации и тестирование стресса здесь часто упускаются из виду.
Лучшей практикой было бы запустить разработку программной системы крупного масштаба, используя ее производительность в глубине души, в частности, тестирование масштабируемости, тестирование объема и тестирование нагрузки. Чтобы сгенерировать этот фокус тестирования производительности: