• 【Bond随你温故Azure Architecture】之HA&DR篇


    上次复盘数据保护策略还是在《数据需要找回怎么办?我们如何选择正确的恢复/退回方式?》探讨了在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的肯定是不对的哦:)

  • 相关阅读:
    接口测试——接口协议抓包分析与mock_L1
    聊聊接口设计
    这几个好用的去图片水印免费软件,你们知道吗?
    【openwrt学习笔记】miniupnpd学习笔记
    etcd实现大规模服务治理应用实战
    【吃瓜之旅】第三章吃瓜学习
    【深度学习】P0 系列博文架构
    Exception_json反序列化失败_JSONException
    Vue3.0与2.0对比
    【国产MCU】-CH32V307-SPI控制器
  • 原文地址:https://blog.csdn.net/cainiaofly/article/details/133671772