假设我们要构建一个以高可用性为重中之重的 Web 应用程序。我们的客户是公司,因此停机时间等于所有相关人员的收入损失。
总而言之,我们需要时刻在线,让每个人都开心。那么,从一个非常基本的角度来看,我们应该使用哪些技术来做到这一点?
除了我们将使用 PHP 来保持高速开发之外,我们几乎没有任何偏好,因此我们对新的数据存储平台完全开放,还有其他什么可以实现它。
非常感谢您的回答!非常感谢!
假设我们要构建一个以高可用性为重中之重的 Web 应用程序。我们的客户是公司,因此停机时间等于所有相关人员的收入损失。
总而言之,我们需要时刻在线,让每个人都开心。那么,从一个非常基本的角度来看,我们应该使用哪些技术来做到这一点?
除了我们将使用 PHP 来保持高速开发之外,我们几乎没有任何偏好,因此我们对新的数据存储平台完全开放,还有其他什么可以实现它。
非常感谢您的回答!非常感谢!
为此,您需要同时考虑硬件和软件。
关于硬件,您最好的选择可能是选择具有必要经验的托管服务提供商,例如 Rackspace(我与他们取得了很好的个人经验,但还有很多其他的)。这不会便宜。您将需要完全冗余的硬件来承受任何一个组件的故障——多台服务器(至少两台),每台服务器都有多个磁盘、网卡、风扇、电源——你明白了。
关于软件——确保在构建时考虑到可扩展性。如果它是您的普通 Web 应用程序,那么使用 MVC 范例并保持分离干净将大大有助于确保您可以在需要运行的多个服务器上扩展您的应用程序。
最难的部分通常是数据库,因为你不能只运行两个。因此,请查看具有自动故障转移功能的主从设置,甚至是集群。
有很多书可以用于这个主题,这里只是其中之一。祝你好运!
根据很多变量,有几种方法可以解决这个问题:
所有这些组合都可以帮助您。
如果您决定使用托管解决方案,您仍然希望自己进行一些备份,以防您的主机出现故障并且您需要恢复。如果您部署了虚拟机,您还可以强制执行一些负载平衡并准备好虚拟机以防组件出现故障。
大量冗余,如果您永远无法承受停机,则一直到多个数据中心。
您还可以查看不同的云服务,例如 Amazon EC2 和 Rackspace Cloud。然后,您可能只需为您需要的确切计算能力付费......
另见:
我个人强烈推荐Azure App Service(这是一种用于构建 Web 应用程序的 PaaS 解决方案)。
(来源:windows.net)
另请查看以下通用/同构 Web 应用程序入门工具包:https ://github.com/kriasoft/react-starter-kit (免责声明:我是作者)