分享

3AZ比2AZ多了什么?关键是实现免人工切换

 网罗灯下黑 2023-03-28 发布于河南

实话实说,那天直播看下来,没有半点虚的,全是干货,还有一份内容详实的《腾讯云工具指南》,感兴趣的小伙伴可以点击图片获取👇

所以这次,就让我从 3AZ 架构出发,和大家好好分享一下我的心得体会。

1. 介绍

下面我们会依次介绍 3AZ 架构的基础概念和实现原理,讨论 3AZ 架构的优势和关键因素,最后还有基于 3AZ 架构的案例分享。

1.1 什么是 3AZ 部署架构

3AZ部署架构是指在云计算环境下,将应用程序和数据分别部署在三个可用区(Availability Zone)中的一种架构模式。可用区是指在同一地域内,相互隔离且具有独立供电和网络的数据中心。三个可用区是最小部署区域,但是在不同的故障域内,它们之间通过高速网络互相连接。

1.2 设计目标和优势

3AZ 部署架构是一种为企业私有化部署设计的分布式应用程序的架构模式,其设计目标和优势包括:

● 高可用性:将应用程序的副本在多个可用区之间进行部署,从而提高应用程序的可用性,减少因单个可用区故障而导致的停机时间。

● 数据可靠性:数据通常会在多个可用区之间进行复制和备份,以确保数据的可靠性和安全性。在出现故障时,系统可以自动将请求转发到另一个可用区,以避免数据丢失。

● 扩展性:可以将应用程序的副本在多个可用区之间部署。当需要增加更多的容量时,可以很容易地向可用区添加更多的服务器或实例,而不会影响应用程序的性能或可用性。

● 成本收益:虽然该架构需要更多的硬件资源和更高的成本,但它提高了应用程序的可靠性,减少了因单个可用区故障而导致的维修和恢复成本,降低因停机时间造成的损失。

2. 3AZ 架构的关键

3AZ 架构是一种分布式应用程序的部署架构,通过合理的设计和实现,可以提高应用程序的可用性、可靠性和扩展性。

● 分散架构:每个可用区都是一个独立的数据中心,在不同的 AZ 来部署应用程序的不同副本。AZ 具有独立的供电系统、网络等。

● 网络设计:需要确保多个可用区之间的网络连接稳定可靠,以便在需要时能够快速切换到备用可用区。通常情况下,会使用专用网络或者虚拟专用网络(VPC)来实现多个可用区之间的网络连接,并且需要在不同可用区之间建立冗余网络连接。

● 数据存储设计:需要将数据存储在多个可用区之间,以确保数据的复制和备份。可以使用数据库复制或者分布式文件系统等技术来实现。

● 容错设计:需要确保系统能够自动检测和处理可用区故障。当一个可用区出现故障时,系统需要自动将请求转发到备用可用区。可以使用负载均衡器来实现请求的转发和负载均衡。

3. 最佳实践

通过实现高可用性架构、自动化和监控等措施,可以帮助 3AZ 架构实现更高的可靠性和效率。

3.1 高可用性架构

高可用性架构:为了实现高可用性,3AZ 架构应该具备以下特点:

● 网络接入层:3AZ统一接入到骨干网,通过骨干网实现互联互通能力。

● 负载均衡层:通过跨AZ大集群形式部署,实现CLB实例的跨AZ负载及容灾能力。

● 计算及存储-资源层:通过跨AZ的 统一大 VPC,可将 3AZ的云服务器划分在同一个VPC,实现3层网络可达,不需要经过集中式网关集群。业务可在 大VPC内进行3AZ的多活实例部署。

● SDN网关层:通过跨AZ大集群及就近访问能力,实现流量的就近接入及集群故障下的跨AZ流程接管能力。

● PaaS资源层:通过跨AZ大集群能力,用户可创建的实例的多副本跨AZ分布的PaaS服务实例,应用层无需关心PaaS实例副本间的跨AZ数据同步等处理,使用统一VIP进行访问。由PaaS服务提供跨AZ容灾能力。

● 云管平台及底座层:将整体云管平台的容器及持久支撑服务组件实现跨AZ部署与调度,满足云管平台的跨AZ高可用,避免单一AZ故障后的平台不可用。

下面是简单示意图,展示了一个应用程序在 3AZ 架构中的部署方式:

图中,应用程序被部署在每个可用区中,每个实例都将被部署在不同的子网和故障域内。这样,即使一个可用区发生故障,其他可用区仍然可以提供服务。

3.2 自动化和监控告警

自动化:自动化是 3AZ 架构中是很重要的,通过自动化可以简化部署和管理应用程序的过程,提高效率和降低出错概率。

● 使用自动化工具部署和管理应用程序、基础设施,如 Helm、Ansible、DevOps、PaaS、SaaS 等平台。

● 自动化监控和告警,使用工具实现自动告警和自动恢复机制,例如 Prometheus、Grafana、Alertmanager 等。

监控告警:通过监控各项指标实时了解应用程序的运行情况,及时发现和解决问题,主要从以下方面监控:

● 基础设施:包括服务器、负载均衡器、数据库等。

● 应用程序:包括 App 各项指标和性能参数,例如响应时间、吞吐量等。

3.3 安全合规性

3AZ 架构是一种云架构,在这种架构中,安全合规是非常重要的考虑因素。

● 访问控制:3AZ 架构使用身份验证和授权来控制用户和服务对资源的访问。可以使用各种身份验证方法来保护资源。

● 可追溯性:提供完整的操作记录和审计功能,确保符合各种合规性要求,记录所有的访问和操作,包括用户、服务和资源的访问和修改记录。

