Windows Azure的可用性 摘要

来源:互联网 发布:娱乐圈八卦 知乎 编辑:程序博客网 时间:2024/06/05 08:15

高可用性:

1.简单地讲,云的可用性(Availability)就是云平台允许其用户可以随时随地访问其云服务的特性。换句话说,云服务在绝大多数情况下在何时何处都是“可用”的。可用性看似简单,却涵盖着云平台与云服务在设计、开发及运营中的诸多方面。

实现系统的可用性没有捷径可走。一般来说,系统的可用性都是通过冗余和备份来实现的。对于任何云平台供应商来说,为了有效控制其自身的成本,他们所选用的服务器都都不是高级别的服务器,而是相对廉价的服务器。在这种情况下,硬件系统出现问题是不可避免的。为了保证系统的可用性,这些云平台都内置了大量的冗余和自动备份的功能。例如,在用户订阅了一个Windows Azure SQL 数据库服务后,用户所创建的每个数据库都自动有两个热备份。当主系统出故障的时候,备份系统自动切换成主系统,从而保证系统的可用性。通过这样的机制,Windows Azure 可以保证用户创建的数据库是99.9%可用的,而且这样的可用性是有服务水平协议(SLA)保障的;

提示:(服务水平协议(SLA))

Windows Azure为其所提供的服务都提供了服务水平协议来保证这些服务的可用性水平。可用性水平通常通过一份百分比来定义。例如,在你订阅WIndows Azure 某项服务后,你所获得可用性水平可以用则个公式来定义:


可用性水平 =( 订阅的总时间-不可用时间)/订阅的总时间

需要注意的是,上述公式只是一个示意性的公式。不同服务的可用性水平计算方式不尽相同,并有一定的条件限制。


我想我们可以十分肯定地说,没有软件系统是绝对没有问题的。云平台上所运行的服务总会碰到这样或那样的问题。这就要求云平台的提供商不但能监测并响应硬件上的问题,更要能检测并响应软件上的问题。Windows Azure 对其平台上所运行的服务不但提供非常完整的监测功能,更提供了服务自动恢复功能以恢复那些出错的服务,让他们重返正常的工作状态。这种系统的自动维护功能对云平台的开发者来说是一个十分有价值的增值服务。由于有这道自动恢复的屏障,他们所开发的云服务在可用性上可以自动获得较大的提升,而不需要进行额外的编码和管理工作。

在这里我们还需要解释与可用性相关的两个概念,一个是故障域(Failure Domain),一个是更新域(Update Domain)。

故障域是一组可能同时出错的资源。例如,你的个人电脑就可以使一个故障域,因为它所有的资源---中央处理器(CPU)、内存、硬盘等,都依赖其电源来工作。如果你把电源线切断,所有的这些资源也就是同时停止工作了。在一个数据中心,一组同在一个机架(Rack)上的服务器由于共享一套电源或制冷系统,它们就构成了一个故障域。故障域是控制故障影响范围的一个重要概念。正如你切断电脑的电源不会影响你家中其他电器的运行,一个故障域出错对其他故障域不会产生任何负面的影响。Windows Azure 会自动把你所订阅的资源尽量分散在不同的故障域中。由于在类似于Widnows Azure 这样世界级的数据中心内,两个故障域同时出错的几率非常低,通过这种资源分配的方式,Windows Azure 可以保障一个较高的可用性水平。

更新域是个逻辑上的概念,指的是在系统更新的过程中可以同时更行的一组资源。Windows Azure 在更新一个服务的时候(无论这个服务是Windows Azure提供的还是你所发布的),不会把这个服务所需的所有资源都同时更新,而是把它们分组逐步更新。这样做的目的是保障在更新过程中每一时刻至少有一组资源可以响应用户的请求,这就是所谓的滚动升级(Rolling Upgrades)或者零停机升级(Zero-downtime Upgrade)。当然,在升级过程中,系统的吞吐量会暂时收到影响,但是从整体上讲服务始终处于“可用”状态;


来自(Windows Azure 实战 pdf)



0 0