https://www.cnblogs.com/onetwo/p/6007059.html

摘要: 即便阿里云产品本身就有容灾、高可用的特征,但是因为一些用户对阿里云产品的不了解和自身应用架构不够合理,也根本无法使其发挥该优势。

这两天,一篇名为《IT之家因无法忍受阿里云而迁移至XX云》的文章引起了整个云计算行业的热议。(袋鼠云CTO江枫还专门写了一篇热评:点击阅读原文。)

从目前得到的信息看,其应该是在青岛区域购买了一台云服务器ECS,基于.net和自建SQL Server,并且应用和数据库跑在同一台云服务器上。

IT之家,所有应用都部署在单台ECS上,不具备高可用的特性。

即便阿里云产品本身就有容灾、高可用的特征,但是因为一些用户对阿里云产品的不了解和自身应用架构不够合理,也根本无法使其发挥该优势。

其实,IT之家的事情不是个例,有很多其他企业在这方面很头疼。

所以,袋鼠云技术专家结合以往实践经验,总结出了一套切实可行的《阿里云高可用-容灾解决方案》,希望能和各位阿里云上用户一起探讨。

 

一、阿里云产品容灾-高可用介绍

 

1、 SLB 容灾-高可用介绍

阿里云SLB产品使用开源软件LVS+keeplived实现4层的负载均衡。

采用淘宝的Tengine实现7层的负载均衡。所有负载均衡均采用集群部署,集群之间实时会话同步,以消除服务器单点,提升冗余,保证服务稳定。在各个地域采用多物理机房部署,实现同城容灾。

SLB在整体设计上让其可用性高达99.99%。且能够根据应用负载进行弹性扩容,在任意一台SLB故障或流量波动等情况下都能做到不中断对外服务。

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
图一

 

2、 ECS 容灾-高可用介绍

 

云服务器ECS实例是一个虚拟的计算环境,包含了 CPU、内存、操作系统、磁盘、带宽等最基础的服务器组件,是ECS提供给每个用户的操作实体,就如同我们平时使用的虚机。

但需要确认的是,ECS自身是没有容灾和高可用方面的功能。

所以当我们在单台ECS服务器上部署各种应用时,特别是对于那些将应用服务,数据库服务等都打包安装在单台ECS服务器时就更要注意这点了。

那ECS自身没有容灾-高可用这样的功能,对于在单台ECS上部署各种服务,一旦ECS故障就只能眼睁睁的看着它down机对外停止服务么?

此时如果产品自身没有容灾和高可用功能,我们可以从架构上来弥补这个短板。

比如:在应用前端购买SLB产品,后端相同应用部署至少两台ECS服务器,或者是使用阿里云的弹性伸缩技术,根据自定义ECS自身资源的使用规则来进行弹性扩容。这样即便其中一台ECS服务器down机或者资源利用超负荷,也不会使我们的服务对外终止。

ECS具备的一些优势:

稳定性: 服务可用性高达 99.95%,数据可靠性高达 99.9999999%。

容灾备份: 每份数据多份副本存储。

弹性扩容:支持在线不停机升级带宽;5分钟内停机升级CPU和内存。

成本低:无需一次性大投入,按需购买,弹性付费,灵活应对业务变化。

 

3、OSS 容灾-高可用介绍

 

阿里云对象存储服务(简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。

OSS底层依托于盘古存储,采用分布式架构部署,无单点故障存在。文件以chunk分块方式存储,默认每块存三副本,并分布在不同机架的ChunkServer节点上。在盘古集群中Master允许宕机1台,Chunkserver允许同时宕机2台,KVServer与WS允许宕机多台。KV集群采用CS架构,故障自动恢复, 对应用透明,WS为无状态接入层,通过SLB实现容错与负载分担。

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
图二 

 

4、RDS 容灾-高可用介绍

 

阿里云关系型数据库(简称RDS):是一种稳定可靠、可弹性伸缩的在线数据库服务。

RDS默认采用主备架构(备用实例正常情况下对用户不可见),两个实例位于不同服务器,自动同步数据。主实例不可用时,系统会自动将数据库连接切换至备用实例。切换是分钟级别,而且不需要人工介入,全部由系统自动完成,应用系统也无需任何变更。这种架构足以满足90% 用户的高可用需求。

 

如下图:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
图三

 

用户如果对系统可用性有更高的要求,希望可以做到机房容灾,阿里云RDS可以选择购买多可用区RDS。多可用区是在单可用区的级别上,将同一地域的多个单可用区组合成的物理区域。相对于单可用区RDS实例,多可用区RDS例可以承受更高级别的灾难,如下图:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图四:RDS同城容灾架构

 

除了同城容灾之外,对于数据可靠性有强需求用户,比如是有监管需求的金融业务场景,RDS提供异地灾备实例,帮助用户提升数据可靠性。

RDS通过数据传输服务(DTS)实现主实例和异地灾备实例之间的实时同步。主实例和灾备实例均搭建主备高可用架构,当主实例所在区域发生突发性自然灾害等状况,主节点(Master)和备节点(Slave)均无法连接时,可将异地灾备实例切换为主实例,在应用端修改数据库链接地址后,即可快速恢复应用的业务访问。

 

如下图:

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图五:RDS异地容灾架构

 

 

二、容灾-高可用架构方案

 

1、云上容灾-高可用架构--通用架构

 

在阿里云平台上,对于中小型企业,业务量不是特别大,对异地容灾要求不是特别强烈,则可采用以下高可用方案(如下图:图六),可以在同一地域下选择购买云产品。建议在VPC网络环境下,选择同一可用区或者同地域不同可用区的云产品。

同时建议ECS服务器至少两台,避免单点故障,在前端购买SLB,提供负载功能,这样当后端ECS资源使用紧张时可以直接横向扩展,对业务无影响。

另外,数据库业务尽量不要和应用服务部署在同一台ECS上。防止不同服务之间资源抢占,同时方便日常管理和后期扩容。数据库服务器推荐直接购买RDS产品,数据安全有保障,同时也不需要花太多精力去运维管理。

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图六

 

2、云上容灾-高可用架构—同城容灾

 

对中大型用户来说,希望业务系统要求具备同城容灾的能力,可以考虑在同城不同可用区之间对原有应用架构做一套完整的备份。如果某个可以去出现像IDC机房断电或者火灾等故障时,可以通过前端切换DNS来及时恢复业务。

如下图:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
图七

 

3、云上容灾-高可用架构—同城异地容灾

 

对于一些大型企业在业务安全全性、服务可用性和数据可靠性方面既要求具备同城容灾又要求具备异地容灾时,可以采用这种容灾架构方式既可以解决单机房故障也可以应对像地震等灾难性故障。

不同地域之间可以采用阿里云的高速通道进行私网通信,保障数据库之间的数据实时同步,将数据传输延迟降到最低。故障发生时可以通过前端DNS实现秒级切换,及时恢复业务。

如下图:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=
图八

posted on 2018-02-26 15:29  一天不进步,就是退步  阅读(1144)  评论(0编辑  收藏  举报