Я перехожу с одного сервера приложений на конфигурацию с балансировкой нагрузки.
В конфигурации с одним сервером я синхронизировал источники с помощью S3 cmd sync s3 каждые несколько минут, а на hostup (событие Scalr) я синхронизирую источники обратно с S3. Это гарантирует, что на сервере будут работать обновленные источники.
Что лучше всего, если количество серверов приложений динамическое?
Предположим, у меня есть 2 сервера, и сервер A получает обновленные источники. Если сценарий синхронизации сначала запускается на B, сервер A получит старый файл от B, а не наоборот.
Что лучше всего в этом случае?
Ниже приведены основные протоколы, используемые для централизации хранения:
SSHFS - Передает все через SSH, поэтому он безопасен и может использоваться через Интернет без проблем. SSH поддерживает прозрачное сжатие, если вы этого хотите. Однако SSHFS может быть трудно заставить работать.
NFS - По своей сути небезопасен и использует IP-адреса для различения прав, но обычно очень легко запускается.
Лично я бы попробовал SSHFS и вернулся бы к NFS, если он не работает.
Поместите ваш основной источник в S3. Все серверы должны синхронизироваться (извлекать из S3) только при запуске.
Если вы хотите обновить свои серверы:
Ты можешь использовать inotify
(inotifywait
) и / или rsync
. Зависит от того, сколько у вас файлов, как часто вы их обновляете и насколько они велики.