Как создать доступное веб-приложение - PullRequest
4 голосов
/ 15 августа 2010

Допустим, мы собираемся создать веб-приложение, в котором первостепенное внимание уделяется высокой доступности. Наши клиенты - это компании, поэтому время простоя равнозначно потере дохода для всех участников.

Подводя итог, мы должны постоянно быть онлайн, чтобы все были счастливы. Итак, с очень простой точки зрения, какие методы мы должны смотреть, чтобы сделать это?

У нас практически нет предпочтений, кроме того, что мы будем использовать PHP для поддержания высокой скорости разработки, поэтому мы полностью открыты для новых платформ хранения данных и всего, что может сделать это.

Ваш ответ очень важен! Большое спасибо!

Ответы [ 5 ]

3 голосов
/ 15 августа 2010

Для этого нужно учитывать как аппаратное, так и программное обеспечение.

Что касается аппаратного обеспечения, вам лучше всего выбрать хостинг-провайдера с необходимым опытом, такого как Rackspace (у меня был хороший личный опыт работы с ними, но есть много других). Это не будет дешево. Вам понадобится полностью избыточное оборудование, чтобы пережить сбой любого одного компонента - нескольких серверов (как минимум, двух), каждый с несколькими дисками, сетевыми картами, вентиляторами, блоками питания - вы получите картину.

Что касается программного обеспечения - убедитесь, что вы строите его с учетом масштабируемости. Если это ваше заурядное веб-приложение, использование парадигмы MVC и поддержание чистоты разделения в значительной степени обеспечат возможность масштабирования приложения на нескольких серверах, которые вам необходимо будет запустить.

Обычно самой сложной частью является база данных, поскольку вы не можете просто запустить два. Так что изучите настройку «ведущий-ведомый» с автоматическим переключением при сбое или даже кластером.

Для этой темы доступно несколько книг, вот только одна из них . Удачи!

2 голосов
/ 15 августа 2010

Существует несколько способов решения этого вопроса в зависимости от множества переменных:

  • с размещенным решением
  • развертывание виртуальных машин с избыточностью
  • используйте балансировку нагрузки
  • массив raid

Все эти комбинации могут вам помочь.

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

1 голос
/ 15 августа 2010

Вы также можете взглянуть на различные облачные сервисы, такие как Amazon EC2 и Rackspace Cloud.Тогда вы сможете платить только за ту вычислительную мощность, которая вам нужна ...

См. Также:

http://www.2mhost.com/mission-critical-web-hosting.html

http://www.ihostxtremes.com/

http://www.netlocations.com/

http://www.mewebhost.com/

1 голос
/ 15 августа 2010

Много избыточности, вплоть до нескольких центров обработки данных, если вы никогда не можете позволить себе отключиться

0 голосов
/ 15 августа 2010

Я лично настоятельно рекомендую Служба приложений Azure (которая представляет собой решение PaaS для создания веб-приложений).

img

Также взгляните на следующий универсальный / изоморфный стартовый набор веб-приложений: https://github.com/kriasoft/react-starter-kit (отказ от ответственности: я автор)

...