Облачные вычисления: Облачное ускорение

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

Дэн Салливан

Адаптированная выдержка из книги «The Definitive Guide to Cloud Acceleration» (Realtime Publishers).

Облачные вычисления и глобальное распространение Интернета предоставили предприятиям возможность расширить свои рынки и клиентские базы. Масштабируемость и эластичность облачных вычислений помгает предприятиям расширять свои вычислительные системы в соответствии с бизнес-требованиями. Такая гибкость уменьшает потребность во вложениях капитала в оборудование, которое может понадобиться в будущем.

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

С точки зрения пользователя качество приложения определяется, в частности, его «отзывчивостью». Приложения, которые воспринимаются как медленно работающие, с точки зрения пользователя являются проблемными, и их применение может вызвать неудовлетворенность пользователей и потерю доходов. Несколько исследований продемонстрировали взаимосвязь между временем отклика и прекращением использования веб-приложения. Согласно исследованию Aberdeen Group односекундная задержка загрузки страницы приводит к:

  • Снижению количества просмотров страницы на 11 процентов
  • Снижению удовлетворенности клиентов на 16 процентов
  • Убытку в пересчете на деньги в 7 процентов

Еще одна группа исследований, опубликованная KissMetrics (для доступа к данным нужно регистрироваться), показала:

  • 73 процента пользователей портативных устройств сообщают о случаях, когда веб-сайты загружались медленно
  • 47 процентов клиентов рассчитывают, что веб-страницы будут загружаться две секунды или быстрее
  • 40 процентов покидают сайты, на загрузку которых требуется больше трех секунд
  • 79 процентов покупателей, не удовлетворенных производительностью сайта, вряд снова ли что-то купят на этом сайте

Очевидно, время отклика приложения напрямую влияет на удовлетворенность клиентов, их лояльность и, в конечном счете, на доход.

Сократите время отклика приложения

На «отзывчивость» приложений влияют многие факторы, например, то, как написан код, как спроектирована база данных, пропускная способность и задержка сети. Один из способов улучшить производительность приложения — оптимизация кода приложения. К ней относятся:

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

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

Возможности оборудования

Кроме того, облако позволяет предприятиям реализовать общеизвестный, но иногда сомнительный подход «бросить на решение проблемы дополнительное оборудование». Может оказаться, что будет быстрее не пересматривать и исправлять код, а осуществить вертикальное масштабирование серверов, на которых он выполняется.

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

Оба эти подхода помогают увеличить производительность, если предположить, что нет узких мест за пределами серверов (например, затрат времени на выполнение операций ввода-вывода в массиве устройств хранения). Если производительность ввода-вывода — это проблема, вы можете повысить производительность, перейдя на более быструю технологию хранения.

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

Облачные провайдеры, мощности которых располагаются в центрах данных, могут предложить высокопроизводительную сетевую инфраструктуру для специализированных задач, таких как высокопроизводительные вычисления. Эти специальные задачи могут выполняться в кластерах с 10-гигабитным Ethernet. Большинство стандартных задач выполняется на серверах, соединенных более медленными интерфейсами. Для данных, передаваемых за пределы центра данных и через Интернет, могут потребоваться дополнительные меры по сокращению задержки.

Облачное ускорение

Термин «облачное ускорение» (cloud acceleration) обозначает облачные технологии, которые сокращают «отзывчивость» приложения в целом за счет сокращения времени, затрачиваемого на доставку контента конечному пользователю. Не будем особо углубляться в технические детали, но стоит отметить, что можно реализовать облачное ускорение в сочетании с сетями доставки контента (content delivery networks, CDN) для распространения контента по земному шару и сокращения сетевого трафика благодаря специальной оптимизации. При реализации облачного ускорения возникает четыре основных проблемы:

  1. Масштабируемость и географическая достижимость
  2. Избыточность
  3. Консолидация сервисов
  4. Затраты

Чтобы вам удалось успешно реализовать решение по облачному ускорению, необходимо исследовать каждую из этих проблем.

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

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

Предприятия могут развертывать и обслуживать свои собственные центры данных или инфраструктуры, размещая их на территории провайдеров (co-location) и охватывая весь мир. Такое развертывание должно быть достаточно плотным, чтобы обеспечить глобальную достижимость и возможность отклика на запросы клиентов, сотрудников и партнеров, где бы они ни находились. Кроме того, эти конфигурации должны содержать достаточно оборудования для масштабирования, чтобы справляться с пиковыми запросами, с которыми может столкнуться каждый центр данных.

Избыточность: еще одним соображением является избыточность. Оборудование ломается. В ПО происходят сбои. Сетевые соединения теряются. Если произойдет отказ центра данных, другие центры данных по всему миру должны изменить свои конфигурации так, чтобы отвечать на трафик, который обслуживал вышедший из строя сайт.

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

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

Ключевые соображения

Наряду с техническими проблемами реализации технологий облачного ускорения, важно учесть другие характеристики, влияющие на то, как предприятие может улучшить «отзывчивость» приложений. Один из факторов, определяющих оптимальный выбор технологии облачного ускорения, — то, какой у вас контент — генерируемый или используемый многократно. Многократно используемый контент (иногда его называют статическим) можно реплицировать и передавать между веб-серверами без дополнительной обработки какими-либо приложениями.

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

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

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

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

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

Стоимость и сложность развертывания сервисов для расчетов и хранения данных снижается при облачных вычислениях. При этом обеспечивается более высокая гибкость адаптации к новым бизнес-возможностям с помощью применения платформ Infrastructure as a Service (IaaS) и Platform as a Service (PaaS). Кроме того, рост популярности платформ Software as a Service (SaaS) дает предприятиям возможность предоставлять свои сервисы по модели SaaS.

Предприятия должны уделять особое внимание производительности веб-приложений для всех клиентов, независимо от их местонахождения. Добавление сервисов и устройств хранения улучшает некоторые, но не все аспекты «отзывчивости» приложений. Возможно, для того чтобы обеспечить единый приемлемый уровень производительности для всех пользователей приложений, вам придется потребоваться реализовать ряд технологий облачного ускорения.

Дэн Салливан

Дэн Салливан (Dan Sullivan) — имеет более чем 20-летний опыт работы в ИТ в области проектирования приложений, системной архитектуры и корпоративной безопасности. Он написал и опубликовал огромное количество материалов по системной архитектуре, управлению инфраструктурами и согласованию бизнес- и ИТ-стратегий. Также он автор нескольких книг, в том числе «The Shortcut Guide to Prioritizing Security Spending», «The Definitive Guide to Information Theft Prevention», «The Definitive Guide to Service-Oriented Systems Management» и «The Definitive Guide to Controlling Malware, Spyware, Phishing and Spam» — все они изданы Realtime Publishers.

Дополнительную информацию об этой и других книгах Realtime Publishers см. на сайте Realtime Publishers.