玩转ECS第6讲 | 弹性计算Region化部署和跨可用区容灾介绍

弹性计算Region化部署和跨可用区容灾本身是非常复杂的课题,本次分享由阿里云弹性计算架构负责人李钟(谢顿)为大家介绍如何选择Region,同时结合阿里云在Region化部署和跨可用区容灾的实践经验,分享多region部署场景中如何使用阿里云弹性计算的最佳实践,并结合弹性计算的实践经验探讨如何基于阿里云多可用区实现跨地域容灾。

一、Region和可用区介绍
该部分主要介绍Region和可用区,包括阿里云建设Region和可用区的原因、划分等。

1.Region(地域)与Available Zone(可用区)

Region(地域):根据定义,Region是相互独立的地理区域,Region中包含多个Available Zone。可通过阿里云Region和可用区分布图直观了解。

Available Zone(可用区):Available Zone是Region内网络和电力相互独立的区域,具有两个主要特点。第一,Available Zone网络和电力相互独立,具有故障隔离能力。当一个可用区内部网络、电力出现问题时,不会影响其他可用区。第二,相同Region内的可用区之间内网互通,通过高速网络连接,网络延迟低(ms级)。

即可用区之间有故障隔离,同时相同Region内的可用区之间网络延迟较低,可以将多个可用区视为整体提供服务,也为后续做跨可用区容灾提供了基础。
此处需要指明,并不是先规定了地域和可用区后才发现可支持高可用服务建设,而是在有高可用服务需求的基础上通过Region与可用区方式进行了资源划分。

2.如何选择Region?

选择一个Region有以下三点重要影响因素:

第一,地域选择需要符合相应政策和法律合规性需要。例如向美国提供服务,要求对应数据与服务器资源必须在该国家内部,那么根据下方Region与可用区分布,只能申请美西、美东两处资源。
第二,需要根据所需云产品在各个地域的功能开通情况和SLA选择合适区域。
第三,一般选择距离用户更近且网络延迟更低的地域,保证用户快速接入。

虽然Region的选择看似条款化,但是实际选择时是更为简单直观的,较易得到最优选择。

3.阿里云Region与可用区分布

目前为止,阿里云公共云在全球建设21个地域63个可用区,资源正在快速增长中,未来将支持更多形态。

下图所示体现了阿里云在全球多个地理位置提供服务的能力,可见Region是一个地理概念。例如当用户在华北2(北京)Region购买资源时,对应的ECS、RDS产品的确是在该地域范围内。

目前Region与可用区分布较集中在中国,其他国家地区也有分布,在南美与非洲缺少Region建设,是后续的发展方向。

而Region的使用稍显复杂。与各个Region交会并不直接使用其名字,而是通过REGION_ID。REGION_ID看似杂乱,其实具有一定特点,可大致分为以下三种:

中国REGION_ID为cn-(城市名),如cn-hangzhou。
大面积国家REGION_ID为(国家代码)-(方位)-(编号),如USA-EAST-2。
其他地区REGION_ID为(地区)-(方位)-(编号)。

二、Endpoints和资源作用域
该部分介绍使用Region与可用区时需要关注的两个关键点:Endpoints和资源作用域。

  1. Endpoints

Endpoints是调用ECS API的接入地址。

调用ECS API首先需要获取Endpoints,即需要知道需要调用的地域的域名,才能调用到相应服务。第二需要有AK,通过某种阿里云特定的算法对调用串做一些加签。如此便可以完成一次请求。

如下表所示,根据不同Region类型,Endpoints接入方式有如下三种:

第一种类型是中心域名Region,其接入点域名地址是ecs.aliyuns.com。此类老地域使用兼容模式只能通过中心域名接入,如cn-beijing。
第二种类型是Region化域名,其接入点为Region化域名地址ecs.REGIONID.aliyuns.com。此类Region使用Region化域名调用,兼容中心域名接入,如cn−zhangjiakou。第三种类型开始考虑不兼容中心域名接入的Region化域名,只能通过Region化域名地址ecs.{REGION_ID}.aliyuns.com。此类Region使用Region化域名调用,兼容中心域名接入,如cn-zhangjiakou。 第三种类型开始考虑不兼容中心域名接入的Region化域名,只能通过Region化域名地址ecs.REGIONID.aliyuns.comRegion使RegioncnzhangjiakouRegionRegionecs.{REGION_ID}.aliyuns.com接入,如cn-heyuan。

