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

Правило 2: Используйте сеть доставки контента

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

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

Правильный первый шаг можно найти, вспомнив золотое правило производительности, описанное в блоге 1 этой серии.



Только 10–20% времени отклика конечного пользователя тратится на загрузку HTML-документа. Остальные 80–90% тратятся на загрузку всех компонентов на странице.

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

Что такое сети доставки контента (CDN)?

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

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

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

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

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

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



Если вы проводите собственные тесты времени отклика, чтобы оценить преимущества использования CDN, важно помнить, что место, из которого вы запускаете тест, влияет на результаты. Например, исходя из предположения, что большинство веб-компаний выбирают центр обработки данных рядом со своими офисами, ваш рабочий веб-клиент, вероятно, расположен недалеко от ваших текущих веб-серверов. Таким образом, если вы запускаете тест из своего браузера на работе, время отклика без использования CDN часто является лучшим случаем. Важно помнить, что большинство ваших пользователей не находятся так близко к вашим веб-серверам. Чтобы измерить реальное влияние перехода на CDN, вам необходимо измерить время отклика из нескольких географических точек. Такие сервисы, как Keynote Systems (http://www.keynote.com) и Gomez (http://www.gomez.com), полезны для проведения таких тестов.

Заключение

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

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

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.