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

news2024/12/26 0:08:44

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

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

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.coloradmin.cn/o/1068709.html

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

相关文章

【机器学习】svm

参考 sklearn中SVC中的参数说明与常用函数_sklearn svc参数-CSDN博客https://blog.csdn.net/transformed/article/details/90437821 参考PYthon 教你怎么选择SVM的核函数kernel及案例分析_clfsvm.svc(kernel)-CSDN博客https://blog.csdn.net/c1z2w3456789/article/details/10…

【Python_PySide2学习笔记(十六)】多行文本框QPlainTextEdit类的的基本用法

多行文本框QPlainTextEdit类的的基本用法 前言正文1、创建多行文本框2、多行文本框获取文本3、多行文本框获取选中文本4、多行文本框设置提示5、多行文本框设置文本6、多行文本框在末尾添加文本7、多行文本框在光标处插入文本8、多行文本框清空文本9、多行文本框拷贝文本到剪贴…

什么是EJB以及和Spring Framework的区别

👔 前言 EJB,对于新生代程序员来说,是一个既熟悉又陌生的名词,EJB,大家都听说过,但是不一定都了解过,EJB是一种开发规范,而不是像Spring Framework一样是一个开源框架,E…

卫星/RedCap/高算力/解决方案/创新金奖……移远通信为IOTE 2023再添新活力

9月20日,IOTE 2023第二十届国际物联网展深圳场震撼来袭。 作为IOTE多年的“老朋友”,移远通信在参展当天,不仅有5G RedCap、卫星通信、高算力、车载等高性能产品及终端展出,还携智慧出行、智慧生活、智慧能源、工业互联网等多领域…

redis集群是符合cap中的ap还是cp

近期忽然间考虑到了这个问题。 cap 理论 cap是实现分布式系统的思想。 由3个元素组成。 Consistency(一致性) 在任何对等 server 上读取的数据都是最新版,不会读取出旧数据。比如 zookeeper 集群,从任何一台节点读取出来的数据…

SpringBoot 如何配置 OAuth2 认证

在Spring Boot中配置OAuth2认证 OAuth2是一种用于授权的开放标准,允许应用程序安全地访问用户的资源。Spring Boot提供了强大的支持,使得在应用程序中配置OAuth2认证变得非常容易。本文将介绍如何在Spring Boot中配置OAuth2认证,以便您可以在…

ThreeJS-3D教学六-物体位移旋转

之前文章其实也有涉及到这方面的内容,比如在ThreeJS-3D教学三:平移缩放物体沿轨迹运动这篇中,通过获取轨迹点物体动起来,其它几篇文章也有旋转的效果,本篇我们来详细看下,另外加了tween.js知识点&#xff0…

基于SpringBoot的靓车汽车销售网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 车辆展示管理 车辆品牌管理 用户交流管理 购物车 用户交流 我的订单管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的…

除静电离子风刀的工作原理及应用

除静电离子风刀是一种能够产生高速气流并带有离子的设备,主要用于去除物体表面的静电。它的工作原理是通过离子产生器产生大量负离子,并通过高压电场将离子加速,使其成为一股高速气流,从而将静电荷从物体表面中除去。 除静电离子…

阿里云 linux tomcat 无法访问方法

1、阿里云放行tomcat端口 例如7077端口号 2、linux 命令行防火墙 设置端口打开 以下命令查看是否开启指定端口 firewall-cmd --list-ports以下命令添加指定端口让防火墙放行 firewall-cmd --zonepublic --add-port3306/tcp --permanent以下命令重新启动防火墙 systemctl re…

聊一下读完“优势成长”这本书后感

(优势成长上) (优势成长下) 最近读完了一本个人觉得还可以的书,这本书是一位新东方老师,帅键翔老师写的 整本书概括起来,最重要一点就是找到自己的优势,然后利用自己的优势,去挖掘自己的潜力,发现新大陆 能适应时代变化的,是“新木桶原理”&a…

JAVA中解析package、import、class、this关键字

一、前言 代码写的多了有时候我们就慢慢忽视了最简单,最基本的东西。比如一个类中最常见出现的package、import、class、this关键字。我们平时很少追究它的含义或者从来不会深究为什么需要这些关键字。不需要这些关键字,又会怎样。这边博文就简单介绍一下…

设计模式 - 观察者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 观察者模式属于行为型模式。在程序设计中,观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应&#xf…

攻防世界 Web_python_template_injection SSTI printer方法

这题挺简单的 就是记录一下不同方法的rce python_template_injection ssti了 {{.__class__.__mro__[2].__subclasses__()}} 然后用脚本跑可以知道是 71 {{.__class__.__mro__[2].__subclasses__()[71]}} 然后直接 init {{.__class__.__mro__[2].__subclasses__()[71].__i…

18373-2013 印制板用E玻璃纤维布 知识梳理

声明 本文是学习GB-T 18373-2013 印制板用E玻璃纤维布.pdf而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了印制板用E 玻璃纤维布的定义、代号与规格、要求、试验方法、检验规则、标志、包装、 运输和贮存。 本标准适用于以E 玻璃…

移远通信:探索智慧支付新方式,创新智慧金融新格局

回顾支付工具的演变历程,从刷卡支付到扫码支付,再到 “即拿即走”的自动支付模式创新,货币的电子化程度一直在层层深入。这其中,物联网技术的作用不可言喻。 当下,伴随着物联网行业自身的变革与创新,以连接…

MySql8.0 驱动编译和使用 - Qt mingw73_32

一、开发背景 现在已经有 MySql8.0.33 是 64 位的数据库,仅支持 64 位的程序,但是当前 Qt 程序编译环境是 mingw73_32,所以需要编译 32 位的 MySql 驱动库 二、开发环境 QtCreator4.8.2 Qt5.12.2 MySql8.0.33 三、实现步骤 1、下载 MySql…

halcon 算子set_display_font

set_display_font 算子:set_display_font( : : WindowHandle, Size, Font, Bold, Slant : ) 示例:set_display_font (200000, 24, ‘mono’, ‘true’, ‘false’) 200000(输入参数1):输入窗口句柄 24(…

Git从本地库撤销已经添加的文件或目录

场景 在提交时, 误将一个目录添加到了暂存区, 而且commit 了本地库,同批次commit 的还有其他需要提交的文件。 commit 之后发现这个目录下所有的文件都不需要提交, 现在需要撤销这个提交, 使这个目录不被push到远端库。 这里以远端服务器github 为例,在Git GUI下看到的…

stm32之freeRTOS驱动小车

该文章记录将stm32之智能小车总结移植到freeRTOS上,期间也遇到了好些问题,这里做下记录。也是对freeRTOS的一个应用实践。 一、freeRTOS工程的创建 工程是利用CubeMX进行创建的,挺简单的,有空再试下手动移植freeRTOS。 启用软件定…