Вчера дата-центр Rackspace DFW отключился на несколько часов и заставил меня задуматься о том, чтобы предпринять отложенные действия по улучшению структуры моего сервера. До сих пор я использовал один экземпляр CentOS, обрабатывающий базовую настройку LAMP для моего приложения PHP + MySQL. Итак, вчера мое приложение не работало более трех часов подряд, и это было ужасно.
Я подумал:
Итак, мои вопросы:
@ HTTP500 прав: масштабируемость - нетривиальная задача. Даже если все основано на инструментах инфраструктуры, таких как EC2 LoadBalancer & co, вам все равно понадобится небольшая группа экспертов для управления им.
Предположим, вы хотите убедиться, что вы можете очень быстро масштабировать X показов веб-сайта. Однако для того, чтобы помочь вам, нужна дополнительная информация о вашем приложении. Я по-прежнему рекомендую проверить решения, предложенные такими командами, как Amazee, Fortrabbit, и т.д.
Чтобы дать вам несколько идей для "Начиная" вот диаграмма (любезно предоставлена Amazee):
Схема хорошо иллюстрирует, как обслуживается HTTP-запрос (начиная с балансировщика нагрузки). Такое решение потребует тщательного планирования, которое поможет вам решить, действительно ли вы все еще собираетесь это делать.
Чтобы добиться примитивного пинг-понга и возрождения - вам понадобится аварийное переключение. Я бы рекомендовал попробовать http://www.keepalived.org/. Для вашего LAMP у вас могут быть следующие классы экземпляров виртуальных машин:
Как видите, вам придется автоматизировать мониторинг, то есть сделать что-то вроде сценария на основе поддержки активности, который работает и проверяет, что все живо. Этот сценарий может проверять «оценку доступности» в миллисекундах для каждого экземпляра.
PS
Продолжить со слайдами http://www.slideshare.net/AmazeeAG/php-high-availability-high-performance Надеюсь, это поможет вам лучше понять, как реализовать то, что вы собираетесь делать.