Я заинтересован в использовании Rackspace Cloud Servers API для создания динамически масштабируемой службы хостинга. API облачных серверов позволяет мне программно добавлять и удалять экземпляры серверов.
В большинстве случаев будет один общий сервер, но это также может быть выделенный сервер, и при превышении пропускной способности определенной цели будет подготовлен новый сервер с репликацией или восстановлением веб-каталогов откуда-то (можно использовать Cloud Files или svn, git и т. д.). Можно использовать марионетку или какой-то настраиваемый скрипт для файлов конфигурации.
В идеале каждый домен или группа доменов должны иметь квоты пропускной способности, превышение которых запускало бы развертывание нового сервера только с файлами для этого домена в течение 1 часа. Если после этого целевого значения пропускная способность все еще превышается, сервер будет действовать еще час и так далее, пока в нем не отпадет необходимость, после чего он будет отключен от обслуживания.
Если кто-то уже развернул такую систему или может оказать в этом некоторую помощь, мы будем очень признательны!
1. Как я могу определить использование полосы пропускания в нескольких экземплярах?
2. Как мне избежать проблем с кешированием DNS, когда данный сервер работает только час (могу ли я использовать здесь прокси-сервер)?
3. Как лучше всего обеспечить быстрое развертывание файлов на каждом вновь развернутом сервере?
4. Используя такой динамический кластер, как я могу поддерживать FTP (я предпочитаю не использовать FTP, но для некоторых проектов это может потребоваться).
Я использую Amazon EC2, но эти рекомендации могут относиться к Rackspace или другим поставщикам:
Как я могу определить использование полосы пропускания в нескольких экземплярах? Метрики, я бы рекомендовал настроить сервер мониторинга с Cacti, Ganglia и Nagios для измерения пропускной способности, ЦП, памяти и т. Д.
Как избежать проблем с кешированием DNS, если данный сервер работает только час (могу ли я использовать здесь прокси-сервер)? Поставьте балансировку нагрузки за прокси-серверами. Если у вашего провайдера нет собственного решения, вы можете использовать HAproxy или nginx для балансировки нагрузки.
Как лучше всего обеспечить быстрое развертывание файлов на каждом вновь развернутом сервере? Я использую rsync и работает нормально, но все же ищу другие решения.
Используя такой динамический кластер, как я могу поддерживать FTP (я предпочитаю не использовать FTP, но для некоторых проектов это может потребоваться). Ваш провайдер должен предложить способ создания списков доступа для IP-адресов и портов (Amazon позволяет создавать ACL через их API).
Вот мой подход к аналогичной проблеме: Решение VPN, сочетающее масштабируемость и надежность облака