外部架构师已经为面向服务的架构环境设计了架构。他们将可用性固定为 99.9%,相当于 [每年] 最多 9 小时的停机时间。
我在哪里可以找到有关如何将其映射到物理架构的资源?
到目前为止,我们认为我们需要的主要组件是:
带有数据库的 drupal CMS(一台机器)
API:授权、身份验证、日志记录、管理、PubSub 和学习记录存储 LRS:(一台应用服务器机器)
一台用于存储的数据库服务器(LRS、日志、配置文件)
这是为一座拥有 500 万灵魂的城市打造的市政环境。没有关于并发访问要求之类的数据,但我不想在这个问题上走高端路线。策略是从精益但稳健开始,并在需要时进行扩展。
非常欢迎您要求更多信息或评论组件架构的第一张照片 - 或您可能认为相关的任何内容。谢谢你。
99.5 非常(非常)糟糕且易于操作 - 请记住,单台机器的正常运行时间为 99.9%,因此从技术上讲,您只需要保持单独的服务器可用,配置到位,每隔几分钟备份一次。
通过适当的设置,您应该能够在最多 10 分钟内启动备用机器。
它可以处理除数据中心中断之外的所有事情,但这些都是 SLA 级别,然后您可以在第二个数据中心上的第二台机器上拥有类似 azure / amazon 的东西。
作为 BlackMesh 的一名工程师,我从事高可用性 Drupal 为生。正如 TomTom 所说,任何 99.9%(“三个九”)及以下的东西都非常简单。
如果您想花钱添加服务器和负载平衡器以及所有这些爵士乐,那么达到 99.9% 以上是很容易的。但是,如果您不这样做,则可能还有另一种方法。我会将您的解决方案重新架构成两台机器,并将因缺少第三台机器而节省下来的钱用于使另外两台更强大。也许与直觉相反,您也可以认真考虑牺牲某种程度的冗余,例如,您可能会放弃物理机器上的辅助电源,而只是将这两台机器中的每台简单地连接到不同的总线。
无论如何,您对这两台机器所做的就是将它们设置在适当的集群中。具有在它们之间来回失败的 HA IP 地址。* 机器 1 是默认的 Web 机器,运行 Drupal。机器二是默认的 DB 和 LRS 机器。如果发生故障,地址会移动,以便剩余的机器承担全部负载。对于 MySQL,这将需要 master-master 复制;对于 Drupal,它需要同步 DocRoot(特别注意“文件”目录);对于您的 LRS,它可能需要手动故障转移过程。
使用这种类型的配置、良好的硬件、良好的功率等,您应该会看到 5 个 9 (99.999%) 的操作系统正常运行时间(相当于每年大约 5 分钟的停机时间),并且接近这个数字第 7 层可用性方面。既然你说你需要证明你想出的数字是正确的,五个九假定一个无共享的环境,并且只是单个服务器的故障率 (
1.0-99.75%==0.25%
) 的平方,以表示两台服务器同时离线的概率 (1.0-0.25%*0.25%==99.999375%
),有点软糖因素。最后,我应该指出,这些类型的 SLA 有点像红鲱鱼。有关我对此事的看法,请参阅https://serverfault.com/a/161141/46760 。现实情况是,在此解决方案的整个生命周期中,由于有人粗暴地点击 Drupal 管理员帐户(或类似的东西),您将失去 DAYS 天的功能可用性。建立良好的变更控制和类似的流程应该在硬件冗余讨论中给予同等的计费,如果不是第一次计费的话。
*: nb 在任何成员数为偶数的集群中都有可能发生裂脑。降低概率的更好方法之一是通过公共接口路由运行状况检查流量。如果您想真正偏执,请查看 STONITH over serial。
在设计任何架构之前,我会检查您的环境:您是否有内部 IT 部门以及他们托管什么?
如果已经安装了数据库服务器,它也可以托管您的数据库。
您的系统管理员熟悉什么?如果您是 Microsoft 商店,则基于任何 *nix 的解决方案很容易让您的管理员感到不安(反之亦然)
关于停机时间,是否所有相关方都接受九小时停机时间仅计入计划外停机时间,不包括修补和升级停机时间?需要恢复多少数据?用你的备份系统能在九小时内恢复整个系统吗?