Инфраструктура технологичных компаний на 90% построена на решениях зарубежных поставщиков. Прекращение технической поддержки и сложности с поставкой нового оборудования ставят под удар непрерывную работу и развитие бизнеса.
Безусловно, аппаратные системы имеют определенный запас прочности, но без новых закупок дальнейшее масштабирование и развитие информационных систем может оказаться под угрозой и вынудить российские организации постепенно отказаться от разработки новых продуктов, перераспределить ресурсы в пользу критичных сервисов. Решить проблему нехватки ресурсов можно за счет оптимизации работы прикладного и системного программного обеспечения.
В последнее десятилетие при внедрении информационных систем лишь немногие компании фокусировались на том, чтобы повысить производительность систем на том же оборудовании: как правило, вместо этого дополнительно приобретались новые серверы, а потенциал действующего ПО оставался нераскрытым. Однако статистика, которую мы собрали на основе более 500 проектов по нагрузочному тестированию компании IBS, показала, что за счет оптимизации ПО удается в 80% случаев поднять производительность систем в 1,5–3 раза, что само по себе позволяет значительно сэкономить на закупке нового оборудования.
Нагрузочное тестирование позволяет смоделировать промышленную нагрузку и далее в процессе испытаний выявить узкие места, которые препятствуют дальнейшему росту производительности. Само нагрузочное тестирование строится таким образом, чтобы отразить работу системы в промышленной эксплуатации с довольно высокой точностью — не менее 80-90%, если брать в расчет самые ресурсоемкие операции. Это позволяет увидеть, как IT-система будет вести себя на самом деле в тех или иных условиях.
Процесс оптимизации IT-систем состоит из следующих шагов:
Далее наступает этап проведения аудита IT-систем под нагрузкой:
Затем выполняется оптимизация оборудования в зависимости от обнаруженных с помощью нагрузочного тестирования узких мест. Для достижения оптимизации могут быть использованы следующие меры:
После повторного проведения нагрузочного тестирования проверяется эффективность внесенных изменений, при необходимости цикл оптимизации ПО может быть повторен.
Проводить нагрузочное тестирование и далее оптимизировать производительность рекомендуется:
Таким образом, если в компании решено настроить процесс управления мощностями с целью снижения затрат на закупку оборудования и поддержку ПО, необходимо:
Определиться со списком наиболее критичных систем. Среди этих систем необходимо выделить те, которые подвержены высокой нагрузке и, самое главное, время простоя которых влияет на существенные денежные и репутационные потери организации. Для этого необходимо сопоставить, какие операционные издержки получит бизнес, если целевая система будет недоступна в течение максимального времени ее восстановления после тяжелой аварии.
Убедиться в зрелости процессов тестирования, в частности нагрузочного. Здесь сперва необходимо проработать вопрос со своей командой тестирования. Если тестировщики четко могут объяснить всем участникам проекта, как будет моделироваться нагрузка и как она соотносится с реальностью, то дальше работать можно с внутренней командой (при необходимости привлекая дополнительные внешние ресурсы). В противном случае рекомендуется прибегнуть к специализированным подрядчикам, которые на основании своего опыта и экспертизы смогут выстроить процесс нагрузочного тестирования и управления мощностями.
Определиться со сроками получения результатов и контролировать основные этапы выполнения работ (моделирование нагрузки, проведение НТ и интерпретация результатов). Важно понимать, что первичное нагрузочное тестирование занимает больше всего времени — от 2 до 4 месяцев. Повторные итерации тестирования будут проходить уже гораздо быстрее — от недели до трех в зависимости от сложности системы. На последнем этапе уже можно получить эффект оптимизации ПО. После обнаружения узких мест необходимо настроить процесс так, чтобы эти узкие места сразу исправлялись разработчиками и администраторами (это может быть как внутренняя разработка, так и внешние специалисты).
2-3 итерации тестирования приведут к существенным сдвигам в производительности. Это наиболее подходит для систем, которые ранее не тестировались либо не оптимизировались в промышленной эксплуатации.
Пройдя этот путь, уже после первого этапа тестирования можно понять, как долго связка вашего ПО и оборудования сможет беспроблемно обслуживать бизнес, сколько аппаратных ресурсов удастся высвободить после проведенной оптимизации и как новые версии ПО справятся с пользовательской активностью.