Причина популярности генераторов статических сайтов SSG кроется в ограничениях обычных CMS

В мире разработки появляется новая тенденция — генераторы статических сайтов (SSG). В течение многих лет разработка, публикация и редактирование контента на веб-сайте требовали знания HTML, что делало эти процессы недоступными для обычного пользователя. Так появились системы управления контентом (CMS), такие как WordPress, Joomla, Drupal и другие, которые облегчили проблему обращения к технической поддержке для изменения веб-контента.

Удобные и простые в использовании CMS позволяют нетехническим пользователям управлять собственным контентом в Интернете и контролировать дизайн и отображение сайта.

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

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

Что такое статический сайт?

Веб-сайты обычно можно разделить на две категории – статические и динамические.

Статический веб-сайт значит статический, фиксированный, постоянный. То есть он разрабатывается, хранится на сервере и доставляется в веб-браузер пользователя как есть. Сайт не меняется между моментом, когда разработчик нажимает кнопку «Сохранить», и моментом, когда конечный пользователь нажимает на нее. Разработчики создают контент с помощью HTML, форматируют его с помощью CSS и загружают статическую страницу на сервер, где она остается неизменной и готовой к доступу по запросу браузера.

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

Проблемы с веб-сайтами на базе обычных CMS

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

Во-первых, по мере роста их популярности они стали объектами кибератак. Программное обеспечение и плагины CMS уязвимы для огромного количества известных уязвимостей безопасности. WP WhiteSecurity обнаруживает, например, 2500 уязвимостей ядра, плагинов и тем WordPress, с которыми пользователям приходится постоянно бороться — и их число постоянно растет. ITPRO сообщает, что 90% взломанных сайтов CMS в 2018 году работали на WordPress, хотя сайты, работающие на других системах CMS, включая Drupal и Joomla, также содержат уязвимости.

И проблема не только в безопасности. Производительность сайтов CMS также может снизиться из-за того, что сервер выполняет больше работы. Каждую страницу необходимо собирать из шаблонов и контента каждый раз, когда отправляется запрос. Это очень медленный способ делать что-то. Для каждого пользователя, посещающего сайт, PHP-код, работающий на сервере, должен запуститься, взаимодействовать с базой данных, создать HTTP-ответ на основе восстановленных данных, передать его обратно на веб-сервер, который затем возвращает HTML-файл в браузер пользователя для интерпретации содержимого для отображения.

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

К счастью, есть другой способ.

Генераторы статических сайтов

Генератор статических сайтов — это, по сути, набор инструментов для создания статических страниц на основе набора входных файлов. Они представляют собой инструменты публикации, мало чем отличающиеся от таких вещей, как Adobe Acrobat, который принимает редактируемый формат, например файл Microsoft Word, и преобразует его в удобный для использования формат, например PDF.

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

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

Повышенная безопасность SSG

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

Кроме того, такие платформы, как WordPress, которыми пользуются миллионы людей по всему миру, естественным образом стали обычными целями для злоумышленников. Существуют буквально сотни инструментов, которые киберпреступник может легко загрузить и запустить чтобы автоматически скомпрометировать сайты на распространённых платформах WordPress, Drupal и Joomla. Хакеры заранее прорабатывают и используют все известные уязвимости в каждой системе CMS (и ее плагинах) и дыры в безопасности. Таким образом, администраторам сайтов необходимо постоянно обновлять свои системы обновлениями безопасности,играя в кошки-мышки, чтобы гарантировать, что хакеры не смогут ими воспользоваться.

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

Сокращение затрат и повышение надежности

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

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

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

Контроль версий

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

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

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

Когда оптимально использовать генератор статических сайтов?

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

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

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

Здесь мы говорим о чем-то под названием JAMstack, который представляет собой современную архитектуру веб-разработки, основанную на клиентском JavaScript, API и разметке (JAM).

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

Для этого сначала необходимо выбрать наиболее подходящий генератор статического сайта, исходя из потребностей проекта (например, количества страниц продукта) и требований разработчика. Существует множество генераторов статических сайтов на выбор, и действительно, существует SSG для большинства языков программирования: для JavaScript есть Next и Gatsby, для Go — Hugo и InkPaper, а для Ruby — Jekyll и Middleman, и это лишь малая часть примеров.

Далее вам нужно будет выбрать «безголовую Headless CMS», также известную как «JAMstack CMS». Они используют интерфейс CMS для администрирования контента, но также позволяют другим системам получать доступ к данным через REST API и, таким образом, могут доставлять динамический контент там, где это необходимо.

Наконец, вам нужно будет добавить в смесь слой коммерции, который позволит вам легко интегрировать цены, запасы, кассы и учетные записи клиентов через API.

Теперь у вас есть JAMStack для электронной коммерции, готовый к созданию и развертыванию.

Статических сайтов становится все больше

Действительно, они есть – и не только для электронной коммерции. Smashing Magazine, например, перенес свой веб-сайт с WordPress (который уже был хорошо оптимизирован) на генератор статических сайтов и стал работать в 10 раз быстрее.

Интерес к генераторам статических сайтов быстро растет. Netlify — компания облачных вычислений из Сан-Франциско, предлагающая хостинг и бессерверные серверные услуги для статических веб-сайтов — каждый год сообщает о текущем состоянии ландшафта SSG, публикуя пост о десяти наиболее популярных решениях. Данные, собранные в результате активности GitHub (сколько звезд GitHub получает каждый SSG), говорят, что в последние годы эта категория набирает обороты, поскольку статические сайты набирают популярность.

Большая часть недавнего всплеска популярности SSG связана с тем, что эти технологии гораздо более удобны для работы с разработчиками, а CMS быстро выходят из моды. Согласно результатам опроса разработчиков Stack Overflow за 2019 год, WordPress является самой ужасной платформой разработки (59,5%), а Drupal — самой страшной веб-платформой (69,9%).

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

Когда использование генераторов статических сайтов — не лучший вариант

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

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

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

И вот еще один камень преткновения — сообщество генераторов статических сайтов все еще относительно новое и, следовательно, невелико по сравнению, скажем, с огромным количеством существующей поддержки WordPress.

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

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

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

Выводы о теме SSG

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

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

Источник

Курирование и адаптация: Онтограф

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

Оцените автора
Онтограф
Добавить комментарий