带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(2)

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(2)

更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(1):https://developer.aliyun.com/article/1405312


3. ECS团队在容灾上的实践

该部分以ECS内部某具体的Web服务为例,根据业务不同的发展阶段所经历的不同的容灾架构能力建设。根据Web服务经历的不同业务发展阶段,将其分成了三个阶段:

 

image.png

 

第一阶段,业务的起步阶段。在该阶段,整体的业务量较小,只有国内较少的Region对外提供了服务,这个阶段的客户也主要以中小客户为主。在该阶段,采用同城双活的容灾架构。

 

第二个阶段,业务开始快速发展,新Region开始持续不断开服,企业客户开始上云,对服务提出了更高的稳定性诉求。在该阶段,采用单元化的垄断架构。这里的单元化和与前面提到的淘宝天猫的异地多活单元化存在概念上的区分,后面会进行详细的介绍。

 

第三阶段,业务继续快速发展,Region开始遍布国内外。在该阶段,国内外的客户数量都在快速增加,这也会导致一些体验方面的问题。如跨国访问速度慢,域名切换体验差。在该阶段,为解决相应的问题,满足业务上发展的诉求,又升级到了异地多活的架构,在内部又称之为全球化的架构。

1) 同城双活(跨可用区)

 

image.png 

观察图左侧,最上层用户的请求通过DNS解析到公网SLB上,其具备可用区级别的主备的容灾能力,把请求再继续路由到可用区级别的应用级别的负载均衡,而应用级别的负载均衡也具备主备的容灾能力,进而将业务请求再路由到业务层面的应用。而应用无论是部署在主数据中心还是备数据中心,其所有数据的读写操作都会请求到主数据中心,包括中间件、数据库的一些操作,且中间件和数据库的数据采用单向同步机制把数据同步到备数据中心。

 

在最下层,应用支持操作所有地域的ECS资源。因此,这套容灾架构可以很好地满足现阶段的业务情况,如业务质量较小、开服Region较少、客户以中小客户为主且主要集中在国内的现状。

 

它可以满足用户在高可用方面的诉求,包括毫秒级别的RPO,因为数据同步是可用区级别的,一般在几毫秒左右。第二,分钟级别的RTO,主要包括最上层的流量切换。为进一步提升应用的性能,在其内部也做了一定的业务改造,主要包括RPC流量在可用区内部封闭处理,目前主流的RPC框架都具备这种能力。

 

这套容灾架构是的我们具备了同城级别的容灾能力,但由于操作的是所有地域的ECS资源,当出现故障时,其影响面较大。

2) 单元化

这个阶段业务开始快速发展,是因为Region持续不断开服,企业客户开始上云,对服务提出了更高的稳定性的诉求。因此这个阶段在高可用方面除了以上提到的几点,还应新增一点,即在故障时尽量控制影响面,仅影响单个地域,而不影响全网其他地域云资源的操作。

 

因此,将该阶段的容灾架构升级为了单元化的容灾架构。这里的单元化是指每个Region的操作都在单元内部闭环处理。当Region出现故障时不会影响另外的Region。这里的单元化与淘宝、天猫异地多活的单元化有一定差异。

 

image.png

 

观察图左侧的架构图,最上层用户请求不同地域时,其对应访问的域名不同,每个域名解析到对应的Region的公网SLB,到单元内部,架构与同城双活的架构基本一致,唯一的差别在于最下方Region A只支持操作Region A的云产品,Region B只支持操作Region B的云产品,进行了单元的隔离。

 

这样,第一,提供了单元化的服务能力,因此在故障时可尽可能地缩小影响面;第二,单元内部依然进行了同城级别的容灾能力,而不具备异地的容灾能力;第三,每个单元都会对外提供访问的域名,随着Region数量的持续新增,会给用户带来体验较差、跨境访问速度较慢等问题。

3) 异地多活(全球化)

image.png

 

随着业务的发展,进入到了第三个阶段。在业务层面的主要特征包括:

 

其一,Region开始快速增加,包括国内外的、开服的Region数量很多;

 

其二,该阶段客户的分布也发生了较大的变化,国内外的客户数量都在快速增加,在进行跨国访问时速度较慢(这里的跨国访问指的说用户在美国,却要操作北京的Region资源,或用户在国内,要操作英国Region的资源,这便涉及到了跨国访问);

 

其三,域名切换体验较差,每个Region都对外提供访问域名,当要操作不同Region的云资源时,就要在各域名之间进行反复的切换,体验较差。

 

在该阶段,用户也提出了更高的可用性诉求,如地域出现故障时,是否可以把请求路由到另外地域进行处理,以那进一步降低故障的影响面。

 

