Azure Service Fabric有状态应用的可用性计算

90次阅读
没有评论

问题描述

在使用Azure Service Fabric时,有一个关于可用性计算的问题。他的Service Fabric应用有一个有状态服务,数据存储在虚拟机的磁盘上。Azure Service Fabric依赖于底层虚拟机规模集的可用性,而虚拟机规模集的可用性为99.95%。Azure存储的虚拟硬盘(VHD)的可用性为99%。根据之前的回答,他想知道他的应用的可用性是否为99.95% * 99% = 98.9505%。他觉得这个结果有些奇怪,因为他使用的是Azure Service Fabric作为分布式服务框架,但服务的可用性如此低。他想知道自己是否漏掉了什么,是否需要考虑副本的数量,因为副本的数量与VHD的数量相同。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

首先,需要明确一点,虚拟机规模集(VMSS)本身没有自己的可用性SLA。VMSS只是在虚拟机之上的一个编排层。根据Azure官方文档,如果VMSS包含至少2个故障域(Fault Domains)中的虚拟机,则适用于两个或更多实例的虚拟机的可用性SLA。如果规模集只包含一个虚拟机,则适用于单个实例虚拟机的可用性SLA。因此,VMSS的可用性为99.95%。
关于存储的计算,有几个参数需要考虑:
1. 是否使用热存储(Hot storage)或冷存储(Cold storage),热存储的可用性是冷存储的10倍。
2. 应用程序是读取密集还是写入密集,需要考虑读取和写入的分别的SLA。

在这里做以下假设:
1. 存储一般来说是便宜的,因此只使用热存储层。
2. 管理磁盘(Managed Disks)使用起来更容易,因此只使用本地冗余存储(Locally Redundant Storage)。

根据以上两个假设,存储的SLA为99.9%。
将这两个数字相乘,得到的结果为99.985%,这个结果比之前的98%要高。如果将Service Fabric部署在多个区域中,可以进一步提高系统的可用性。以下是一个示意图:

Azure Service Fabric有状态应用的可用性计算

这样可以使系统的可用性接近四个9,即99.9898%。

方案2

请注意以下操作注意版本差异及修改前做好备份。
另一种方法是使用Azure提供的服务级别协议(SLA)计算器来计算应用的整体可用性。你可以使用Azure的SLA计算器来计算Azure服务的整体可用性。根据你的应用的架构和配置,可以使用不同的参数来计算可用性。以下是一个示例:

  1. 进入Azure的SLA计算器页面。
  2. 选择你的应用的相关服务,如虚拟机规模集、存储等。
  3. 根据你的应用的配置和需求,填写相应的参数,如实例数量、存储类型等。
  4. 点击计算按钮,即可得到你的应用的整体可用性。

请注意,SLA计算器只是一个估算工具,实际的可用性可能会受到多种因素的影响,如网络、硬件故障等。因此,在设计和部署应用时,还需要考虑其他因素,如容错、备份等。

以上是两种计算可用性的方法,你可以根据你的应用的具体情况选择适合的方法来计算可用性。

注意:以上解决方案仅供参考,具体的可用性计算还需要根据你的应用的架构和配置来确定。建议在设计和部署应用时,参考Azure官方文档和最佳实践,以确保应用的可用性和稳定性。

以上是关于Azure Service Fabric有状态应用的可用性计算的解决方案。希望对你有帮助!

正文完