Фронтэнд (frontend) является внешней областью, отвечающей за отображение данных пользователю на экран.

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

Масштабирование фронтэнда

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

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

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

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

Кэширование данных

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