Большая часть инфраструктуры российских компаний работает благодаря зарубежным решениям. Отсутствие технической поддержки и проблемы с покупкой нового оборудования негативно влияют на континуальную работу и развитие бизнеса. К тому же, системы обладают конкретным запасом прочности, поэтому без переоборудования у компании могут возникнуть проблемы с масштабированием или вам потребуется со временем отказаться от разработки новых продуктов, переназначить ресурсы в пользу критичных сервисов. Разрешить эту ситуация можно с помощью оптимизации работы прикладного и системного ПО.
Не всем компаниям удается увеличить производительность систем с помощью своего старого оборудования. Вместо этого, компаниям приходилось дополнительно приобретали новые серверы, а возможности действующего ПО оставались нераскрытыми. Собранная на основе 500 проектов статистика показала, что за счет оптимизации ПО удается в 80% случаев поднять производительность систем в 1,5–3 раза, что позволяет заметно снизить затраты на оборудование.
Нагрузочное тестирование дает возможность имитировать промышленную нагрузку и найти слабые места, мешающие повышению производительности. Само тестирование разрабатывается для того, чтобы показать функционирование системы с точностью до 80-90%. Это дает возможность понять, как IT-система будет показывать себя в реальных условиях.
Процесс оптимизации IT-систем состоит из следующих шагов:
- найти существующие и возможные уязвимости в ПО посредствам нагрузочных испытаний;
- выполнить IT-аудит для поиска причин возникновения уязвимостей и дальнейшего формирования рекомендаций для их нейтрализации;
- скорректировать ошибки в коде ПО, оптимизировать работу СУБД;
- осуществить повторное тестирование для подтверждения полученных эффектов.
Следующий этап – аудиторская проверка загруженных IT-систем. В него входят следующие шаги:
- архитектурный аудит и анализ технических решений;
- поиск узких мест, негативно влияющих на производительность;
- проверка исходного кода;
- аудит статистики и оптимальности запросов к БД;
- проверка ПО на наличие рисков и уязвимых мест;
- проработка предложений по внесению изменений в ПО.
Далее проводится оптимизация оборудования с учетом найденных узких мест. Для реализации успешной оптимизации могут применяться следующие методы:
- преобразование прикладной архитектуры;
- создание отдельных микросервисов;
- внедрение очередей;
- изменение технологий;
- оптимизация работы БД.
После повторного нагрузочного тестирования проводится верификация результатов проведенных изменений. Если проблема не была решена, цикл улучшения работы ПО может быть повторен. Реализовать нагрузочное тестирование и улучшить производительность рекомендуется в случаях, если:
· вы работаете с высоконагруженной системой с пользовательской нагрузкой более 500 пользователей;
- вы работаете с Core-системой (АБС, ДБО, CRM, ERP, МДМ, «Документооборот», BI, шины);
- вы работаете с простой системой в силу отказа ПО и/или компания тратит на оборудование более 10 млн. руб. в день;
- компания несет репутационные потери, связанные с отказами обслуживания;
- отсутствует резервное оборудование;
- оптимизация ПО не проводилась ранее и у вас отсутствует понимание емкости ПО и текущего оборудования;
- на производстве были инциденты, связанные с производительностью.
В случае, если в компании принято решение улучшить процесс регулирования мощностей для снижения затрат на закупку оборудования и поддержку ПО, требуется пройти через 3 этапа:
- первый этап – сформировать перечень уязвимых систем. Среди этого списка необходимо найти системы, склонные к высокой нагрузке или влияющие денежные и репутационные потери организации. Для этого необходимо определить, какие операционные издержки получит компания, если выбранная система не будет работать в течение времени, которое требуется на восстановление после ее выхода из строя;
- второй этап – проверить в работоспособность процессов тестирования, в частности нагрузочного. Для этого нужно проработать данный вопрос с тестировщиками. Если тестировщики могут объяснить проектной команде, как будет моделироваться нагрузка и как она соотносится с реальностью, то дальше работать можно над проектом. В противном случае рекомендуется воспользоваться услугами подрядчиков, которые смогут выстроить процесс нагрузочного тестирования и управления мощностями;
- третий этап – определиться с временем получения результатов и контролировать основные этапы выполнения работ (моделирование нагрузки, проведение нагрузочного тестирования и анализ результатов). Помните, что первичное нагрузочное тестирование выполняется за достаточно долгий период – от 2 до 4 месяцев. Повторное тестирование проводится быстрее — от недели до нескольких недель. В этом случае время зависит от сложности системы. В рамках данного этапа вы сможете оптимизировать ПО. После обнаружения узких мест требуется проработать процесс так, чтобы эти узкие места сразу исправлялись разработчиками и администраторами.
Подводя итог, важно отметить, что 2-3 стадии тестирования обязательно приведут к значительным изменениям в производительности. Этот метод подходит для систем, которые ранее не тестировались, либо не оптимизировались в процессе использования
Пройдя этот путь, уже после первого этапа тестирования можно понять, как долго ваше ПО и оборудования сможет обслуживать бизнес, сколько аппаратных ресурсов получится высвободить после проведенной оптимизации и как новые версии ПО справятся с пользовательской активностью.
#it #тестирование #тестировщик