【Bond随你温故Azure Architecture】之HADR篇

上次复盘数据保护策略还是在《数据需要找回怎么办?我们如何选择正确的恢复/退回方式?》探讨了在application&DB层面上,不同level的数据保护有不同策略。而它也恰好是今天HA&DR版图的一角(RDBMS部分),同时今天在cloud上同样会根据不同level的资源进行相应的保护策略复盘。

开篇灵魂6问:(亚运期间,摸着胸口的国旗,沉思片刻)

1. HA 与 DR 在Azure里是如何实现的,它们在架构版图中的哪个位置?

2. 你的场景里具体是哪部分需要HA or DR?

3. Geo,Region,AZ,DC 真的分清楚了吗?

4. 众多资源中,最需要被保护的对象是什么?

5. Azure中如何衡量HA与DR的指标?

6. 如果是Aliyun或者AWS,在HA或者DR的特性上,它们类似吗?

众所周知,Azure能提供的数据完整性与安全性功能,与通常各种cloud产品白皮书所提到的一样,连邻居的叔叔阿姨都能说上一二,这里不再赘述。

但是作为工程师需要知道,Azure之所以能提供数据高可用与灾难恢复的能力,不仅是因为产品自身架构的“可靠性 Reliability”,同时需要管理员进行“弹性 Resilience”逻辑的设计与实施。

有时候过多的言语不如一张图来地直观:

ps:家里小娃评价这张图颜色还不错,如果能加上一只可爱的🐤就好了,所以满足一下:)

1. DR一般指的是跨Region (几百公里)的灾难恢复,实际上是尽可能远。  
   Region内会有多个AZ,通常是做HA (也可以是Availability Set),AZ之间延迟小于2ms
   注意:两region三个AZ 并非传统说法的“两地三中心”,原因是“三中心”里的只有一个DC是处于不同的地域(或者城市)。切勿套用!(见图左上部分)

2. 业务场景中最需要保护的是stateful的对象,即用户DB数据,其余stateless的资源大多都可重建或者一次性部署(见图右上部分)
3. Azure已经做好了Region Pair (见图左上部分)
4. 确认DR为目的之后,再看需要被保护的是IAAS 还是 PAAS,有多个层级 (见图右上部分)
5. 常规可选策略:(见图右上部分)
    a. 重建Infra ARM, IaC.  但是不包括上层服务
    b. 逻辑或者物理备份定期转移(费时费力)
    c. replication 针对data。 例如MSSQL的跨region的always on.  AzureSiteRecovery
       stoageaccount也是可以被自动同步到不同region的 (见图左下部分)
6. Azure有小部分服务并不是仅部署再一个region内的,称作Global服务。通常这类服务已经具备DR能力. 例如Azure AD,CDN,AzureFrontDoor(七层用于负载多个不同地区网络流量的LB),TrafficManager(基于DNS的LB)

7. 针对不同服务的DR方式 从上至下,金额成本递减;同时RPO/RTO指标也递减. 所以使用DB原生的PaaS服务进行保护指标最好 (见图右上部分)
    a.APP层内的数据, 利用app本身具备的DR,例如MSSQL alwayson, 主读写节点,向从只读节点同步或者异步复制,异地通常都是async方式。 (除了存储,网络费用,还需要计算资源)
    b.OS内的站点 可以利用siterecover(ASR)服务  (至少需要存储,网络费用)
    c.resource层
        storage account利用GRS服务(GeoredundantService);
        AzureBackup中的CRR(CrossRegionRestore)将主region的数据进行备份并发送至辅助region (至少需要存储,网络费用)
        重建Infra ARM, IaC (灾难发生前几乎没有辅助站点资源消耗)

8. 重要的HA,DR指标 (见图右下部分)

9. 方案规模从小到大:(前三为HA,第四位DR)
    当使用single VM时,针对disk,可以选择Premium SSD (SLA 99.9%)来提高SLA指标,因为数据是默认被存储为3份的; Standard SSD (SLA 99.5%); Standard HDD (SLA 95%)
    当使用Datacenter时,某一个机架坏掉,导致多台server不可用. 可以将VM放在Availability Set中,这样Azure会将他们放进不同Azure Fault Domain的机架上 (SLA 99.95%)
    当一个Datacenter坏掉,一般是电源或者网络导致。可以放在不同的AZ上 (SLA 99.99%)
    整个Region因为天灾(洪水或者地震)变得不可用,需要启用DR。 例如ASR

10. 如果是Aliyun,也是大同小异。它同样有Region的布局,通过CEN去连接不同的VPC实现跨区域通信,在应用与DB层面也会利用主从复制,读写分离,前面LB分流+DNS,后端ESS+OSS的方式实现各种HA或者DR的需求。后面打算更新一期“Transform Your Azure Knowledge to Aliyun”。

