Быстродействие сайтов и веб-приложений
Быстродействие сайта или веб-приложения — это метрика, которая характеризуется скоростью обработки запроса пользователя от инициации до момента предоставления результата этого запроса.
Быстродействие зависит от серверного оборудования и от качества кодовой базы клиентской и серверной частей приложения. Качество бэкенд-разработки и используемого хостинга определяет скорость обработки запроса пользователя и время до предоставления ответа. Качество фронтенд-разработки определяет скорость загрузки интерфейса и время, необходимое для перехода веб-интерфейса к готовности для взаимодействия.
Быстродействие бэкенда и хостинга
Основная метрика — время генерации страницы. Это интервал времени, который необходим, чтобы сервер принял запрос, обработал его и сформировал ответ.
В плане используемых платформ наиболее высокие показатели демонстрируют сайты, написанные на базе фреймворков, а сайты на базе CMS обычно чуть более медленные. Однако, во многом скорость работы сайта зависит еще и от уровня квалификации разработчика.
В плане хостинга наиболее быстрыми являются сайты, расположенные на физических выделенных серверах и в облачных системах, затем следуют VPS, а самые низкие показатели демонстрируют сайты на виртуальном хостинге.
Для повышения быстродействия на уровне бэкенда и хостинга производится оптимизация программного кода (ускорение и упрощение обработки данных), настройка кэширования («запоминание» результатов вычислений и их многократное использование) и смена серверного оборудования на более производительное.
Повышение быстродействия благотворно сказывается на устойчивости сайта к высоким нагрузкам — чем быстрее приложению удаётся обработать каждый отдельный запрос, тем больше запросов за единицу времени может быть обработано и тем больше пользователей одновременно может работать с приложением.
Быстродействие фронтенда
Основные метрики — объём передаваемых данных и среднее требуемое время до возможности взаимодействия с интерфейсом.
На уровне фронтенда определяется необходимый объём данных, который требуется загрузить в браузер, чтобы приложением можно было полноценно пользоваться. Здесь важна целесообразность загрузки ресурсов, их минификация и оптимизация, а также настройка клиентского кэширования.
На время до интерактивности влияет как требуемый объём загрузки ресурсов, описанный выше, так и сложность DOM-дерева для отрисовки и ресурсоёмкость клиентских подпрограмм на JavaScript. Упрощение процесса отрисовки и оптимизация JS-скриптов в сочетании с возможностями ленивой загрузки компонентов (или загрузки по требованию) позволяет сократить время, требуемое для готовности клиентской части веб-приложения к взаимодействию с пользователем.
Рекомендации по быстродействию
Нормальным показателем времени генерации сложной страницы сайта является 0.2-0.5 секунд — это показатель достижим на любой коробочной CMS. Если страницы вашего сайта генерируются долго (более 1 секунды), то это может вызывать дискомфорт пользователей и вам стоит рассмотреть варианты оптимизации производительности серверной части.
Если вы только создаёте сайт или новое веб-приложение, то перед стартом проекта сформулируйте перед разработчиками требования к быстродействию системы — для достижения высоких показателей (генерация страниц менее чем за 0.1 секунды) обычно требуется использовать подходящие платформы и особые подходы к архитектуре приложения.
Обязательно оптимизируйте не только время ответа бэкенда приложения, но и клиентскую часть. Не грузите лишнее, используйте минификацию ресурсов и клиентское кэширование. В разработке интерфейсов по возможности используйте отложенную загрузку и загрузку по требованию.
Воспринимаемая пользователями скорость работы — это всегда сумма скоростей работы бэкенда и фронтенда.
Согласно многим исследованиям, быстродействие оказывает существенное влияние на удовлетворённость пользователей и на количество отказов. Это же, в свою очередь, влияет на коммерческую эффективность веб-проекта.
Мы разрабатываем сайты, которые работают по-настоящему быстро: генерация страниц осуществляется за доли секунды, а загрузка сайта даже на медленных каналах занимает не более пары секунд.
Скорость работы веб-приложений очень важна для коммерческих проектов: пользователи не любят ждать и если сайт работает недостаточно быстро, то это их раздражает и они просто уходят. В системах для автоматизации бизнес-процессов показатель скорости работы тоже очень важен — продуктивность работы страдает, если система «зависает» или «тормозит».
Скорость работы веб-приложения — одна из ключевых метрик качества реализации проекта, значительно влияющая на коммерческую эффективность.
Причин для сбоев в работе веб-приложений немало — это и выход из строя серверного оборудования, и сбои программного обеспечения, и аварии на уровне дата-центров.
При этом, действительно серьёзные проекты должны работать без перебоев даже в случае отказа отдельных подсистем. Практически всех рисков можно избежать или минимизировать их последствия при помощи грамотного проектирования как серверной инфраструктуры, так и архитектуры приложения.
Отказоустойчивость — важное свойство для больших и нагруженных систем: если минута простоя обходится к крупную сумму денег, то целесообразно инвестировать в построение отказоустойчивой инфраструктуры и разрабатывать архитектуру ПО в соответствие с принципами отказоустойчивости.