【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.mzph.cn/news/99206.shtml

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

相关文章

CI/CD工具中的CI和CD的含义

CI/CD工具中的CI和CD的含义? CI/CD 是现代软件开发方法中广泛使用的一种方法。其中,CI 代表持续集成(Continuous Integration),CD 则有两层含义,一是持续交付(Continuous Delivery)…

.net framework中webapi使用swagger进行接口文档展示

第一步:在nuget程序包管理中搜索“Swashbuckle”包,然后进行安装(注:如果是.net core api请安装Sawshbuckle aspnetcore)。 第二步:打开项目App_Start文件夹,修改SwaggerConfig.cs配置文件 我这…

mp4视频太大怎么压缩变小?

mp4视频太大怎么压缩变小?确实,很多培训和教学都转向了线上模式,这使得我们需要下载或分享大量的在线教学视频。然而,由于MP4视频文件通常较大,可能会遇到无法打开或发送的问题。为了解决这个问题,我们可以…

聊聊分布式架构02——Http到Https

目录 HTTP通信协议 请求报文 响应报文 持久连接 状态管理 HTTPS通信协议 安全的HTTPS HTTP到HTTPS的演变 对称加密 非对称加密 混合加密机制 证书机构 SSL到底是什么 HTTPS是身披SSL外壳的HTTP HTTP通信协议 一次HTTP请求的通信流程:客户端浏览器通过…

【Linux升级之路】7_进程信号

目录 一、【Linux初阶】信号入门 | 信号基本概念信号产生核心转储二、【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存 一、【Linux初阶】信号入门 | 信号基本概念信号产生核心转储 链接: 【Linux初阶】信号入门 | 信号基本概念信号产生核心转储 二、【Linux初阶】…

【数据结构-字符串 三】【字符串转换】字符串解码

废话不多说,喊一句号子鼓励自己:程序员永不失业,程序员走向架构!本篇Blog的主题是【字符串转换】,使用【字符串】这个基本的数据结构来实现,这个高频题的站点是:CodeTop,筛选条件为&…

RPC分布式网络通信框架项目

文章目录 对比单机聊天服务器、集群聊天服务器以及分布式聊天服务器RPC通信原理使用Protobuf做数据的序列化,相比较于json,有哪些优点?环境配置使用项目代码工程目录vscode远程开发Linux项目muduo网络库编程示例CMake构建项目集成编译环境Lin…

【计算机网络黑皮书】传输层

【事先声明】 这是对于中科大的计算机网络的网课的学习笔记,感谢郑烇老师的无偿分享 书籍是《计算机网络(自顶向下方法 第6版)》 需要的可以私信我,无偿分享,课程简介下也有 课程链接 目录 传输服务与协议网络层与传输…

常见排序算法Java版(待续)

冒泡排序O(n^2) public class Main {public static void main(String[] args) {Random random new Random();int[] nums new int[]{random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100), random.nextInt(100)};for (i…

英特尔参与 CentOS Stream 项目

导读红帽官方发布公告欢迎英特尔参与进 CentOS Stream 项目,并表示 “这一举措不仅进一步深化了我们长期的合作关系,也构建在英特尔已经在 Fedora 项目中积极贡献的基础之上。” 目前,CentOS Stream 共包括以下特别兴趣小组(SIG&a…

汽车冲压车间的RFID技术设计解决方案

一、RFID技术的基本原理 RFID技术是一种利用非接触式自动识别的技术,通过将RFID标签放置在被识别物品上,并使用RFID读写器对标签进行扫描和识别,实现对物品的自动识别和追踪。RFID标签分为被动式和主动式两种。被动式标签无内置电源&#xf…

23.3 Bootstrap 框架4

1. 轮播 1.1 轮播样式 在Bootstrap 5中, 创建轮播(Carousel)的相关类名及其介绍: * 1. carousel: 轮播容器的类名, 用于标识一个轮播组件. * 2. slide: 切换图片的过渡和动画效果. * 3. carousel-inner: 轮播项容器的类名, 用于包含轮播项(轮播图底下椭圆点, 轮播的过程可以显…

HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息

HTTP协议 什么是协议 协议实际上是某些人或组织提前制定好的一套规范,大家只要都按照这个规范来就可以做到沟通无障碍 HTTP协议是W3C(万维网联盟组织)制定的一种超文本传输通信协议(发送消息的模板和数据的格式),除了传送字符串,还有声音、视频、图片等流媒体等超文本信息 …

ctfshow-web11(session绕过)

php代码审计: function replaceSpecialChar($strParam){$regex "/(select|from|where|join|sleep|and|\s|union|,)/i";return preg_replace($regex,"",$strParam);} 首先定义了一个函数,主要是使用preg_replace函数对我们提交的内…

SpringBoot的创建和使用

优点 快速添加依赖; 内置web容器; 自动装配; idea创建 创建maven项目(配置) 一定要选择2.x版本的Spring Boot 介绍目录 (有这个注解的SpringBootApplication就是启动类) 删除文件 尝试去运行带有SpringBootApplica…

面向对象设计-UML六种箭头含义

目录 UML概述UML语义UML表示法 六种常用关系标识方法泛化实现依赖关联聚合组合 本文参考文章 https://blog.csdn.net/qq_25091281/article/details/123801862 UML概述 UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以…

数学分析:含参变量的积分

同样很多收敛性的证明不是重点,但里面的知识还是需要适当掌握,知道中间的大致思考和解决路径即可。 本质还是极限的可交换性,求导可以换到积分里面去操作。 这里要注意变量的区别,首先积分的被积变量是x,但是函数的变量…

springsecurity

springsecurity 一个安全框架,例如:在进行登录之前,会进行一个拦截,经过安全框架之后,才会跳转到原本要登录的地址 culr:(不细写,需另找文档) 可以进行登录的操作(在git…

[Android]问题解决-Device must be bootloader unlocked

现象 在push文件时,remount命令发生如下报错: $ adb remount Device must be bootloader unlocked解决 1. 打开 开发者模式中的OEM unlocking开关 2. fastboot unlock设置 adb reboot bootloader fastboot flashing unlock根据屏幕提示,…

Android 多线程并发详解

一,基础概念 1.1什么是CPU 中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的…