如何构建可用的Web应用程序
-
28-09-2019 - |
题
假设我们将要构建高可用性是最重点的Web应用程序。我们的客户是公司,因此停机时间等于参与其中的每个人的收入损失。
总而言之,我们需要始终在线上,以使每个人都开心。因此,从非常基本的角度来看 我们应该考虑哪些技术来做到这一点?
除了我们将使用PHP来保持高速发展外,我们几乎没有偏好,因此我们完全开放了新的数据存储平台,还有什么还有什么来实现它。
您的答案非常感谢!非常感谢!
解决方案
您需要为此考虑硬件和软件。
关于硬件,您最好的选择可能是选择具有必要经验的托管提供商,例如Rackspace(我已经与他们一起做了很好的个人体验,但还有很多其他经验)。这不会便宜。您将需要完全冗余的硬件来生存任何一个组件的故障 - 多个服务器(至少两个),每个服务器都有多个磁盘,网卡,风扇,电源,电源 - 您会得到图片。
关于该软件 - 确保牢记可扩展性构建。如果这是您的经营网络应用程序,则使用MVC范式并保持分离清洁将有很长的路要走,以确保您可以在需要运行的多个服务器上扩展应用程序。
最困难的部分通常是数据库,因为您不能只运行两个。因此,请查看具有自动故障转移甚至群集的主奴隶设置。
有许多书籍可用于此主题, 这只是其中之一. 。祝你好运!
其他提示
有几种方法可以根据很多变量来解决此问题:
- 使用托管解决方案
- 部署虚拟机以具有冗余
- 使用负载平衡
- 突袭阵列
所有这些组合都可以帮助您。
如果您决定使用托管解决方案,您仍然想做一些自己的备份,以防主机降低并且需要恢复。如果您部署了虚拟机,您还可以执行一些负载平衡,并在组件下降时准备了虚拟机。
大量冗余,如果您永远无法负担,请一直到多个数据中心。
您还可以查看不同的云服务,例如Amazon EC2和Rackspace Cloud。然后,您可能只能为所需的确切计算能力付费...
另请参阅:
我个人强烈推荐 Azure应用程序服务 (这是用于构建Web应用程序的PAAS解决方案)。
(来源: Windows.net)
还要查看以下通用 /同构Web应用程序入门套件: https://github.com/kriasoft/reaeact-starter-kit (免责声明:我是作者)