Azure的可靠性

在云环境中,故障是不可避免的。 可能会发生硬件故障、软件缺陷、配置错误、流量高峰、数据中心中断,甚至发生区域范围的服务中断。 可靠性 是工作负荷保持满足业务预期的能力,即使在故障或中断期间也是如此。 使用正确的体系结构和操作时,故障不需要导致停机。

计划外停机可能会产生巨大的影响。 它带来财务成本,损害了客户和用户的信任。 除了这些直接影响之外,可靠性不佳会影响合规性义务和竞争定位。 你的团队花更多时间忙于救火,用于交付价值的时间却更少。 它甚至可能触发合同约定的服务级别罚则。

Azure提供可复原的基础结构和托管服务,但工作负荷的可靠性取决于你做出的设计和操作决策:如何设计体系结构、配置服务、管理依赖项、自动响应问题以及测试软件和流程。 尽早设计可靠性有助于最大程度地减少故障,并确保在发生故障时,工作负荷会以可预测且受控的方式降级,使其与业务优先级保持一致。

可靠工作负荷具有两个基本属性:

  • 具有复原能力,这意味着它可以吸收环境中的故障和变化,同时继续在可接受的服务级别运行。
  • 它还 可恢复,这意味着在发生中断时,工作负荷可以在定义的时间和数据丢失限制内还原正常操作。

需要这两个属性来满足实际可用性预期并保持业务连续性。

Azure可靠性跨三个互连层工作:

  • 应用程序:体系结构选择、做法和流程,包括依赖项管理、Runbook、自动化和测试
  • 可靠性功能,包括:
    • 工作负荷服务和配置:如何配置运行工作负荷的Azure服务,以及在这些服务中配置的可靠性功能
    • Azure平台服务:Azure专门支持工作负荷可靠性的服务,例如负载均衡、DNS、流量路由和监视
  • 可靠性基础:Azure的内置复原能力,例如可用性区域、区域和安全部署做法

这些层协同工作,以确定总体工作负荷可靠性。 了解它们有助于区分默认提供Azure的内容以及设计、配置和操作所需的内容。

此模型可帮助你利用Azure提供的内容,同时负责仅可以设计的内容。 本文重点介绍这些层中Azure提供的内容。 有关工作负荷设计和操作层(设计可复原解决方案和体系结构模式)的综合指南,请参阅Azure Well-Architected框架,尤其是可靠性支柱

可靠性的共担责任

Azure的可靠性遵循共同责任模型。 Microsoft通过Azure提供弹性平台。 您设计具有弹性的工作负载。

显示 Azure 中可靠性层的示意图。

  • Microsoft拥有平台基础和平台可靠性服务。 此所有权包括可复原的基础结构(物理冗余、故障隔离和修复)、可用性区域、区域分发、安全部署做法和平台级服务,例如负载均衡、流量路由和监视。 微软负责 Azure 平台的可靠性,以及由各服务已发布的 SLA 和相关文档(如其可靠性指南)所定义的服务可靠性。

  • 负责工作负载的设计和运营。 你负责通过体系结构决策、配置选择、操作实践和测试将Azure的功能转换为可靠的工作负荷行为。

    Azure不知道可用性目标、可接受的权衡、业务上下文或特定于应用程序的要求。 只有你可以相应地定义这些要求和设计。 Azure 提供这些功能,而由你来选择和配置。 例如,为数据库等服务配置故障转移行为,并定义能够准确表示应用程序运行状况的负载均衡器运行状况探测,以便即使在故障期间,流量路由决策也正确无误。

    Important

    该平台提供构建基块,而不是端到端保证。 设计和操作选择确定这些功能是否转换为可靠的工作负荷。 有关共享责任模型的完整细分,请参阅 云中的共享责任

服务级别协议(SLA)定义Azure服务的可靠性承诺和期望。 在评估服务和针对特定可用性目标进行设计时,了解 SLA 至关重要。 Azure服务发布 SLA 承诺,这些承诺可能因配置和冗余级别而异。 你从其他提供商处使用的其他服务也可能会发布 SLA。 有关 SLA 如何工作以及与工作负荷的可用性期望相关的综合指南,请参阅 服务级别协议

Azure中的弹性基础

Azure 在设计时就将多层韧性内置于平台本身。 这些基础提供了构建可靠工作负荷的基础功能:

  • 物理基础结构复原能力:Azure数据中心设计了冗余基础结构,例如电源、冷却和网络连接。 Azure结构控制器会自动隔离和管理硬件故障。 它检测故障并协调工作负荷迁移到正常运行的硬件,而无需客户干预。

  • 区域:由世纪互联运营的Azure在 6 个区域运营。 这种地理分布使工作负载能够在遵循您的数据驻留要求的同时,借助计划故障转移能力应对整个区域范围内的中断和故障。 有关详细信息,请参阅Azure区域概述

  • 可用性区域:许多Azure区域包括同一区域中的物理独立数据中心。 这些可用性区域通过高速、低延迟的网络进行连接。 每个区域都有独立的电源、冷却和网络,可防范数据中心级故障,同时为许多Azure服务维护同步复制功能。 有关详细信息,请参阅 什么是可用性区域?

  • 安全部署:Azure实现平台更新和服务更改的受控、错开的部署过程,以最大程度地降低普遍服务中断的风险。 该平台会按容错域、可用区和区域等范围逐步推出更新,并在检测到问题时自动回滚。 此方法可确保平台更改不会给客户工作负载带来可靠性风险。