针对以上三种类型Region的接入得到了最佳实践。非中心域名的地域,建议使用Region化域名地址ecs.${REGION_ID}.aliyuns.com。部分Region只能使用中心域名访问,后续会之间切换为Region化域名。

2.资源作用域

使用ECS过程中会有多种资源,每一种资源有其特定的作用域。

下表罗列了部分资源。如账号、角色、AK此类为全局性信息,所有Region共享。实例、云盘为可用区级别的概念,创建实例、云盘都需要选择一个特定的可用区,但是实例只能挂载相同可用区的云盘。快照、镜像资源、keypair、安全组的作用域均为Region,在Region内各个可用区均可访问。当需要跨Region使用快照、镜像资源时,需要先进行资源复制操作,在另一个Region上形成新资源才可以使用。

资源作用域并非规定成章,有时会存在变化,大部分时期是上述情况。

三、多可用区容灾和Region化部署
该部分介绍如何利用Region与可用区地域分布以及可用区电力、网络故障隔离和低延迟的特点实现多可用区容灾和Region化部署。

1.跨可用区容灾——冷备方式

冷备方式指两个可用区,一个主可用区运行,一个不运行作为备份。一旦运行中的可用区服务故障,部署并运行备份可用区。冷备方式较易实现,其缺点为主备切换耗时大(分钟级)。

单可用区提供服务:如下图所示,可用区a和可用区b同时提供两套服务,由单可用区提供服务。正常情况下可用区a提供服务,可用区b的ECS服务不进行部署和运行,对应的SLB没有流量。流量从DNS解析到可用区a的SLB,接入请求后SLB会分发到某个ECS。

RDS主备架构:两个ECS访问同一个RDS,RDS采用主备结构,主RDS提供读写服务,同时有一条路径自动同步数据到备RDS,保证两个可用区的数据一致性与及时性,为容灾切换提供基础。

无状态服务:ECS部署无状态服务,所有业务状态存储在数据库中或可从数据库恢复。如此才能在可用区a故障时将整个业务切换到可用区b。

故障恢复方案:可用区a、b存在电力、网络的物理隔离,延迟低,发生可用区级别故障时可切换可用区提供服务。可用区a发生问题时,部署并运行可用区b服务,RDS主备切换,可用区a恢复后可继续进行数据同步。切换DNS,可用区b SLB接收流量开始提供服务。

劣势:冷备方式比单纯的单个可用区提供服务有更强的容灾能力,但是其缺点是切换可用区启动ECS、启动服务等、运行SLB等等操作耗费一定时间,属于分钟级别的容灾。

2.跨可用区容灾——双活方式

双活容灾方式与冷备方式区别在于两个可用区同时运行,数据同步。一旦某一可用区服务故障,另一可用区继续提供服务。双活方式同样易于实现,且主备切换耗时低(s级)。

双可用区同时提供服务:如下图所示,有可用区a和可用区b同时提供两套服务。SLB同时挂载两个可用区的ECS服务,每个可用区的SLB需要将请求分发给两个可用区的ECS。

RDS主备架构:自动同步数据,保证两个可用区的数据一致性与及时性。正常情况下两可用区服务均访问RDS主节点。

无状态服务:ECS部署无状态服务,所有业务状态存储在数据库中或可从数据库恢复。

故障恢复方案:当一个可用区发生问题时,RDS可自动主备切换。DNS定时检测SLB状态,屏蔽故障可用区,SLB定时检测ECS服务状态,屏蔽故障服务。该场景下大部分检测自动实现,部分复杂场景下可能需要手动确认故障,但是该切换过程迅速,可实现秒级切换。

以上两种跨可用区容灾方式较为实用、常见,实现条件均是可用区之间具备网络、电力的物理隔离以及低延迟特点。

3.跨Region部署

此处仅介绍较为简单的跨Region部署模式。

首先进行地域划分。Region化部署完成后,每个Region中由可用区容灾的集群保证高可用性。但是客户端调用地域时一个Region不能支持所有用户与资源访问。因此首先需要根据用户或者资源所属地域进行划分,通过DNS服务获取Region化地址。该DNS可能是阿里云提供的服务或其他服务,DNS根据用户或资源返回相应的Region化地址。