观察左侧的架构图,最上层是一套DNSDNS具备就近路由智能解析能力(用户在不同地域发起请求时,会就近解析出来最近的服务提供的地域,如用户在美国发起请求,则会把请求了路由到美国的服务器上面,如果用户在英国发起请求,则会把请求路由到最近的如德国的服务器上。

 

图片中展示了三个数据中心,而这套架构在线上实际有接近十个左右的数据中心,已基本上实现了全球每个大洲1-2个数据中心的部署,因此,在内部又称之为全球化架构。通过观察图上展示的三个数据中心,可以发现他们之间有一定的差异,数据Region aRegion c所有应用的写操作都回到了Region b的,则一般把Region b称为主数据中心,Region aRegion c称为备数据中心。所有备数据中心应用的写操作都回流到主数据中心,主数据中心把数据更新到数据库之后,数据库又会把数据采用单项同步的方式同步到各个备数据中心。

 

之所以要进行这样的改造,与自身应用的业务特征是有强关联性,因为该应用是非常典型的“读多写少”的应用,这样改造之后可以大幅降低应用本身的复杂度以及容灾系统部署的复杂度。在最下方,支持操作所有地域的ECS资源,在每个Region内部采用的还是同城双活的容灾架构。

 

关于容灾的效果,

 

第一,所有的读操作都具备了异地级别的容灾能力,而写操作依然是同城级别的容灾能力,因为所有的写操作都会回流到主数据中心,主数据中心内部采用了同城双活的容灾架构

 

第二,单元内部是具备的同城级别的容灾能力;

 

第三,使用了DNS智能就近解析能力,可以提升用户的访问体验,现在一般云厂商提供的DNS解析服务中都有智能就近解析的能力。如全球洲级别的路由能力或国家级别的路由能力。

 

这套架构本身有一定的复杂程度,对业务的改造量较大,如刚才提到的所有备数据中心的写操作都要回流对到主数据中心,因为每个数据中心都有缓存中间件,所有的写操作都回到主数据中心之后,数据进行了更新,操作之后如何同步更新备数据中心的缓存也是非常大的挑战。


更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3):https://developer.aliyun.com/article/1405310

相关文章
|
4月前
|
存储 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(3)
112 0
|
1月前
|
负载均衡 安全 Cloud Native
案例分享:F5助力车企打造智能高效自动化应用
案例分享:F5助力车企打造智能高效自动化应用
10 0
|
3月前
|
消息中间件 缓存 运维
云HIS运维运营平台 云HIS解决方案
云HIS重建统一的信息架构体系,重构管理服务流程,重造病人服务环境,向不同类型的医疗机构提供SaaS化HIS服务解决方案。
63 2
|
4月前
|
弹性计算 运维 容灾
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(1)
带你读《云上自动化运维宝典》——一文详解云上跨可用区容灾解决方案和异地多活能力建设最佳案例(1)
182 1
|
4月前
|
供应链 数据可视化 算法
数智制造无界协同:钉钉与罗克韦尔自动化联合发布食品工业数智化解决方案
“蓝海的商机就在跨界之中,钉钉和罗克韦尔两个领域的融合,就是一个深度的IT和OT的端到端的跨界合作”,罗克韦尔自动化中国区总裁石安谈及双方的合作如是说道。在他看来,数字化真正的落地,很大一部分要回归到场景、生态、趋势,回归到如何有效端到端地赋能企业。
|
4月前
|
运维 安全 持续交付
亿氪虹云携手蝶宇云为金蝶云·星空用户带来「IaaS+运维+安全」的三位一体的整体解决方案
为了给用户带来更佳的运维服务,蝶宇云不断进行服务优化,在确定了要从传统的运维服务商向云的应用服务商转型的方向后,与亿氪虹云展开了深度合作。由亿氪虹云在阿里云云市场上来提供金蝶云·星空的计算巢SaaS服务,服务基于阿里云计算巢功能,在交付上实现了自动化部署;在数据安全方面提供了操作录屏功能,可以随时回放审计,为用户数据安全保驾护航;另外用户还可以根据业务实际情况进行非常灵活地扩容,及扩展和伸缩。给金蝶云·星空企业用户带来「IaaS+运维+安全」的三位一体的整体解决方案。
93 0
|
5月前
|
运维 监控 安全
医保项目标准的运维服务解决方案
医保项目标准的运维服务解决方案
61 0
|
16天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1月前
|
Web App开发 Python
在ModelScope中,你可以使用Python的浏览器自动化库
在ModelScope中,你可以使用Python的浏览器自动化库
17 2
|
1月前
|
存储 BI 数据处理
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!
Python自动化 | 解锁高效办公利器,Python助您轻松驾驭Excel!