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

Как я могу динамически масштабировать облачные серверы для предоставления услуги хостинга по запросу?

Я заинтересован в использовании Rackspace Cloud Servers API для создания динамически масштабируемой службы хостинга. API облачных серверов позволяет мне программно добавлять и удалять экземпляры серверов.

Системные Требования

В большинстве случаев будет один общий сервер, но это также может быть выделенный сервер, и при превышении пропускной способности определенной цели будет подготовлен новый сервер с репликацией или восстановлением веб-каталогов откуда-то (можно использовать Cloud Files или svn, git и т. д.). Можно использовать марионетку или какой-то настраиваемый скрипт для файлов конфигурации.

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


Если кто-то уже развернул такую ​​систему или может оказать в этом некоторую помощь, мы будем очень признательны!

Ключевые вопросы:

1. Как я могу определить использование полосы пропускания в нескольких экземплярах?

2. Как мне избежать проблем с кешированием DNS, когда данный сервер работает только час (могу ли я использовать здесь прокси-сервер)?

3. Как лучше всего обеспечить быстрое развертывание файлов на каждом вновь развернутом сервере?

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

Я использую Amazon EC2, но эти рекомендации могут относиться к Rackspace или другим поставщикам:

  1. Как я могу определить использование полосы пропускания в нескольких экземплярах? Метрики, я бы рекомендовал настроить сервер мониторинга с Cacti, Ganglia и Nagios для измерения пропускной способности, ЦП, памяти и т. Д.

  2. Как избежать проблем с кешированием DNS, если данный сервер работает только час (могу ли я использовать здесь прокси-сервер)? Поставьте балансировку нагрузки за прокси-серверами. Если у вашего провайдера нет собственного решения, вы можете использовать HAproxy или nginx для балансировки нагрузки.

  3. Как лучше всего обеспечить быстрое развертывание файлов на каждом вновь развернутом сервере? Я использую rsync и работает нормально, но все же ищу другие решения.

  4. Используя такой динамический кластер, как я могу поддерживать FTP (я предпочитаю не использовать FTP, но для некоторых проектов это может потребоваться). Ваш провайдер должен предложить способ создания списков доступа для IP-адресов и портов (Amazon позволяет создавать ACL через их API).