例如某用户访问Region 1,则调用Region 1的服务提供相应支持,某用户访问Region 2,则调用Region 2的服务提供相应支持。

Region内双可用区容灾。地域划分完成后,当可用区级别问题扩大到Region级别问题场景下,并未提供Region级别容灾能力,但是提供了隔离能力。例如当Region1发生问题,无法切换到Region2进行容灾,但是可以实现隔离,当Region 1出现问题时Region 2不受影响,即能够保存一部分工作服务的能力。

若需要提供Region级别容灾能力,需要实现跨Region的数据同步或复制,将一个Region的数据、用户状态等复制到另一个Region,即可实现Region切换。如此将更加复杂。Region级别容灾等复杂方案此处不做介绍,有兴趣者可自行查阅资料。

故障影响和恢复。用户最终选择的容灾方式、故障隔离级别、故障恢复方案等需要根据自身业务需求、实现难度与故障概率等进行判断,选择最适合自身业务的方案。

综上所述,本次分享介绍了Region、可用区的定义、故障隔离与低延迟特性、关键点以及跨可用区容灾等基本概念。大家可以利用阿里云的基础架构以及业务相应支持提高服务可用性,在一定级别实现容灾,提供更好的服务。

感兴趣的同学可通过学习更加具体的场景下不同跨可用区容灾方案,更加深入了解跨Region容灾。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为产业数字化赋能!施耐德电气数字产业示范园落户北京

