您的位置:首页 > 大数据 > 云计算

多视角看云平台中的服务可用性

2016-05-12 16:46 316 查看
近几年随着云计算的飞速发展,各大软件巨头厂商如微软、IBM等们也都纷纷向云计算转型。大中型企业即便没有上公有云也都在云计算方面布局,加大投入建设企业私有云。中小型企业都越来越热衷于将自己业务应用部署到云端,以视频、游戏等业务应用为甚,业务直接向互联网开放,面向用户提供更方便快捷的体验,系统运维托管到云厂商,省心省力省钱。

那么对于业务应用到底要不要上云,企业首先考虑的问题大多是应用部署到云端后是否能够保证稳定可靠,因此云端服务的可用性是云计算中的非常重要的课题。本文将以服务使用者、云服务提供商、服务设计者三个不同的视角来对云平台中的服务可用性的分级与分类进行梳理和分析。

从服务使用者来看,在选择公有云平台来支撑自己的业务应用时,最常用的比较方式就是对比云厂商提供的服务等级协议SLA, 通常SLA中会对各种类型的服务可用性进行承诺,如“XX服务的可用性至少达到99.9%“。承诺中的99.9%就是我们常说的“3个9”级别,9越多代表可用性越高,计算公式为:正常服务时间百分比%=(最大可用分钟数−停机时间)÷最大可用分钟数。含9越多代表停机时间越短,以年为例,计算列表如下:

可用性等级
每年最多停机时间
99%
3.65天
99.9%
8.76小时
99.99%
52.56分钟
99.999%
5.25分钟
99.9999%
31秒
参见上表, 服务可用性划分了5个等级,从“2个9”到“6个9”。有人问为啥没有90%“1个9”? 因为“1个9”压根就不可用,不在可用性范围内讨论。绝大多数企业在上云之前,其可用性均已超过了99%,而第五级的6个9每年只停机31秒堪称完美, 可惜要达到这个等级的保障力度需要投入代价非常昂贵,目前不太具备可实施性,因此多数基于可用性等级考虑选择均在“3个9”到“5个9”之间。可以根据业务特点结合服务性价比,来选择合适的云平台部署。

从服务提供商来看,云端的服务直接面向用户开放,按照服务的使用方式大致可以分为两类:“多租户共享”和“单租户独享”。 下面将对这两种模式用典型的服务示例来进行介绍,如多租户共享型的“对象存储服务”和单租户独享型的“数据库服务”。

多租户共享型:云端的“对象存储服务”即为此类型。不同的租户在云环境中使用同一个对象存储服务,那么可用性等级协议的承诺就是面向所有租户的,因此等级评估时需要综合考虑多租户同时用时的复杂场景,还需要考虑安全性、数据隔离性以及精确计量的方式等。多租户共享服务示意图如下:



图 1多租户共享型:对象存储服务

单租户独享型:以云端的关系数据库服务为例,基本上是每个主的每个业务系统独享一个数据库实例。同一个服务根据不同租户的使用情况不同,可用性等级的承诺也不尽相同,不同租户使用时的并发量、业务复杂程度不一致会对可用性等级评估结果产生较大差异,需要针对不同的业务使用情况分别评估,与多租户共享型服务相比,评估模型更为复杂。下面是单租户业务独享数数据库服务的示意图:



图 2单租户独享型:数据库服务

从服务设计者来看,如何设计一个高可用性的服务是架构师们比较头疼的问题,本文且不谈数据中心异地容灾方案建设,主要针对软件服务的技术架构、部署模式方面进行探讨,架构应该如何设计才能保障服务的可用性? 通常情况下,满足可用性的部署架构主要采用集群、分布式计算的设计方案来支撑。 常见的服务按照部署模式可分为如下几种:主备、主从、主主状态同步、主主行为同步等,以下是对这几种模式的简单示例和特性介绍。

主备:例如数据处理场景中常见的“集中作业调度平台”经常采用主备模式来支撑高可用,一般部署两个调度服务实例,主调度机负责执行调度请求,备机启动但不处理调度任务。当切换条件满足时自动执行切换脚本(也可以人工触发),切换完成后,主备服务实例角色转换,继续提供服务。此部署方案中主备切换时会存在瞬时的服务暂停或延迟。主备部署场景示意图如下:



图 3主备模式示意图:作业调度

主从:类似Zookeeper服务常以主从模式部署,主备是指多个节点分为master/slave的结构一主多从,即Zookeeper中的leader与follower,所有的由客户端发送过来的数据更新事务请求都是由leader节点处理,然后再提供异步的方式同步到各个follower节点中,数据查询类请求则由follower直接响应。主从模式部署示意图如下:



图 4主从模式示意图:Zookeeper

主主状态同步:传统的WEB容器集群+负载均衡就是这种模式,外部请求由负载均衡器根据各种灵活的分发策略进行请求转发,最终处理动作由集群中某一个节点负责执行即可。这种模式下通常集群中的各个节点之间还需要做部分状态同步,如Session同步、内部缓存同步等。迁移到云端时,可以演进为另一种高可用方案,如Session和缓存等状态信息保存交由类似分布式缓存来管理,使Web容器演化为一种无状态的计算型节点,能够更加灵活的进行伸缩,极大的提升了服务的可用性和性能。示意图如下:



图 5主主状态同步模式:WEB容器多节点+负载均衡

主主行为同步:这种部署模式在近年的流式内存计算类应用中比较常见,如复杂事件处理产品Esper,事件接收器收到事件后,将事件同时发送到多个计算节点进行运算处理,计算过程在内存中执行,多节点计算完毕后,再由接出适配层对多次计算结果进行核验和去重后再使用。不同节点重复内存计算既利用了内存的高效能力,同时还保障了可用,避免了由于某一个节点故障后导致的事件丢失问题。示意图如下:



图 6主主行为同步模式:CEP产品Esper的计算节点重复处理相同事件

综上所述,本文只是以不同视角对云计算服务的一些简单的归类和介绍,保障服务高可用是一个复杂的事情。就好比战乱时期,人们喜欢把财富藏在自家的地里,而现在都存银行一样,随着技术的发展,实现更高等级的高可用服务并不遥远。我想信未来所有的软件服务均将在云端运行,互联网、云服务将连接一切,面向用户的是随处可见的各类终端,方便快捷。为了实现这个美好的愿景,还请各界人士共同努力,Fighting!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: