Перенесите свой сайт WordPress на облачную платформу
Опубликовано: 2020-06-05Основанная на PHP и MySQL, всемирно известная CMS WordPress уже более двух десятилетий поддерживает все, от личных блогов до веб-сайтов с высокой посещаемостью. Однако с момента его создания и первого выпуска в 2003 году его создатели не создавали его с учетом современных гибких и масштабируемых облачных инфраструктур. Кто мог предсказать, как до сих пор развивались технологии?
К счастью, с расширением сообщества WordPress и более поздним выпуском более зрелых версий WordPress его возможности значительно расширились. В конечном счете, теперь у нас есть сценарии, в которых можно построить инфраструктуру WordPress, которая соответствующим образом использует облачные серверы и инфраструктуры.
В этом блоге мы будем исследовать отношения между WordPress и облачными серверами, а также когда их следует использовать в сочетании. В целях контекста мы обеспечим подробное рассмотрение концепций, относящихся к этой теме. Итак, без лишних слов, давайте углубимся!
Что такое облако?
Вкратце и с точки зрения непрофессионала, облако — это повсеместное средство предоставления ИТ-услуг и ресурсов через Интернет, поэтому к ним можно получить доступ по запросу или с оплатой по мере использования. Таким образом, в основном облачные серверы действуют как удобные «единицы хранения» в Интернете, отсюда и название «облако». Это может быть самый упрощенный ответ, который я когда-либо давал в отношении облака, в любом случае, идем дальше!
При этом существует множество поставщиков облачных услуг, хотя наиболее заметными из них являются Amazon Web Services (с наибольшей долей рынка), за которыми следуют Microsoft Azure и Google Cloud. Этих троих иногда называют «гипермасштабаторами», хотя существуют и другие поставщики общедоступных облаков, такие как AlibabaCloud, DigitalOcean, IBM Cloud и Linode. Справедливости ради следует отметить, что некоторые поставщики общедоступных облачных сервисов также предлагают стандартные услуги хостинга (например, виртуальный хостинг WordPress), а другие — нет. Но мы углубимся в это позже.
Прелесть облака в том, что оно значительно уравнивает правила игры для малого бизнеса. Это достигается за счет предоставления им доступа к современным онлайн-ресурсам, которые ранее были доступны только более крупным игрокам. И все это без необходимости огромных капитальных вложений, включая покупку оборудования, настройку дорогостоящих центров обработки данных и найм ИТ-отдела для обслуживания на полный рабочий день.
По большей части большинство поставщиков облачных услуг также предлагают модель оплаты по мере использования с управляемыми услугами, такими как услуги автоматического масштабирования и управления базами данных и т. д. Таким образом, это очень привлекательно для многих компаний, которые не намерены или не могут позволить себе инвестировать в полноценную ИТ-инфраструктуру. По сути, это позволяет им сосредоточиться на своем основном бизнесе и позволить поставщику облачных услуг заниматься техническими вопросами.
Облако предоставляет доступ к множеству преимуществ; тем не менее, заметными преимуществами являются:
- Он предлагает повсеместную сервис-ориентированную архитектуру, доступную в любой точке мира.
- Он обеспечивает удобное и гибкое вычисление
- Доступны различные уровни услуг по запросу.
- Обеспечивает снижение совокупной стоимости владения
- Обеспечивает снижение накладных расходов на информационные технологии

Типы облачных сервисов
Как правило, поставщики общедоступного облака предлагают свои услуги по трем вертикалям, а именно: инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и программное обеспечение как услуга (SaaS). Для контекста давайте суммируем различия между всеми этими типами услуг и что каждый из них влечет за собой, не так ли?
- IaaS: инфраструктура как услуга предлагает пользователям различные облачные инфраструктуры, такие как виртуальные вычисления, операционные системы, очереди, хранилище, виртуальные локальные сети, балансировщики нагрузки и другие. Этот тип облачной вертикали требует глубоких технических знаний для развертывания и эксплуатации приложения. Например, для каждого компонента требуется техническое управление, чтобы инициировать масштабирование вверх или вниз или выполнять балансировку нагрузки.
- PaaS. С другой стороны, модель «Платформа как услуга» предоставляет больше управляемых услуг. В основном это означает, что ответственность за обновления программного обеспечения и исправления в первую очередь лежит на поставщике облачных услуг. Кроме того, с PaaS специфические для инфраструктуры операции, управляемые самим облаком, такие как масштабирование, резервное копирование, репликация данных, выполняются прозрачно.
- SaaS: Возможно, наиболее известной из всех этих вертикалей является модель «Программное обеспечение как услуга», которая предоставляет полнофункциональное программное обеспечение, управляемое в облаке. Модель SaaS может охватывать как компоненты IaaS, так и приложения PaaS или использовать любую из двух вертикалей по отдельности.