无人车在工厂里按部就班输送货物,机械臂快速装备各零件,庞大的车间内,智能生产线只有寥寥的工人……小时候畅想过的智能工厂,在北京亦庄新成立的施耐德电气数字产业示范园里实现了。 新成立的示范园包括施耐德电气(中…

在大规模 Kubernetes 集群上实现高 SLO 的方法

简介: 随着 Kubernetes 集群规模和复杂性的增加,集群越来越难以保证高效率、低延迟的交付 pod。本文将分享蚂蚁金服在设计 SLO 架构和实现高 SLO 的方法和经验。 作者 | 蚂蚁金服技术专家 姚菁华;蚂蚁金服高级开发工程师 范康 导读&#xf…

TI Inside,情报协同的最佳实践

6月18日,以“新IN力 御万象”为主题的 TI Inside 威胁情报应用生态协同峰会在北京隆重召开。此次峰会吸引了数百位网络安全产业专家、龙头企业代表、威胁情报生态合作机构、分析机构以及权威媒体齐聚一堂,共同交流威胁情报的最佳应用实践,探讨…

mysql分页查询所有数据库_MySQL 数据库 分页查询/聚合查询

引言在本篇博客简单介绍一下分页查询以及聚合查询简单操做。html分页查询在MySQL中,分页查询通常都是使用limit子句实现,limit子句声明以下:mysqlSELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT子句能够被用于指定 SEL…

阿里云高级技术专家白常明:边缘云的技术挑战和应用创新

随着5G商用周期的开始与新基建的发展, 5G边缘计算带动并赋能数字化行业,逐渐形成了预期可观的产业规模。5G周期内,直接和间接带动产业规模就高达万亿级,在如此巨大的市场规模下,会有越来越多的行业具备数字化转型的技术…

饿了么技术往事(中)

在上一篇文章《饿了么技术往事(上)》中,我介绍了饿了么最早期 All in One 阶段的架构,以及第二阶段业务系统拆分与团队运营的一些思考,以及我对于架构师职责的感受,接下来我会详细介绍饿了么全面服务化的架…

高质量的缺陷分析:让自己少写 bug

简介: 缺陷分析做得好,bug 写得少。阿里资深技术专家和你分享如何进行高质量的缺陷分析,总结了 5 个要点,通过缺陷分析消除开发中的各种盲点,打造一个学习型的团队。 作者 | 嵩华 导读:缺陷分析做得好&am…

python 小海龟鼠标画图_Python小海龟画图

import turtle运动命令forward(d) 向前移动d长度backward(d) 向后移动d长度right(d) 向右移动d长度left(d) 向左一定d长度goto(x,y) 移动到坐标为(x,y)的位置speed(speed) 笔划绘制的速度1-10笔画控制命令up() 笔画抬起,在移动的时候不会绘图down() 笔画落下,下次绘图时则有效s…

IT、OT融合趋势下,西门子举办“第一届西门子工业边缘生态大会”

近日,西门子举办“第一届西门子工业边缘生态大会”,以“聚势边缘 共赋未来”为主题,来自全国机构专家、工业制造商、系统集成商、互联网伙伴、软件和大数据伙伴、媒体等生态伙伴深入交流未来工业的发展方向。 “边缘层融合IT和OT层&#xff0…

T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践

简介: 阿里云工程师李伟男和郭成在 KVM Forum 2020 上详细介绍了阿里云 KVM 虚拟机创建及启动时间优化的具体技术实现,本文根据其演讲整理而成。 对于云计算用户来说,过长的 KVM 虚拟机创建及启动时间非常影响体验,特别是超大规格…

Android网络性能监控方案

背景 移动互联网时代,移动端极大部分业务都需要通过App和Server之间的数据交互来实现,所以大部分App提供的业务功能都需要使用网络请求。如果因为网络请求慢或者请求失败,导致用户无法顺畅的使用业务功能,会对用户体验造成极大影…

打破云原生时代存储瓶颈,SmartX 发布 K8s 云原生存储 IOMesh

编辑 | 宋 慧 供稿 | SmartX 头图 | 付费下载于视觉中国 专业超融合与分布式存储产品与解决方案提供商 SmartX 发布为 Kubernetes 设计和开发的云原生存储产品 IOMesh 预览版(以下简称“IOMesh”),加速数据库等有状态应用的容器化进程。 IO…

flume获取mysql日志到hdfs_Hadoop实战:Flume输入日志到HDFS报错解决

使用Flume把日志存储到HDFS,在启动时报错如下:2017-06-16 08:58:32,634 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:…

全球边缘计算大会:阿里云资深技术专家李克畅谈边缘计算的技术趋势与挑战

2020年11月7日,以“5G边缘计算“为主题的全球边缘计算大会在北京新世界大酒店成功召开,作为业内首个专门为边缘计算人打造的行业盛会,此次活动现场共有超过600来自政、产、学、研、用各界的企业负责人、权威技术专家、通信科技从业者、边缘计…

《科学:无尽的前沿》分享会在京举办,助力中国企业打造“科研的应许之地”

当今世界百年未有之大变局加速演进,疫情影响广泛深远,不稳定性不确定性明显增加。科技创新成为国际战略博弈的主要战场,围绕科技制高点的竞争空前激烈。 6月19日,远望智库、中信出版集团联合举办了新书《科学:无尽的前…

mysql 5.1 db2i_DB2 9.5.0.0升级至9.5.0.9(小版本升级)

0.升级前DB2版本[db2inst1xifenfei ~]$ db2levelDB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09050"with level identifier "03010107".Informational tokens are "DB2 v9.5.0.0", "s07100…

OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?

作者 | 郑超 导读:OpenYurt 是阿里巴巴开源的云边协同一体化架构,与同类开源方案相比,OpenYurt 拥有可实现边缘计算全场景覆盖的能力。在之前的一篇文章中,我们介绍了 OpenYurt 是如何在弱网和断网场景下实现边缘自治的。本文作为…

Dubbo-go 源码笔记(二)客户端调用过程

作者 | 李志信 导读:有了上一篇文章《Dubbo-go 源码笔记(一)Server 端开启服务过程》的铺垫,可以类比客户端启动于服务端的启动过程。其中最大的区别是服务端通过 zk 注册服务,发布自己的ivkURL并订阅事件开启监听&…

云原生时代需要什么样的存储系统?

导读:本文介绍了目前云原生环境下,支持有状态应用的几种典型存储方案的特点,并对市场主流的几个云原生存储产品实际测试性能进行对比。 现状 当前,云原生已经成为应用开发者在选择架构设计时的首选。云原生让应用开发者可以将所有…

mysql管理器源码_一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)

2011年,实习期间写了一个简单的数据库管理器。今天,特意整理了下,分享给大家。有兴趣的同学,可以下载源码,瞧瞧。源码只有4个类:LoginGUI,DatabaseGUI,Record,MySQLModel。1.LoginGUI该类就是一个简单的登录…