Azure自动提供这些平台级基础。 它们构成了构建可靠工作负荷的基础层。 但是,仍必须正确配置服务,并通过满足特定业务需求的方式合并这些功能。

支持可靠性的 Azure 服务

Azure提供平台功能,将可靠性概念转化为体系结构的可操作构建基块。 这些功能协同工作以实现可复原的体系结构,许多Azure服务包括这些模式的内置实现:

能力 Description
AI 提供支持的可靠性优化 AI 驱动的可靠性优化 使用 AI 驱动的功能来评估和提高可靠性。 这些功能分析工作负荷模式,识别潜在风险,并提供建议,帮助团队从被动故障排除转向主动可靠性管理。 这些功能可显示可靠性信号,并将它们转换为可操作的建议,帮助团队随着时间的推移确定优先级并提高可靠性。

Azure提供了多个 AI 驱动的可靠性服务,包括:
- Azure复原能力
这些服务分析工作负荷模式,并建议改进,以全面优化可靠性状况。
负载均衡和流量管理 负载均衡和流量管理 通过在冗余实例之间路由流量并自动处理故障转移,实现可靠性。 当各个组件发生故障时,此功能对于维护服务可用性至关重要。

Azure在多个层提供负载均衡,包括:
- 用于第 4 层 TCP/UDP 流量分发的Azure 负载均衡器
- Azure 应用程序网关,用于通过应用程序感知的运行状况检查进行第 7 层 HTTP 路由
- Azure Front Door,用于实现支持快速故障转移的全局 HTTP 负载均衡
- Azure 流量管理器 用于基于 DNS 的全局终结点分发

如果需要确定要用于方案的负载均衡器的帮助,请参阅 负载均衡选项
备份和数据保护 备份和数据保护 防止数据丢失和损坏,并在出现问题后启用恢复。

Azure提供多种备份和恢复功能,包括:
- Azure 备份用于对虚拟机、Blob 容器、文件和某些数据库进行可配置保留的集中式备份
- 许多Azure服务(包括大多数数据库服务)中的本机备份和还原功能
- Bicep和其他基础结构作为配置备份、偏移保护和快速环境娱乐的代码工具

查看每个Azure服务的可靠性指南,以了解服务支持的备份方法。
异地复制和故障转移 异地复制和故障转移 通过跨区域数据复制和自动故障转移功能,支持从区域性故障中恢复。

Azure Site Recovery通过自动复制和故障转移排序来协调虚拟机工作负荷的灾难恢复。 许多Azure服务还提供内置的异地复制功能,包括:
- Azure Cosmos DB,具有原生跨区域数据复制和故障转移功能
- Azure API 管理 支持原生跨区域故障转移功能

服务可靠性指南详细介绍了每个服务可用的任何异地复制选项。
监控和可观测性 监控和可观测性 全面了解可靠性态势,并能够主动响应问题。

Azure提供多个可观测性服务,包括:
- Azure MonitorApplication Insights 进行实时监视、警报和依赖项跟踪
- Azure Monitor中的运行状况模型,用于监视整个工作负荷的运行状况
- Azure 服务运行状况用于针对可能影响您的工作负载的 Azure 服务问题提供个性化警报和指导

这些功能一起有助于了解是否满足可靠性要求,并在出现问题时快速做出响应。
可靠性测试和验证 可靠性测试和验证 帮助验证工作负载在故障情况下是否按预期运行,并确保在问题影响用户之前,您的解决方案满足可靠性要求。

Azure提供可靠性测试服务,包括:
- Azure Chaos Studio用于受控故障注入试验,以验证自我修复行为和对真实故障的复原能力
- 用于性能和功能测试的Azure 应用测试,以了解应用程序的表现,包括在压力条件下的表现

在 Azure 服务中启用可靠性

该平台通过数十个Azure服务提供服务层可靠性功能,每个服务具有特定的优势和用例。 每个服务的可靠性指南提供有关服务在不同方案中如何保持可用的详细信息,例如:

  • 暂时性故障,这是短暂的间歇性故障。 服务指南提供有关最佳做法的建议,以尽量减少其影响,例如重试和使用Microsoft提供的 SDK。
  • 可用性区域故障,因此服务可以自动重定向请求以维护高可用性。
  • 整个区域发生故障,因此服务可以故障转移到辅助区域,并在区域中断期间继续提供服务。

若要查看许多Azure服务的可靠性指南,请参阅按服务查看可靠性指南

设计可靠的工作负载

可靠性从定义目标、设计故障和快速恢复、测试假设以及通过操作学习改进的连续周期中浮出水面。 使用Azure Well-Architected框架和服务可靠性指南了解每个服务默认提供的内容以及需要显式配置的内容。 有关实现可靠性的结构化方法,请参阅Azure Well-Architected框架可靠性成熟度模型

在设计时,将 基础概念技术概念相连接。 业务连续性共同责任等基础概念定义需要实现的结果。 冗余复制备份故障转移故障回复等技术概念定义如何在体系结构和操作中实现这些结果。 服务级别协议 可帮助你了解从服务提供商收到的保证。

主权和数据驻留

设计可靠性时,尽早包括主权和数据驻留要求,因为它们会影响区域选择、复制策略和故障转移路径。 如果故障转移或数据移动跨越受限边界,即使是弹性架构,仍然无法满足合规要求。 有关详细信息,请参阅 可靠性和主权

通过将弹性平台基础与深思熟虑的工作负荷设计和操作相结合,实现了Azure的可靠性。 通过了解Azure提供的内容以及需要做出设计和配置决策的位置,可以构建能够继续满足业务期望的系统,即使在出现故障的情况下也是如此。