Обеспечиваем стабильность программного продукта в нестабильных условиях

02 апреля 2020
Дата публикации
Обеспечиваем стабильность программного продукта в нестабильных условиях
  • Тестирование ПО
  • Обеспечение качества

Распространение COVID-19 официально признано пандемией. Компания Deloitte назвала коронавирус «чёрным лебедем», который непредсказуемо меняет глобальные социальные и экономические процессы.

Ограничение международного сообщения, повсеместное введение карантина, поощрение социальной изоляции, переход на удалённый формат работы ― все эти меры в корне реформируют ландшафты каждой области на каждом континенте.

Нужно ли в такой ситуации переводить бизнес в онлайн-режим? Как успешно приспособиться к слишком быстро меняющимся условиям тем, кто уже присутствует в digital-пространстве? Читайте далее, чтобы узнать.

Историческое изменение глобального контекста

Представители бизнеса многих отраслей экономики оказались под неожиданным ударом в этом году. Распространение коронавируса вместе с другими внешними факторами приводит к переустройству привычной экономической системы.

В зоне риска оказались представители малого бизнеса, туристической отрасли, авиаперевозчики. Введение карантинных мероприятий по всему миру и массовое закрытие границ между странами отразилось и на других сферах: здравоохранение, производство и добыча природных ресурсов.

В начале марта прошла крупнейшая со времён экономического кризиса 2008 года распродажа акций мировых компаний. Многие эксперты уже назвали этот день «чёрным понедельником». Всего за один день акции компаний Европы и США потеряли в цене 6―10%. В новых обстоятельствах главной целью многих крупных инвесторов стало не увеличивать капитал, а сокращать потери.

 Если до событий последних месяцев ожидалось, что в 2020 году прирост мировой экономики составит 3%, то сейчас эксперты в один голос говорят о рецессии. Но даже в таких сложных для многих компаний условиях остаётся действенный выход ― переход в цифровое пространство. Образовательные, развлекательные площадки, онлайн-магазины пользуются высоким спросом, а значит, и трафик растёт.
 
Только за третью неделю марта этого года интернет стали посещать на 22% чаще. Наиболее активный рост продемонстрировали сегменты онлайн-игр и стриминговые платформы. По данным статистики социальной сети «ВКонтакте», за этот же период марта просмотры новостной ленты увеличились на 10%, интерес к видео возрос на 16%, игровая площадка привлекла на 10% больше пользователей. Онлайн-кинотеатр «Кинопоиск HD» рассказал об увеличении среднего показателя времени просмотра и числа пользователей в дневное время. Во многом это стало следствием перехода на «цифровые рельсы» компаний, которые переводят своих сотрудников в формат удалённой работы.
 
Но такой бурный рост и развитие некоторых площадок имеет обратную сторону ― высокий пользовательский интерес повышает нагрузку на серверы, что может затормозить или даже приостановить работу веб-сервиса. Неудивительно, что Еврокомиссия порекомендовала стриминговым площадкам (таким как Netflix) снизить качество видеоконтента, чтобы сократить нагрузку на глобальный трафик.

Даже самые крупные площадки оказались неготовыми к такому резкому увеличению числа пользователей. Можно сказать, что сейчас мы наблюдаем формирование новых стандартов производительности веб-продуктов. Сегодня, чтобы сохранить и приумножить число постоянных пользователей, платформам предстоит продемонстрировать стабильную работу под высокой и даже стрессовой нагрузкой. Но точно узнать о возможностях своего программного продукта можно лишь после его падения от наплыва пользователей или при тестировании производительности.

Как использовать нестабильные условия в свою пользу?

Сложившиеся обстоятельства можно и нужно рассматривать с точки зрения потенциальных возможностей. К примеру, уже сейчас набирают обороты онлайн-продукты по доставке еды и товаров, площадки для дистанционного обучения и организации удалённой работы. При увеличении пользовательского интереса ко многим сервисам наплыв на приложения будет только увеличиваться.

Важно заранее подготовить продукт к пиковым показателям интереса, который принесёт бизнесу свои преимущества. По данным Cloudflare, текущий прирост трафика сопоставим с периодом проведения Олимпийских игр. Ведь слишком медленная или некорректная работа ПО оттолкнёт новых пользователей и вынудит прежних искать альтернативы у конкурентов.

Стоит готовиться к бурному развитию сектора e-commerce. Если только в 2019 году в России суммарный объём рынка онлайн-торговли увеличился на 41%, то уже в этом году мы можем ожидать значительного увеличения показателей. Но массовый переход процессов в режим онлайн даёт возможность новым продуктам быстро развиться и расширить свою долю на рынке. Рестораны обращаются к созданию собственных сервисов по доставке еды, офлайн-бизнес перепрофилируется под новые условия и запускает сайты, компании внедряют компьютерное зрение, чтобы помочь клиентам «‎примерить»‎ товар, не выходя из дома.

Но стоит учитывать и долгосрочные перспективы. За бурным ростом и смещением полюсов отраслевых структур при стабилизации глобальной ситуации может последовать рецессия. Потребуется больше усилий для поиска оптимального решения, которое будет для бизнеса оптимальным и в текущей ситуации, и в долгосрочной перспективе.

 Обеспечиваем стабильность работы ПО

