在线教育业务系统云上高可用部署架构设计

从2010年开始,国内新兴的在线教育公司已经越来越多选用公共云计算做为IT基础设施平台。在线教育公司使用云计算,一方面可以减少在IT基础设施方面设备及人力的投入,另一方面可以轻松获得可扩展的计算能力以及更加可靠的安全防护能力。

通过对多家在线教育公司IT部门的交流,由于在线教育公司大多处于业务发展期,IT部门的精力主要投入到支撑新业务的拓展,在应用的部署架构上考虑的不多,在高可用架构方面更是欠缺。

众所周知,云平台是一个及其复杂的综合系统,内外部的一些偶然因素可能导致其发生局部的故障,如果用户在高可用方面考虑的不够周全,云平台局部故障可能会对业务系统产生重要影响,造成用户的体验下降甚至用户流失。

领先的云服务商在云平台层面为了尽量减少故障发生,经过过多年的优化,已经在网络、云服务器、云数据库等层面支持同城多机房高可用部署,在线教育公司在进行部署架构设计时使用本文介绍的部署方式,就可以快速构建起高可用的应用。

在介绍高可用部署架构之前,先介绍几个技术术语:

地域:地域指的是云资源及服务所在的地理位置。用户可以根据实际需要来选择不同地域的云服务,具体选择哪个地域一般由客户的地域分布来决定。以阿里云为例,目前可供选择的地域有华东 1、华东 2、华北 1、华北 2、华南 1、香港、新加坡、美西 1、美东 1。如果在线教育系统的客户主要分布在珠三角,选择华南1就比较好,如果客户覆盖全国,选择华东1或华东2就相对合适一些,因为这两个区域到全国的网络延时比较平均。

可用区:可用区是指在同一地域内,电力和网络互相独立的物理区域,可以理解不同的可用区是不同的物理机房。在同一地域内可用区与可用区之间内网互通,可用区之间可以做到故障隔离。

负载均衡服务:负载均衡是对多台云服务器进行流量分发的服务。负载均衡通过流量分发,可以横向扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。

云服务器:云服务器是一种处理能力可弹性伸缩的计算服务,其管理方式比物理服务器更简单高效,能够快速构建业务系统,降低开发运维的难度和整体IT成本。云服务器整合了计算、存储与网络资源等IT基础设施能力。

云数据库:关系型云数据库服务为用户提供在线数据库服务。同时提供了数据库在线扩容、备份回滚、性能监测及分析等功能。

下图是目前在线教育公司常见的部署架构:

在线教育业务系统云上高可用部署架构设计

用户通过互联网访问部署在云上的资源,访问会通过负载均衡分发到后端多台云服务器上,云服务器上的部署的在线教育应用访问云数据库进行数据的存取。这个部署架构在一定程度上满足了应用的高可用性要求,比如,云服务器1出现故障时,云服务器2可接管全部请求,应用不至于停止服务。另外,由于云数据库具备主备容灾能力,在主数据库出现问题,可以切换到备份数据库,应用也不会受到长时间的影响。

但是由于所有的云资源都部署在同一个可用区,在极端情况出现时,比如该可用区的对外网络出现中断,或者该可用区的云服务器出现整体性故障时,应用还是会受到严重影响,甚至无法对外提供服务。虽然这种情况发生概率很低,但是对服务质量要求极高的在线教育系统,比如在线考试,在线授课等,还需要更高的可用性部署架构。

为了达到更高的可用性,建议进行多可用区的云上高可用部署架构,这种部署架构分为三个要点:

在线教育业务系统云上高可用部署架构设计

第一,负载均衡层。利用了负载均衡服务跨可用区的高可用特性。目前领先的云计算平台已经具备了此项能力,以阿里云为例,在创建负载均衡服务时,可以根据需要选择负载均衡服务主备可用区,如下图所示:

在线教育业务系统云上高可用部署架构设计

该服务创建后将默认工作在主可用区,当主可用区发生故障时可切换到备可用区工作,对外的互联网IP不发生变化,不需要对DNS解析做任何调整。

第二,云服务器层。同时在两个可用区购买并部署云服务器,当可用区A出现整体故障时,可以由可用区B的云服务器支撑业务。

第三,数据库层。在数据库层选择云服务供应商提供的多可用区版本的云数据库,还是以阿里云为例,其提供的RDS mysql有多可用区版本,如下图所示:

在线教育业务系统云上高可用部署架构设计

选用了多可以区的RDS mysql,主备数据库被部署到不同的可用区,上图中的数据库主库部署在可用区B,备库部署在可用区C,主备之间的数据保持实时的同步。当主库的可用区发生严重故障时,位于另外一个可用区的备库提升为主库。

这个部署方案中需要注意,由于可用区往往位于一个地域的两个不同地点,相互间有几十公里的距离,因此难免会有一定的网络延时,通常在2ms以内,因此,从负载均衡到另一个可用区的云服务器,以及云服务器到另外一个可用区的云数据库之间的延时,会比同可用区的相互访问有一定的延时增加,在应用部署时要考虑这个延时对应用的影响。

按照上述的高可用架构进行部署后,当可用区A出现灾难故障时,应用整体不会受到影响,依旧可以对外提供服务,如下图所示:

在线教育业务系统云上高可用部署架构设计

综上所述,在线教育公司可以借助云服务商提供的底层能力,快速的搭建基于多可用区的云上高可用部署架构,快速、低成本的实现应用系统的“同城双活”,极大的提高系统的容灾能力,持续的服务好用户。

相关推荐