7 причин использовать генератор статических сайтов

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

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

Вспомните свой первый сайт. Большинство разработчиков начинали с создания нескольких простых HTML страничек. Каждая такая страница могла содержать в себе изображения, CSS и возможно JavaScript. Возможно вы даже открывали эти файлы прямо из файловой системе, без веб-сервера. Жизнь была прекрасна.

Трудности начинаются, когда ваш сайт становится больше и сложнее. Рассмотрим на примере меню (навигации): оно может быть в каждом файле, и при добавлении новой страницы нужно будет обновлять все файлы, которые содержат меню. Даже ссылки на изображения и CSS могут стать битыми, когда папок на сайте становится больше. Возможно вы рассматривали варианты, такие как server-side с или без PHP, но более простым вариантом может быть CMS…

Что такое CMS?

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

  • Определяет какая страница нужна;
  • Запрашивает соответствующие содержимое из базы данных;
  • Загружает HTML шаблон (как правило, из файловой системы);
  • Оформляет содержимое, согласно шаблону;
  • Возвращает отформатированную HTML страницу в браузер посетителя;

Все это происходит практически мгновенно. Шаблоны могут включать в себя код для создания меню, различные блоки, подключение стилей и т.д. Жизнь опять прекрасна, и почти каждый четвертый человек выбирает для управления своим сайтом WordPress, построенный на связке PHP+MySQL.

К сожалению, с CMS возникает ряд других проблем:

  • Вам необходимо придерживаться CMS way при работе с сайтом. Это может быть неудобно при добавлении пользовательского текста или компонентов;
  • При каждом запросе, серверу нужно генерировать страницы, разумеется это влияет на производительность;
  • Появляется больше так называемых «точек отказа». Обновление CMS и сбой базы данных, может уронить ваш сайт.

Что такое генератор статических сайтов?

SSG (Static Site Generator) — представляет собой компромисс между использованием вручную написанного сайта и CMS, сохраняя при этом преимущества обоих вариантов. По сути вы создаете сайт состоящий только из HTML файлов, с помощью CMS-подобной концепции, такой как шаблоны. Контент для сайта можно доставать из базы данных, но как правило используются Markdown файлы.

Генерировать сайт можно на вашем компьютере или промежуточном сервере, а после чего разворачивать полученные HTML файлы на production сервере. Пользователь не увидит разницы.

Одни из самых популярных SSG это Jekyll, Pelican, Hugo and Metalsmith. На StaticGen можете посмотреть еще больше различных генераторов. Давайте посмотрим на преимущества использования SSG.

1. Гибкость

CMS обычно ограничивает ваши возможности, потому что у они привязаны к конкретным полям в базе данных. Если вы, например, захотите добавить виджет Twitter на некоторых страницах, то вам потребуется плагин, модуль, shortcode или что-то еще.

В статическом сайте, вы можете вставить виджет непосредственно в файл в виде фрагмента кода.

2. Высокая производительность

Некоторые CMS предлагают встроенные (или в виде плагинов) системы кэширования, чтобы генерировать страницы и по возможности использовать их повторно. Это эффективно, но overhead все же остается при проверке файлов кэша и повторной генерации страниц.

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

3. Меньше Server-side зависимостей

Для того чтобы установить WordPress, нужно:

  • Совместимую операционную систему, например, Ubuntu или CentOS
  • Веб-сервер, например, Apache или NGINX;
  • PHP с необходимыми расширениями;
  • MySQL;
  • Собственно, сам WordPress;
  • Шаблон (Тема);

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

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

4. Более надежный

CMS сложная, с большим количеством перемещаемых частей и «точек отказа». Запуская WordPress сайт, не важно сколько времени он у вас проработал, вы наверняка сталкивались с ужасной ошибкой «Failed to establish a database connection». Непредвиденные проблемы в CMS могут возникнуть в результате внезапного скачка трафика, из-за чего может вылететь база данных или разорвать активные соединения.

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

5. Безопасность

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

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

У статического сайта очень мало функциональности на стороне сервера, или ее вообще нет. Вы не можете получить доступ с помощью скриптов или дыр в безопасности базы данных. У кого-то возможно получиться получить доступ с помощью SSH или FTP, но им придется постараться чтобы принести вред существенней чем порча страниц или загрузка файлов. Быстрая команда git status, ну а на крайний случай простая проверка папки, поможет быстро выявить следы несанкционированного доступа. Вам нужно будет просто изменить пароли, удалить полностью весь сайт и восстановить страницы заново.

6. Вопросы по управлению контентом

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

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

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

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

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

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

Комментарии

Добавить комментарий