В конечном счете, несмотря на все рассмотренные выше модели, границы между облачными платформами быстро становятся тоньше, поскольку все больше поставщиков используют больше смешанных услуг, которые могут относиться либо к IaaS, либо к PaaS. Например, Amazon Web Services начинала с предложений IaaS (EC2, SQS и S3), а затем постепенно добавляла компоненты PaaS (реляционные базы данных и нереляционные базы данных). Для сравнения, Microsoft Azure расширяет как компоненты PaaS (веб-сайты Azure и базу данных SQL), так и IaaS (виртуальные машины и хранилище).

Когда самое подходящее время для миграции в облако?
Несмотря на это и без сомнения, большинство программных приложений можно так или иначе размещать на «гиперскейлерах». Однако всегда стоял вопрос – оправдано ли это, будет ли это излишним, может быть, излишним или приведет в некоторых случаях к недоиспользованию ресурсов.
При этом стоит отметить, что определенные приложения отлично подходят для облака из-за их острой потребности в определенных облачных возможностях. Например, им может понадобиться комбинация кодировщиков, CDN, реляционных баз данных или возможность автоматического масштабирования ресурсов. Как бы то ни было, бывают случаи, когда другие приложения просто переносятся в облако и не могут полностью использовать все его ресурсы. Что в любом случае не является преступлением.
Какие типы приложений WordPress идеально подходят для миграции в облако?
Поскольку мы установили, что облако может работать с любым удаленным вычислительным приложением, в какой бы емкости оно ни использовалось. Наше предостережение остается в силе, поскольку мы подчеркнули, что, тем не менее, не каждое приложение подходит для облака. Итак, какие типы приложений WordPress подходят для облака?

1. Приложения с периодическими и требовательными потребностями в обработке
Вообще говоря, такие приложения обычно выполняют очень ресурсоемкие операции, такие как функции пакетного анализа различных форм данных. Такие функции пакетного анализа могут принимать различные формы, включая: преобразование файлов из одного формата в другой, семантический анализ текста, классификацию данных, создание отчетов, индексацию текста, кластеризацию данных или даже обучение нейронной сети для машинного обучения и т. д.
Таким образом, поскольку эти операции, как правило, предсказуемы во времени, они в конечном итоге требуют значительной вычислительной мощности, которую предлагают поставщики гипермасштабируемых облачных вычислений. Это связано с тем, что поставщики общедоступных облаков всегда имеют самое современное оборудование для удовлетворения таких больших потребностей. Таким образом, по сути, для малых предприятий с такими приложениями облако помогает им обойти такие тяжелые и ненужные инвестиции в оборудование (которые иногда могут быть реакционными инвестициями).
Кроме того, организация может выбрать дальнейшее ускорение своих возможностей пакетной обработки с помощью облака , чтобы завершить работу быстрее, например, менее чем за час, а не за 3 или 4 часа. Это вполне управляемо в облачной среде, поскольку администраторы могут просто раскрутить еще несколько вычислительных блоков. Принимая во внимание, что на стандартном хостинге WordPress такое осуществление было бы довольно сложным из-за аппаратных ограничений.
2. Приложения, требующие высокой доступности (HA) и масштабируемости.
По сути, у нас есть две категории для рассмотрения. Первая категория — это приложения, которые хотят предоставлять услуги HA (высокой доступности) своим конечным пользователям. Затем у нас есть приложения, которые ожидают увеличения их использования или планируют расширить свои услуги для большей пользовательской базы.
Настройка высокой доступности означает, что у приложения нет единой точки отказа (SPOF). Обычно это достигается путем добавления избыточности к каждой конечной точке, компоненту или службе приложения. Кроме того, эта установка, естественно, предполагает, что для достижения высокой доступности требуется больше оборудования и механизмов, таких как автоматические процессы аварийного переключения, балансировка нагрузки и мониторинг.
Вторая категория касается приложений, которые намерены увеличить свою пользовательскую базу (и имеют гибкую масштабируемость). Например, они могут планировать расширить предложение своих продуктов/услуг; или рассчитывайте позже выйти на новые рынки. Таким образом, это означает необходимость значительного обновления облака и подходящего уровня управления поверх него, чтобы заставить его работать.

