Балансировка нагрузки веб-серверов + поддержание синхронизации контента - PullRequest
4 голосов
/ 20 июня 2011

Я рассматриваю реализацию функций эластичной балансировки нагрузки EC2, но я запускаю веб-приложение (в стеке LAMP), в котором часто происходят изменения, и задаюсь вопросом, какова наиболее распространенная стратегия для поддержания приложения в синхронизации между серверами, которые сбалансированы по нагрузке. База данных будет жить в другом месте, поэтому я беспокоюсь (на данный момент) о том, чтобы синхронизировать действительные сценарии при внесении изменений.

Ответы [ 3 ]

5 голосов
/ 20 июня 2011

Зависит от того, как часто вы собираетесь обновлять сценарии:

  • Наиболее распространенным решением является хранение ваших общих компонентов в томе EBS, создание снимка и затем монтирование его из экземпляров.- либо в качестве корневого устройства (позволяющего поддерживать синхронизацию всего состояния кода во всех экземплярах), либо в качестве вторичного тома (содержащего только ваш код, позволяющего использовать AMI, созданные другими пользователями, например, Canonical)
  • При частых обновлениях, скорее всего, победит простое решение, такое как rsync, в противном случае вы можете оставить их на S3 и использовать модуль предохранителей S3 для монтирования скриптов непосредственно из S3 (с этим решением вы можете в конечном итоге потратить немного больше на количество S3ПОЛУЧИТЬ запросы в зависимости от того, как S3 предохранитель кеширует).
4 голосов
/ 21 июня 2011

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

Существует довольно много доступных плагинов (PHPUnit, Coverage Code, Code Code и т. Д.):

Дженкинс

Как:

  1. Установить Jenkins
  2. Настройте ваш проект (возможно, ваш код должен быть в какой-то системе код-версии) с Jenkins
    1. Настройка серверов, пути проекта, предварительной работы, последующей работы и т. Д.
  3. График работы / работы.
  4. Вот и все, готово.

Справка:

  1. Конфигурация:
    1. настройка - напр.
    2. Начальная конфигурация
      1. Настройка заданий
  2. http://agile.dzone.com/news/continuous-integration-php
0 голосов
/ 13 апреля 2013

Вы можете запустить Chef / Puppet на AWS Infra.Интегрируйте это в Git / SVN.Новые изменения будут автоматически подхвачены Chef из SVN и периодически перемещаться на веб-серверы Amazon EC2.

...