今天没有白话,言语见拙,若影响了阅读或者未能详尽之处,还请见谅,可参考官方文档,例如且不限于下面:

What are Azure availability zones? | Microsoft LearnLearn about availability zones and how they work to help you achieve reliabilityicon-default.png?t=N7T8https://learn.microsoft.com/en-us/azure/reliability/availability-zones-overview?tabs=azure-cli

Azure cross-region replication | Microsoft LearnLearn about Azure cross-region replicationicon-default.png?t=N7T8https://learn.microsoft.com/en-us/azure/reliability/cross-region-replication-azure#azure-paired-regionsData redundancy - Azure Storage | Microsoft LarnUnderstand data redundancy in Azure Storage. Data in your Microsoft Azure Storage account is replicated for durability and high availability.icon-default.png?t=N7T8https://learn.microsoft.com/en-us/azure/storage/common/storage-redundancy

后记:HA或者DR的思想是伟大的,但是若生活里在同城有HA或者大洋的彼岸还有一个DR的肯定是不对的哦:)

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

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

相关文章

九大装修收纳空间的设计,收藏备用!福州中宅装饰,福州装修

如果房子面积不大,收纳设计就显得非常重要。其实装修房子中很多地方都可以做收纳,九大空间每一处都可以放下你的东西,让你摆脱收纳烦恼。 收纳空间少的话,装修完后住久了怕会乱成一窝,因此装修的时候,收纳…

基于微信小程序的个人健康数据管理平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

数据结构之堆,栈的实现

首先我们分析由于只需要尾进尾出,用数组模拟更简单。 实现的功能如上图。 top可以表示栈中元素个数。 capacity表示栈的容量。 首先是堆的初始化 再就是栈的插入和删除 然后实现显示栈顶元素 大小和检测是否为空的实现 销毁栈的实现(防止内存泄露&…

webserver项目

利用无锁工作队列的Web服务器设计 项目地址https://github.com/whitehat32/webserver_no_lock 基本流程与牛客版的一致,下面放一个牛客版的流程框图 引言 在Web服务器的设计与实现中,性能优化是永远不会过时的话题。一般来说,Web服务器需…

戏剧影视设计制作虚拟仿真培训课件提升学生的参与感

说起影视制作,知名的影视制片人寥寥无几,大多数人还在依靠摄影机拍摄实景或搭建实体场景来不断精进场景布局和导演效果,成本高、投入人员多且周期长,随着VR虚拟现实技术的不断发展,利用VR模拟仿真技术进行影视制作实操…

Flutter安卓混淆的相关问题

当你执行 build apk 后,flutter会默认进行混淆,若你的应用中引用了第三方的sdk,在debug模式下没问题,但在release下可能就会出现各种各样的问题,找不到某个类,或者某个功能无法使用,甚至直接崩溃…

C文件操作

目录 文件: 什么是文件 程序文件: 数据文件 文件操作理解: 文件名 文件的打开和关闭 文件指针 文件的打开和关闭 文件的使用方式: 文件的读写: ​编辑 fputc ​编辑fgetc fputs fgets perror fprintf ​…

LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment

现在,您已经了解了如何调整和对齐大型语言模型以适应您的任务,让我们讨论一下将模型集成到应用程序中需要考虑的事项。 在这个阶段有许多重要的问题需要问。第一组问题与您的LLM在部署中的功能有关。您需要模型生成完成的速度有多快?您有多…

WebDAV之π-Disk派盘 + 咕咚云图

咕咚云图是一款强大的图床传图软件,它能够让您高效地对手机中的各种图片进行github传输,多个平台快速编码上传,支持远程删除不需要的图片,传输过程安全稳定,让您可以很好的进行玩机或者其他操作。 可帮你上传手机图片到图床上,并生成 markdown 链接,支持七牛云、阿里云…

上班第一天同事让我下载个小乌龟,我就去百度小乌龟。。。。

记得那会儿是刚毕业,去上班第一天,管我的那个上级说让我下载个小乌龟,等下把代码拉一下,我那是一脸懵逼啊,我在学校只学过git啊,然后开始磨磨蹭蹭吭吭哧哧的不知所措,之后我想也许百度能救我&am…

Python教程:方法重载

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 方法重载 方法重载在Python中起着关键作用。 方法有时接受零参数,有时接受一个或多个参数。 当我们以不同的方式调用同一个方法时,这就被称为方法…

JVM 参数

JVM 参数类型大致分为以下几类: 标准参数(-):保证在所有的 JVM 实现都支持的参数非标准参数(-X):通用的,特定于 HotSpot 虚拟机的参数,这些参数不保证在所有 JVM 实现中…