更多精彩内容,欢迎观看:
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(2):https://developer.aliyun.com/article/1405311
4. 云上容灾建设最佳实践
1) 建设路径
以上这张图片是阿里云对外提供的云上容灾交付服务白皮书中关于云上建设容灾能力的路径说明,主要分成五个步骤:
(1)需求分析
在该阶段,主要关注服务是否需要进行容灾建设,以及需要建设到何种程度的容灾能力。因为对于业务不同的阶段,所要关注的重点也不同。如对于起步阶段的业务,其更多关注的是如何吸引更多的客户;
第一阶段发展过后,客户数量有了一定程度的增加,此时则会对应用带来更高的流量,此时更关注的是如何建设应用的稳定性,如高并发或慢搜克的问题,该阶段一般采用同城双活的容灾架构。即可满足大部分的诉求;
再进一步,如果业务发展成了国民级别,或公司的基础层面的设施服务,则要考虑进一步的容灾能力的建设,包括异地双活火或异地多活的容灾能力。
因此,要基于自身业务的发展情况及自身应用的特征分析所需的应用的容灾要满足怎样的诉求,定义具体的RTO和RPO。即使是同一公司,不同的应用、不同的服务对容灾的诉求也是不同的。比如库存服务,因为库存对数据一致性要求非常高,因此库存一类的服务就不太适合进行异地多活或异地双活的容灾架构建设。
(2)现状调研
包括去分析每个应用的情况(不同的应用对业务的重要程度不同,对容灾的诉求也不同),云平台的调研(如云平台上能提供哪些容灾能力,可以在哪些层面降低容灾建设的成本),以及基础设施层面的调研。在调研阶段,可以产出调研报告指导设计工作。
(3)容灾方案设计
包括总体的容灾方案,云平台方面进行容灾部署的方案,应用层面要进行容灾方面的改造设计,以及在具体的应用容灾部署方案。这一阶段可以产出应用容灾的方案以及平台容灾的方案。
∙ 容灾能力的演练设计
包括要进行哪些场景的演练,对应的应急预案如何,DRP方案如何。这个阶段可以产出容灾演练的方案。
∙ 演练的实施
包括演练如何操作,演练之后内部的复盘会议。通过演练的实施,可以产出容灾演练报告,进行相应的查漏补缺,以完善系统整体的容灾能力。
2) 同城双活
接下来以具体的云上同城双活容灾建设为例,学习在云上如何做容灾能力建设。
在云上进行容灾建设,目前云上很多的云产品都已经具备了容灾的能力,可以大幅降低自身业务层面落地容灾能力时的成本。这里主要从计算高可用、存储高可用,以及业务改造层面学习在云上做同城双火时,可以借助云上的哪些服务降低容灾能力建设的成本。
首先,在应用高可用部署层面,可以采用跨可用区的ECS或ECI进行冗余部署。ECS主要解决的是VM层面部署的技术部署方案,ECI可以解决容器层面的技术部署方案。如果服务目前还是在云下,未部署到云上,可以考虑使用服务器迁移中心SMC云产品把线下的云下的服务栏快速部署上云,甚至服务无需要中断。如果服务已经部署在云上,为了进行同城双活容灾,则需要将服务同从一个可用区快速部署到另外一个可用区,则可以考虑使用资源编排ROS云产品,满足服的一键快速部署。最上层还需要进行流量的负债均衡,可以考虑使用SLB的多可用区部署。
在存储高可用方面,主要关注数据库以及缓存中间件、消息中间件以及文件的存储。在这一层面,很多云产品也都提供具备容灾能力的产品服务,包括说云数据库RDS的高可用系列多可用区部署方案,云数据库 Redis高可用系列双可用区部署方案,消息队列 RocketMQ 版,它本身具备容灾能力,以及OSS 同城冗余存储。
在具体的业务改造层面,首先要做的是业务要支持读写分离,第二为了满足更好的应用性能,应尽量是做到可用区内部RPC流量的封闭。基本上,目前主流的W3等都支持该能力的。
3)异地双活
异地双活由于两个数据中心距离较远,直线距离大于1000千米。
在计算高可用方面,除了刚提到的应用高可用容灾部署,以及流量的负债均衡之外,还需要跨地域高可用的网络服务,推荐使用云企业网CEN云产品,它可以帮助我们构建数据中心之间较高质量的网络链路。
在数据存储的高可用方面,除了刚才提到的数据库高可用、缓存组件的高可用、消息组件高可用和文件存储高可用之外,由于涉及到数据中心广域网的数据同步,还需要进行数据双向同步服务,可以采用数据传输服务DTS云产品,帮助我们解决包括常见数据库以及数据类的中间件组件层面的数据的双向同步能力。
最大的挑战还是在业务改造层面,在业务改造层面,除了要继续支持RPC流量内部封闭之外,还需要在最上层进行业务路由层的改造、业务单元化的划分以及一些读写分离方面的改造。这里的路由层还要满足使得相同特征的流量尽量能够在单个数据中心闭环处理。如果使用的是地理位置方面的路由服务,可以考虑使用云解析 DNS - 智能DNS解析能力,前面提到ECS内部的Web应用现在采用的异地多活全球化的容灾架构最上层的DNS是解析使用的云解析 DNS - 智能DNS解析能力。
异地双活对业务改造成本较高,因此,我们推荐进一步采用阿里云提供的多活容灾 MSHA云产品,进一步降低在业务层面的改造成本。
最后就本次的交流内容进行简单的总结和回顾。
在第一部分的内容中介绍了系统容灾方面的内容,包括常见的故障类型,特别是市政方面的断电断网以及自然灾害方面的故障。在介绍故障的同时,以具体的案例展开讲解了在云上也需进行容灾方面的能力建设,以避免此类故障对业务产生的致命的影响。此外,还介绍了常见的容灾级别,包括同城级别的容灾,异地级别的容灾,以及同城容灾和异地容灾的组合形态。
在第二部分,介绍了业界比较主流的容灾架构,以及在容灾能力方面比较有影响力的两个评价指标,分别是RPO和RTO。在主流容灾架构对比中,详细展开介绍了包括同城灾备、同城双活、异地双活和异地多活四种容灾架构。
在第三部分,就ECS团队内部某具体Web服务在业务不同的发展阶段采用不同的容灾架构的思考和实践进行了详细的介绍。包括在应用的起初始阶段采用的同城双火容灾架构,以及随着业务的快速发展和客户数量的增加,逐渐演变到单元化和全球化容灾架构。
最后一部分,介绍了在云上如何进行容灾能力的建设,包括在云上如何进行容灾建设的最佳实践路径,以及具体地在云上如何进行同城双活和异地双活能力的建设。在具体的案例介绍中,还介绍了包括在计算高可用、存储高可用以及业务具体的改造方面的一些内容,以及相关的具备灾备能力的云产品,在云上进行容灾能力建设的同时,借助这样云产品可以大幅降低在云上容灾建设的成本。
以上就是本节课程的全部内容
《云上自动化运维宝典》:https://developer.aliyun.com/ebook/8220