● 网络保护:提供网络流量隔离功能以满足各种合规性要求,例如虚拟专用网络、网络访问控制和安全组等

4. 3AZ 架构案例

在上面部分中,我们对 3AZ 架构的基本要求展开了详细说明。但对于云计算提供商来说,客户的需求是多样化的。我们在最新一期《腾讯云工具指南》中看到,腾讯云利用 3AZ 结构对国内某银行系统国产化改造。这个项目客户要求如下:

● 按需在同一个云内投放多种架构的云资源池,包括海光、鲲鹏,飞腾、X86 资源

● 对 RPO、RTO 要求极高,需要容灾能力强、未来能够支持扩展为多地域部署的架构

> RPO 即数据恢复点目标,指的是业务系统所能容忍的数据丢失量。RTO 即恢复时间目标,主要指的是所能容忍的业务停止服务的最长时间

● laas 及 Paas 产品之间深度融合及配置联动,避免传统私有云的多个产品之间的管理、维护的割裂

● 实现计算资源池、存储资源池,数据库资源池超大池化的能力,内置各云产品的日常监控、故障处理、扩缩容、版本升级等产品化能力,能够统一调度和运维管理

针对上述要求,腾讯云全栈云平台 TCE 提供 IaaS/PaaS/SaaS 全量云产品矩阵,满足企业的私有化部署,安全合规、自主可控的需求。并且支持各种芯片架构,满足国产化需求。

> TCE 服务器类型和芯片架构支持列表:https://cloud.tencent.com/solution/tce

腾讯专有云 PaaS 平台,简称 Tencent TCS,以应用为视角,在 Kubernetes 为代表的云原生核心技术基础上构建的云原生 PaaS 平台,结合了云原生应用的自动化编排、弹性扩容、灰度发布、微服务治理、高可用、DevOps 等优势。

对于多地域部署,容灾能力、RTO 等要求,腾讯云提供了 3 种部署架构:

仲裁区(Arbitration Zone)物理独立于 MAZ(Multi-Active Zone) 和 SAZ(Single-Active Zone),并且网络上和 MAZ,SAZ 可以互相通信,只部署需要选举的分布式服务,不部署具体业务服务。以 Other AZ 的角色加入到 TCS 整体架构进行协同工作,使得之前的 MAZ,SAZ 从云平台本身角度演进为平等角色,减少人工手动介入的步骤。

仲裁区本身链接 MAZ 和 SAZ 的网络带宽普遍比较低,时延也相对较大,因此采用策略不让服务去连仲裁区节点,仲裁区只用作集群内部选举。

下面是经过测试的,几类中间件在不同部署架构情况下时高可用和 RTO 情况:

对于 ES 来说:

● 2AZ 仲裁区部署架构:ES 集群被部署在两个可用区中(和2AZ时一样),当一个可用区中的节点出现故障时,需要手动重新选举主节点。这个过程需要消耗一定的时间,因此 2AZ + 仲裁区的恢复时间相对较长。

● 在 3AZ 环境架构中:ES 集群被部署在三个不同的可用区中,每个可用区中都有多个节点。ES 集群在不同的可用区域中部署,数据也会在不同的可用区域中进行复制。因此,即使某个可用区域中的节点出现故障,数据仍然可以在其他可用区域中的节点上找到。ES 集群具有自动恢复功能,当一个节点出现故障时,这种自动化的恢复过程可以大大缩短系统的恢复时间。

它在2AZ+仲裁区的容灾效果弱于3AZ。

对于Redis来说,以哨兵模式为例:

● 2AZ+仲裁区部署架构: 3 个 Sentinel 节点分别分布在 3 个可用区(1+1+1),2 个 Redis 数据节点部署在 2 个可用区(1+1,仲裁区不部署数据节点)。在 Redis 主从 + Sentinel 架构模式下,Sentinel 负责集群高可用切换,当其中任意一个可用区故障时,多数派 Sentinel 可以选出新的 Redis master,自动恢复服务,保证集群高可用。

● 3AZ部署架构: 3 个 Sentinel 节点和 3 个 Redis 数据节点分别分布在 3 个可用区(Sentinel 1+1+1,Redis 数据节点 1+1+1),在 Redis 主从 + Sentinel 架构模式下,Sentinel 负责集群高可用切换,当其中任意一个可用区故障时,都可保证 Sentinel 多数派存活,进而选出新的 Redis master,自动恢复服务,保证集群高可用。

它在2AZ+仲裁区的容灾效果近似等同3AZ。

对于系统整体而言,它有很多类似ES,Redis的这类服务组件,2AZ+仲裁区整体的容灾能力是介于2AZ和3AZ之间的。

5. 总结

2AZ,2AZ+仲裁区本身出现故障,系统恢复时间较长。因此,2AZ 仲裁区的环境架构相对于 3AZ 的环境架构来说,可用性和容错性都有所下降。

在实际部署中,需要根据实际需求和业务情况,权衡各种因素,选择最合适的环境架构和部署方案。例如,对于金融行业和医疗行业等对可用性要求极高的行业,更适合基于 3AZ 部署架构。

在 3AZ 部署架构中,可以使用腾讯云全部公有云能力,也可以私有化部署,满足数据安全合规要求。并且兼容 Kubernetes、Docker 等云原生技术,使得在 3AZ 部署架构中进行应用程序的开发和部署变得更加简单和高效。

在最新一期的《腾讯云工具指南》中,腾讯云通过具体技术案例介绍了底层操作系统、数据库、大数据等多个重点核心领域的迁移技术难点及解决方案。

对于国产化解决方案感兴趣的小伙伴,可以点击下方图片下载。

👇获取最新《腾讯云工具指南》👇

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多