Мы предлагаем обратить внимание на факторы, которые повышают вероятность возникновения трудностей при отказе от тестирования производительности или его несвоевременном проведении.
  •          Период до релиза
Если вы готовитесь представить на рынке новый программный продукт, то могли уже провести ряд тестов. Но стоит пересмотреть требования к производительности с учётом изменений текущих показателей потенциальной нагрузки на мобильные и веб-приложения. Не упустите возможность проверить свой продукт перед релизом дополнительно даже под непредвиденно высокими нагрузками!
  •          Неадаптированность мобильного приложения к работе на разных платформах
При ограниченности использования программного продукта не стоит ожидать резкого увеличения пользовательской нагрузки. А ведь с ростом интереса к сервису ожидается и увеличение плюсов для бизнеса. Потому неподготовленность ресурса к работе на нескольких платформах станет скорее преградой для развития, чем сдерживающим фактором.
  •          Проверка новых функциональностей
Модернизация ПО помогает поддерживать пользовательский интерес и отвечать актуальным потребностям рынка. Но при обновлении текущих характеристик приходится сталкиваться со сложностями. Важно проводить не только фрагментарные проверки работоспособности новых участков ПО, но и оценивать возможности уже целостной системы функционировать в прежнем режиме, изучать влияние изменений на производительность продукта.

Игнорирование дефектов при внедрении новой функциональности может обернуться для программного продукта продолжительными сбоями в работе, а для бизнеса ― убытками.
  •          Незнание пиковых точек нагрузки
Понимание пограничных возможностей веб-сервиса позволяет точнее анализировать поведение системы и выстраивать прогнозы. К сожалению, немногие могут точно назвать критические точки нагрузки на систему. Но тестирование производительности даст однозначный ответ на следующие вопросы:
  1.     Какими являются пиковые точки нагрузки?
  2.     Как отличается поведение системы в этих точках?
  3.     Сколько система способна работать при резком повышении нагрузки?
  •          Переход на новое программное обеспечение
Обновления сопряжены с рисками для стабильности работы программного продукта. Чтобы убедиться в правильном функционировании системы после обновления, например БД, стоит провести ряд нагрузочных тестов. Ещё один пример ― миграция информации в новую систему управления базами данных (СУБД). Такой подход поможет выявить отличия поведения системы в привычных и новых условиях.

Нивелировать влияние данных факторов на производительность программного продукта позволят экстренные меры по стабилизации работоспособности системы.

Помощь программному продукту: 3 экстренные меры

Чтобы ускорить стабилизацию программного продукта при увеличении пользовательской нагрузки, вы можете предпринять первые самостоятельные меры.
  •          Оптимизация загрузки
Чтобы сократить время загрузки каждой страницы, стоит временно сократить объём визуального контента или обратиться к сжатию файлов, кэшированию. Минификация CSS- и JavaScript-файлов также поможет страницам загружаться быстрее.
  •          Изменение возможностей сервера
В момент приближения к пиковым показателям нагрузки стоит развить пропускные возможности сайта. Нужно убедиться, что в системе нет лимитов на допустимое количество соединений или других ограничений.
  •          Масштабирование ресурсов
Даже если сейчас вы справляетесь с пользовательской нагрузкой, уже завтра может понадобиться дополнительное пространство для манёвра. Предлагаем обзавестись ещё несколькими программными или аппаратными системами для обработки запросов.

Кроме того, в качестве дополнительных эффективных мер вы можете сделать следующее:
  •          настроить мониторинг системы для определения самых нагруженных компонентов;
  •          увеличить мощности инфраструктуры, на которой развернуто приложение с применением облачных решений;
  •          настроить профилирования БД и серверов (выявить наиболее медленные запросы и проанализировать их с целью оптимизировать время обработки запроса).
Следующее активное действие ― провести тестирование производительности. Лучше подготовить ваш программный продукт к значительным нагрузкам, а также выявить и понять узкие места системы поможет команда компании «Точка качества»:
  •          С увеличением трафика растёт и число пользователей, и объём хранимой информации в БД. Оценить возможность системы справляться с этим ростом поможет объёмное тестирование.
  •          Тестирование конфигурации позволит определить лучшее сочетание компонентов для сервера, которое сократит расходы ресурсов на поддержание окружения.
  •          Проверка стабильности поможет определить оптимальные параметры масштабируемости при резком росте или падении нагрузки. Автоматизация поведения системы в таких условиях также позволит сэкономить ресурсы.
Подведём итоги

Текущие глобальные преобразования ― возможность дать новый стимул для развития, ведь стремительный рост интереса к онлайн-продуктам даёт бизнесу возможность диверсифицировать риски.

Но увеличение трафика ведёт к нестабильной работе приложения. Решение для данной проблемы стоит искать в тестировании производительности. Оно позволит выявить пиковые точки нагрузки на продукт, при которых сохраняется стабильность, а также определить поведение системы при длительной нагрузке (увеличение числа пользователей или объёма данных). Определение пороговых показателей работоспособности предотвратит резкий выход из строя системы.