Статья рассматривает главные преимущества статичных сайтов перед динамичными CMS.
Если вы собираетесь завести свой сайт, то наверняка идете по проторенной дорожке - вы сейчас в муках выбора достойной системы управления контентом (CMS). Вы бороздите интернет, читая сравнительные обзоры Drupal и Wordpress, Typo3 и Joomla. Вы пытаетесь понять, какая функциональность вам нужна, с какими проблемами столкнетесь в реальных условиях, потянет ли ваш хостинг ту или иную CMS.
Возможно, вы собираетесь нанять фрилансера или веб-студию, чтобы делегировать эту деятельность им.
В обоих случаях скажу, что ваши усилия, скорее всего, напрасны - вам не нужна никакая система управлениям контентом.
Мой опыт вебмастера
Одному из моих тематических сайтов стукнуло 10 лет. За это время сайт успел поработать на нескольких движках, но еще более CMS я перещупал в качестве потенциальных вариантов. Всегда хочется большего.
Будучи технически довольно подкованным, обожая возиться с линуксом, командной строкой и кодом, я, тем не менее, всегда воспринимал с большим сопротивлением любые технические сложности с моими сайтами. Как пример, обновление на стороне хостера, из-за которого перестал нормально работать PHP. Или сайт открывается через раз, потому что уже не хватает оперативной памяти на сервере. В каждом случае следовала долгая переписка со службой технической поддержки в попытках понять, что делать: менять что-то в своем коде или же переходить на более дорогой план хостинга. Звучит знакомо?
Есть такое понятие - цена возможности. Пока вы бьетесь над техническими проблемами, вы не занимаетесь развитием своего сайта. Время, потраченное на возню с PHP, можно было бы потратить, например, на написание интересной статьи, маркетинг и улучшение интерфейса.
Альтернатива CMS
В последние годы набрали популярность так называемые генераторы статичных сайтов. Их суть в том, что вы создаете контент в формате Markdown или RsT. Затем запускаете генератор и получаете на выходе папку с файлами HTML, которые затем заливаете на сервер. Вуаля, ваш сайт онлайн!
Фишка в том, что вам, по сути, не нужен LAMP стэк. Ведь HTML-файлы можно опубликовать на том же Amazon S3 или Github Pages. Следовательно, отказоустойчивость ваших сайтов значительно повышается.
Есть огромное количество этих генераторов, на любой вкус. Просто пройдите по этим ссылкам с рейтингами, чтобы ознакомиться с лучшими:
Лично я использую Pelican, потому что Python, на котором тот написан, мне близок и понятен.
Преимущества статичных сайтов
Предлагаю рассмотреть главные преимущества статичных сайтов перед динамичными CMS.
Скорость работы
Статичные страницы - это то, с чего начинался интернет. На сервере находятся HTML файлы, которые тот отдает без лишних телодвижений по запросу клиента. Настолько быстро, насколько это только возможно.
В случае динамичных сайтов, которые генерируют тот же самый HTML на лету, на стороне сервера произойдет следующая цепочка действий. Веб-сервер получит запрос, выполнит соответствующий кусок кода (PHP, Python, Perl, Ruby, etc.), который в свою очередь обратится к базе данных и сформирует гипертекстовую страницу, чтобы веб-сервер вернул ее клиенту. Если что-то сломается в этой цепи, то пользователь не получит долгожданную страницу. Так мы переходим к следующему преимуществу.
Надежность
Чем проще система, тем она надежнее. В случае со статичными сайтами нет нужды в дополнительных компонентах, таких как пресловутые PHP и MySQL. Если ваш сайт вырастет в будущем, вам не нужно будет беспокоиться о смене тарифного плана из-за разросшейся базы данных. И сайт не начнет открываться через раз, потому что PHP начал отъедать много памяти. Вам не нужно будет бояться каждого обновления на стороне хостера и неприятных сюрпризов.
Безопасность
Как следствие простоты решения, оно также практически свободно от проблем с безопасностью. В то время как интернет буквально кишит новостями о найденных уязвимостях динамических CMS. На минуточку, 79% всех сайтов на основе Wordpress уязвимы для известных «иксплоитов». Статичные сайты, напротив, не боятся разного рода SQL-инъекций и попыток хакеров найти уязвимости в коде веб-приложений. Вам не нужно заботиться об установке патчей безопасности.
Дешевизна хостинга
Чтобы хостить статичные сайты вам не нужен дорогой хостинг. Github Pages, к примеру, дает возможность бесплатно размещать статичные страницы. Amazon S3 будет стоить от 30 центов до нескольких долларов в месяц в зависимости от трафика. Если вы клиент DigitalOcean, то вам хватит и минимального тарифного плана стоимостью $5 в месяц.
Легкое резервное копирование
Исходные файлы (текст, картинки, шаблон) статичного сайта весьма удобно хранить в каком-нибудь git-репозитории, где отслеживаются все когда-либо сделанные изменения. Если придется поменять хостинг - а такое не раз случается в жизни каждого вембастера - перенос сайта не составит труда. Достаточно залить папки с HTML-файлами на новый сервер. Никаких вам дампа базы данных и последующего воссоздания, настройки PHP и MySQL.
Недостатки
Было бы нечестно распевать дифирамбы в сторону статичных сайтов, умолчав о недостатках подобных решений.
В первую очередь, статичные сайты - не для всех. Если у вас сайт обновляется каждую минуту, то, скорее всего, вам лучше воспользоваться динамичным решением. Генерация статичных страниц будет помехой на пути к скорости обновления.
Или, скажем, электронный магазин, в котором вам нужен бэкенд со статистикой заказов, массовым обновлением товаров и информацией об остатках на складе. Реализовать такой с помощью генераторов статичных сайтов, конечно, можно, но игра не будет стоить свеч по причине навороченной сложности, которая нивелирует вышеназванные преимущества.
Наконец, по моему мнению, самое большое препятствие, мешающее широкому распространению статичных сайтов, это нетривиальные требования к техническому бэкграунду вебмастера. Работа из командной строки, редактирование в маркдауне и копирование файлов на сервер требуют наличия определенных навыков. В то время как старт в том же Вордпрессе, который можно поставить автоматически почти на любом хостинге, освоит и пользователь, не видевший ничего кроме ВКонтакте.
Резюме
Нынешняя ситуация с засильем CMS, используемых по поводу и без, выражается в негативном опыте как пользователей, так и вебмастеров. Поэтому чем больше в интернете появится сайтов, созданных с помощью генераторов статичных сайтов, тем надежнее, быстрее и разнообразнее он будет.
Успехов!