3. Приложения с непредсказуемыми пиками использования
Такие приложения обычно часто взаимодействуют с пользователями через интернет-магазины, сайты продуктов, популярные блоги и т. д. Таким образом, такие веб-сервисы обычно имеют предсказуемую и постоянную пользовательскую базу, однако в некоторых случаях они могут случайным образом привлечь очень большое количество пользователей. . Например, всплески могут возникать, если на них ссылаются на популярной веб-странице или если связанное с ними видео становится вирусным. Или, может быть, после того, как маркетинговая кампания станет более успешной, чем предполагалось изначально, благодаря купонам и промо-кодам.
Таким образом, облачная миграция может быть идеальной, если вы не можете предсказать потенциальный объем входящего трафика или точные сроки, когда это произойдет. Такие владельцы веб-сайтов, как правило, точно предвидят всплеск трафика, но не знают, сколько он будет и как он будет распределяться.
Подробнее: 11 эффективных способов масштабирования вашего сайта WordPress для высокой посещаемости
Таким образом, для таких сценариев реактивное или экстренное приобретение оборудования не стоит затрат из-за фрагментарного использования, которое может привести к тому, что большое количество оборудования останется неиспользованным в зависимости от сезона. В таких сценариях все, кроме облачной реализации, было бы безрассудным.
4. Приложения, требующие различных сред тестирования
Мало кто знает, что пользователи могут использовать облако для запуска тестовой среды. Такие среды тестирования могут быть постоянными или временными, когда необходимо выполнить определенный набор тестов, таких как тестирование безопасности или нагрузочное тестирование.
Таким образом, в основном для создания таких сред тестирования потребуется высококлассное оборудование, а стоимость приобретения оборудования для тестирования безопасности и нагрузочного тестирования может быть довольно высокой. В основном это связано с тем, что эти тесты необходимо проводить несколько раз в год, и для достижения их цели требуется полноценная производственная установка. Вот почему покупка совершенно нового оборудования для такого тестирования может оказаться неэффективным или избыточным действием с точки зрения затрат. Вот где облако становится вариантом.
Итак, подводя итоги, можно сказать, что основными факторами, влияющими на внедрение облачных технологий, являются: база пользователей, схема использования, требования к отказоустойчивости и требования к тестированию. Конечно, большее количество факторов оправдывает кандидатуру приложения для облака, но эти четыре фактора обычно выделяются.
Использование облачных платформ с WordPress
Большинство приложений WordPress используют стандартный хостинг, однако растет число пользователей WordPress, которые предпочитают запускать свои веб-сайты на таких платформах, как облако AWS и Google Cloud.
Это показывает, что все больше владельцев веб-сайтов обеспокоены тем, как создать веб-сайт, который будет соответствующим образом масштабироваться. Например, он должен быть в состоянии обслуживать колеблющееся количество посетителей и быть достаточно гибким, чтобы обеспечивать быстрое и простое обновление контента, оставаясь при этом отказоустойчивым. Этот последний пункт важен, так как дает владельцам уверенность в том, что даже если что-то сломается, веб-сайт по-прежнему сможет адекватно выполнять свои функции.
Итак, для дополнительного контекста, типичный хостинг WordPress — это управляемая услуга, по сути, программное обеспечение как услуга (SaaS). В то время как миграция в общедоступное облако представляет собой установку платформы как услуги (PaaS). По сути, установка WordPress с использованием PaaS переносит обслуживание инфраструктуры, резервное копирование, репликацию и доступность на поставщика облачных услуг.
Управление облачным сервером может быть сложным
Настроить или подготовить серверную среду нелегко, если только вы не обладаете знаниями или экспертом. Это влечет за собой знание того, как управлять вашими облачными экземплярами, в то же время создавая уровень протоколов безопасности, который обеспечивает защиту ваших облачных экземпляров.
С одной стороны, такие установки могут потребовать от вас навыков работы с командами Linux, поскольку серверы AWS по умолчанию не поставляются с графическим пользовательским интерфейсом для работы. Таким образом, способность использовать CLI является обязательной, что может быть проблемой для тех, у кого ограниченные знания на стороне сервера.
Тем не менее, некоторые облачные провайдеры предоставляют ресурсы, которые помогут облегчить проблемы с управлением сервером, чтобы вы могли сосредоточиться на своих веб-сайтах WordPress. Эти же инструменты внимательно следят за безопасностью вашего сервера, чтобы защитить ваш сайт от кибератак. Такие решения могут предложить пользователям возможность интегрировать SSL, создавать промежуточные сайты, выполнять клонирование веб-сайтов и управлять заданиями cron всего за несколько кликов.
Планирование миграции WordPress в облако
После того, как вы решили перенести свое приложение WordPress в облако, важно определить подходящий архитектурный план, выбрать надежного поставщика облачных услуг, уточнить архитектуру вашего приложения, протестировать настройку и затем выпустить.
Определение плана вашей архитектуры позволяет вам в основном определить независимые и масштабируемые части вашего приложения WordPress. Во-вторых, при выборе поставщика облачных услуг убедитесь, что вы выбрали наилучшее решение с учетом таких факторов, как возможности базы данных. Например, база данных SQL Server может хорошо подходить для базы данных SQL Azure или AWS RDS, а база данных MySQL также может хорошо подходить для AWS RDS.
Кроме того, поставщик облачных услуг может повлиять на окончательную архитектуру вашего приложения. Кроме того, при тестировании установки всегда учитывайте данные реального размера, поэтому стремитесь создать полную копию производственных данных, которая в основном включает данные базы данных и пользовательский контент.
Расходы
Первоначальные общие затраты для каждого поставщика облачных услуг также должны быть тщательно рассчитаны. Поскольку у большинства поставщиков облачных услуг есть онлайн-калькуляторы цен, вы можете их использовать. Кроме того, обратите внимание на такие аспекты, как вычислительные часы, пропускная способность и хранилище, а также такие показатели, как количество запросов GET для доступа к определенному объектному хранилищу и часам балансировки нагрузки и т. д.
Рекомендации по установке WordPress на облачных серверах
1. Обязательно используйте сеть доставки контента (CDN)
Помните, что большинство приложений WordPress содержат как статический, так и динамический контент. Статическое содержимое — это изображения, файлы JavaScript или таблицы стилей. В то время как динамический контент — это все, что создается на стороне сервера и использует PHP-код WordPress. Например, элементы, сгенерированные из базы данных или персонализированные для каждого зрителя.
Поскольку сетевая задержка важна для конечного пользователя, крайне важно использовать CDN, поскольку они помогают устранить сетевую задержку, позволяя последовательно доставлять контент пользователям по всему миру.
Таким образом, поскольку пользователи, как правило, географически разбросаны по всему миру, CDN существенно помогают ускорить распространение контента с низкой задержкой и высокой скоростью передачи данных по всему миру.
Подробнее: Советы по повышению скорости веб-сайта WordPress
2. Кэширование базы данных
Кэширование базы данных может значительно уменьшить задержку и увеличить пропускную способность таких приложений, как WordPress. Это достигается за счет сохранения часто используемых фрагментов данных в памяти для доступа с малой задержкой, таких как результаты запросов к базе данных с интенсивным вводом-выводом. Таким образом, это означает, что когда большой процент запросов обслуживается из кеша, количество запросов, которые должны попасть в базу данных, уменьшается. Следовательно, это приводит к снижению затрат, связанных с запуском базы данных.
3. Веб-уровень без сохранения состояния
По сути, приложение без сохранения состояния не обращает внимания на предыдущие взаимодействия и не хранит информацию о сеансе. А для WordPress это означает, что все конечные пользователи получают одинаковый ответ, независимо от того, какой веб-сервер обработал их запрос.
Таким образом, чтобы использовать несколько веб-серверов в конфигурации с автоматическим масштабированием, ваш веб-уровень не должен сохранять состояние. Кроме того, приложения без сохранения состояния могут масштабироваться горизонтально, поскольку любой запрос может быть обслужен любым из доступных вычислительных ресурсов (которые мы называем «экземплярами веб-сервера»).
Однако по умолчанию WordPress хранит загрузки пользователей в локальной файловой системе и, таким образом, не имеет состояния. Поэтому важно переместить вашу установку WordPress и все пользовательские настройки, плагины, темы и пользовательские загрузки в общую облачную платформу данных, чтобы помочь снизить нагрузку на веб-серверы и сделать веб-уровень без сохранения состояния.
Подробнее: Безопасны ли плагины WordPress?
Для этого вы можете использовать стороннее хранилище для хранения сессий PHP. Это может быть либо простое хранилище ключей-значений, либо сама база данных. Все основные поставщики облачных услуг предлагают хранилища типа «ключ-значение», такие как Azure Tables или AWS DynamoDB, и они должны быть высокодоступными и доступными для всех компонентов приложения, которые взаимодействуют с данными сеанса.
Последние мысли.
В заключение можно сказать, что облачные вычисления стали более распространенной формой управления данными благодаря своей непревзойденной способности обеспечивать повышенную экономию за счет масштаба, безопасность данных, совместимость, легкий доступ и энергоэффективность. Это существенно меняет способы, которыми мы управляем, распределяем и потребляем вычислительные ресурсы, ресурсы хранения и сети во всем мире.
Таким образом, WordPress и облачные серверы в первую очередь могут эффективно сочетаться, если вы ожидаете высоких всплесков трафика, если вам требуется высокая доступность, если у вас есть неожиданные требования к масштабируемости, есть потребности в динамической обработке и если вам требуется уникальная среда тестирования.