如何构建可用的Web应用程序

时间:2010-08-14 21:18:33

标签: php high-availability failover

假设我们即将构建一个以高可用性为重点的Web应用程序。我们的客户是公司,因此停机时间等于所涉及的每个人的收入损失。

总结一下,我们需要始终在线,让每个人都开心。那么,从一个非常基本的角度来看,我们应该采用什么技术来做到这一点?

除了我们将使用PHP来保持高速开发速度之外,我们几乎没有任何偏好,所以我们对新的数据存储平台完全开放,还有什么可以实现它。

非常感谢您的回答!非常感谢!

5 个答案:

答案 0 :(得分:3)

您需要考虑硬件和软件。

关于硬件,您最好的选择可能是选择具有必要经验的托管服务提供商,例如Rackspace(我已经与他们建立了良好的个人经历,但还有很多其他人)。这不会便宜。您将需要完全冗余的硬件来应对任何一个组件的故障 - 多个服务器(至少两个),每个服务器都有多个磁盘,网卡,风扇,电源 - 您可以了解情况。

关于软件 - 确保在构建时考虑到可扩展性。如果它是您的普通Web应用程序,使用MVC范例并保持分离清洁将大大有助于确保您可以在需要运行的多个服务器上扩展应用程序。

最难的部分通常是数据库,因为你不能只运行两个。因此,请查看具有自动故障转移功能的主从设置,甚至集群。

本主题提供了大量书籍here's just one of them。祝你好运!

答案 1 :(得分:2)

根据许多变量,有几种方法可以解决这个问题:

  • 使用托管解决方案
  • 部署虚拟机以实现冗余
  • 使用负载均衡
  • raid array

所有这些组合都可以帮到你。

如果您决定使用托管解决方案,您仍然希望自己做一些备份,以防主机出现故障而需要恢复。如果部署了虚拟机,则还可以强制执行某些负载平衡,并在案例组件停止时准备虚拟机。

答案 2 :(得分:1)

如果你永远不能失败,那么很多冗余,一直到多个数据中心。

答案 3 :(得分:1)

您还可以查看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/

答案 4 :(得分:-1)

我个人强烈推荐Azure App Service(这是一种用于构建网络应用的PaaS解决方案)。

img

另请参阅以下通用/同构Web应用程序入门套件:https://github.com/kriasoft/react-starter-kit(免责声明:我是作者)