我有一个 Web 系统。我需要计算整个系统的正常运行时间。我有负载平衡(目前没有虚拟 IP 和冗余负载平衡),一个数据库。两台服务器作为集群。主机提供商。
有人能粗略地告诉我如何完成所有这些以及如何估计系统的正常运行时间吗?
如何计算复杂系统的正常运行时间?
我知道这很难说,但请解释一些通用方法。
答案1
一般来说,您已经完成了整个设置,因为只要面向客户的部分仍然正常运行,您就不必特别在意其中的某个方面是否出现故障。一些正常运行时间检查器仅检查来自您网站的 200 HTTP 响应(即使该响应包含 SQL 错误),其他一些则更为具体。
一般来说,这是您的业务计划/SLA,您需要编写它。您需要什么?只要其他一切正常,用户无法登录会有什么关系?您只需要您的索引页启动吗?还是您需要整个页面加载后才认为它是正常运行时间?
不要再试图计算所有事情的正常运行时间,而只衡量重要的事情——最终结果。
答案2
从底层(电力、冷却……)到顶层(软件层)工作。如果您将所有东西都放在一个数据中心,而数据中心突然出现故障,那么即使是最好的软件和最好的集群解决方案也无济于事。
您的问题非常复杂,计算时至少要考虑以下因素:
您的数据是如何存储的?在一个数据中心?还是在多个数据中心?
数据中心可靠吗?它们之间的网络连接怎么样?
您的路由器、负载平衡器、服务器和其他设备是否可靠,或者您是否需要经常更换零件?
在进行定期维护时,您是否需要关闭整个网站,或者您是否能够在不关闭网站的情况下更新软件等?
您如何应对外部攻击(例如 DDoS)?
如果您的数据库、文件服务器或其他关键组件出现问题怎么办?是的,您提到它们是集群的。但这并不意味着它们不会出现故障。
您能多快从备份中恢复?
您认为什么才是“网站正常运行”?首页正常运行?现有登录用户工作正常但无法添加/删除帐户?网站必须在 X 秒内做出响应?一切都必须是 100% 一流的?
或者,如果计算你的意思是监控这样你就可以看到总体趋势和当前状态,然后看看纳吉奥斯。