可用性
可用性以正常运行时间的百分比来衡量,并定义了系统正常运行和工作的时间比例。可用性受系统错误、基础设施问题、恶意攻击和系统负载的影响。云应用程序通常为用户提供服务水平协议 (SLA),这意味着必须设计和实施应用程序以最大限度地提高可用性。
Pattern | Summary |
---|---|
Deployment Stamps | 部署应用程序组件的多个独立副本,包括数据存储 |
Geodes | 将后端服务部署到一组地理节点中,每个节点都可以为任何区域的任何客户端请求提供服务。 |
Health Endpoint Monitoring | 在外部工具可以通过暴露的端点定期访问的应用程序中实施功能检查。 |
Queue-Based Load Leveling | 使用队列作为任务和它调用的服务之间的缓冲区,以平滑间歇性重负载。 |
Throttling | 控制应用程序实例、单个租户或整个服务对资源的消耗。 |
为了缓解来自恶意分布式拒绝服务 (DDoS) 攻击的可用性风险,请实施本机 Azure DDoS 保护标准服务或第三方功能。
高可用性
Azure 基础架构由地理、区域和可用区组成,它们限制了故障的爆炸半径,从而限制了对客户应用程序和数据的潜在影响。Azure 可用区构造旨在提供软件和网络解决方案,以防止数据中心故障并为我们的客户提供更高的高可用性 (HA)。借助 HA 架构,可以在高弹性、低延迟和成本之间取得平衡。
Pattern | Summary |
---|---|
Deployment Stamps | 部署应用程序组件的多个独立副本,包括数据存储。 |
Geodes | 将后端服务部署到一组地理节点中,每个节点都可以为任何区域的任何客户端请求提供服务。 |
Health Endpoint Monitoring | 在外部工具可以通过暴露的端点定期访问的应用程序中实施功能检查。 |
Bulkhead | 将应用程序的元素隔离到池中,以便如果一个失败,其他元素将继续运行。 |
Circuit Breaker | 处理连接到远程服务或资源时可能需要不同时间才能修复的故障。 |
弹性
弹性是系统从疏忽和恶意故障中优雅地处理和恢复的能力。
云托管的性质,其中应用程序通常是多租户的、使用共享平台服务、竞争资源和带宽、通过 Internet 通信以及在商品硬件上运行,这意味着出现瞬时和更永久故障的可能性增加 . 互联网的连接性以及攻击的复杂性和数量的增加增加了安全中断的可能性。
检测故障并快速有效地恢复是保持弹性的必要条件。
Pattern | Summary |
---|---|
Bulkhead | 将应用程序的元素隔离到池中,以便在其中一个失败时,其他元素将继续运行。 |
Circuit Breaker | 处理连接到远程服务或资源时可能需要花费可变时间来修复的故障。 |
Compensating Transaction | 撤消由一系列步骤执行的工作,这些步骤共同定义了最终一致的操作。 |
Health Endpoint Monitoring | 在外部工具可以定期通过公开端点访问的应用程序中实现功能检查。 |
Leader Election | 通过选择一个实例作为负责管理其他实例的负责人,协调分布式应用程序中协作任务实例集合执行的操作。 |
Queue-Based Load Leveling | 使用队列作为任务和它调用的服务之间的缓冲区,以平滑间歇性重载。 |
Retry | 通过透明地重试以前失败的操作,使应用程序在尝试连接到服务或网络资源时能够处理预期的临时故障。 |
Scheduler Agent Supervisor | 跨一组分布式服务和其他远程资源协调一组操作。 |