Назад | Перейти на главную страницу

Как использовать облако для размещения веб-сайтов?

В настоящее время для размещения веб-сайтов мы используем специальные Linux-серверы, размещенные в Великобритании. Но управлять ими - кошмар, резервное копирование, огромные нагрузки, простои и т. Д.

Я изучал OpenStack, разработанный RackSpace. Можно ли будет использовать облачную платформу, которую мы размещаем на наших серверах, для размещения веб-сайтов?

Я понимаю, что облачная платформа позволяет расширить вашу инфраструктуру, а это именно то, что нам нужно. Но как использовать его для запуска MySQL и Apache? В основном для сайтов Wordpress?

Изменить: сайты - это обычные сайты Wordpress, использующие стандартный стек LAMP.

Большинство «облачных» провайдеров предоставляют вам IaaS. Это означает, что вы получаете набор виртуальных машин, которыми вы можете управлять по своему желанию. Короче говоря, это всего лишь VPS-сервисы с добавленным API для создания новых серверов, когда вы хотите. Иногда вы можете связать этот API с некоторыми простыми показателями (загрузка процессора, трафик и т. Д.), Что немного упростит задачу.

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

Первые шаги:

  • веб-приложение "ничего не поделено": убедитесь, что все страницы максимально не имеют состояния. Любое постоянство между HTTP-запросами должно храниться нелокально. Изначально это означает, что все «критическое» должно поступать в базу данных, а все некритическое - в нечто вроде memcached.

  • балансировщик нагрузки, отказоустойчивый распределитель. Либо предоставленный хостингом, либо ваш собственный (HAProxy, varnish, NginX), работающий перед вашими приложениями (не забудьте также сделать его избыточным).

  • реплицируемая база данных. например, MySQL в главном / подчиненном устройстве и некоторый механизм аварийного переключения, который переносит «плавающий» IP-адрес в подчиненное устройство в случае отказа главного устройства. или мастер / мастер, который также может дать вам дополнительную пропускную способность за счет задержки. Amazon также предоставляет MySQL-совместимую базу данных со всей необходимой избыточностью. Или пойти на что-нибудь совсем другое, например, риак, кассандру ... на самом деле, это самая сложная часть; но просто репликация MySQL на двух больших экземплярах имеет большое значение; особенно если вы разбираетесь в уровне кеширования.

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

Некоторые из них поддерживают PHP:

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

В облаке можно делать довольно много вещей. Я подробно расскажу о том, что поддерживает мой провайдер. Я использую линод (http://www.linode.com/), который имеет шесть центров обработки данных по всему миру (включая один в Лондоне). Они отличные, по доступной цене, имеют большой набор функций и очень быстро обрабатывают заявки в службу поддержки. «Линод» - это виртуальная машина, которую вы покупаете (их терминология).

Облачная инфраструктура Linode поддерживает предоставление и отключение «Linodes» на лету. Это означает, что если вам нужна машина, с которой можно поиграть час / день / неделю / месяц / год, вы платите только за то, что используете.

Linode поддерживает так называемые StackScripts, которые позволяют автоматизировать процесс подготовки сервера. Я не знаю подробностей, но AFAIk вы можете указать ОС, схему диска, подкачку в файлах конфигурации и т. Д.

Linode также имеет обширный API для выставления счетов, предоставления услуг и т. Д.

Linode также поддерживает балансировку нагрузки в форме NodeBalancer.

Эти четыре связанные вместе функции позволяют вам настроить что-то вроде следующего:

Вы говорите, что Linode для Интернета «материал», такой как Apache / PHP и Linode для MySQL. Если у вас все настроено правильно, у вас могут быть сценарии, которые отслеживают использование ресурсов на ваших машинах и автоматически покупают, выделяют, загружают и добавляют их в кластер MySQL или NodeBalancer. Это означает, что если вы получите огромный всплеск трафика (скажем, у вас есть косая черта), вы автоматически масштабируете все, что вам нужно, для удовлетворения требований к трафику / обработке / пропускной способности / любым требованиям. У вас будет кластер MySQL, который реплицируется взад и вперед, сохраняя синхронизацию любого количества серверов MySQL, тогда у вас будет куча веб-серверов, уравновешивающих нагрузку PHP.

Linode также обеспечивает некоторую избыточность в том, что касается аварийного переключения IP, а также пула полосы пропускания, IPv6 и т. Д. Я также хотел бы сказать, что я никоим образом не связан с Linode, просто довольный клиент.