云本机复原能力

提示

此内容摘自电子书《为 Azure 构建云原生 .NET 应用程序》,可在 .NET 文档上获取,也可作为免费可下载的 PDF 脱机阅读。

Cloud Native .NET apps for Azure eBook cover thumbnail.

复原能力是系统对故障做出反应并仍然保持正常运行的能力。 这不是指避免故障,而是接受故障并构建云原生服务以响应故障。 你需要尽快恢复完全正常运行的状态。

与传统的整体式应用程序不同,所有内容在单个进程中一起运行,云原生系统采用分布式体系结构,如图 6-1 所示:

Distributed cloud-native environment

图 6-1. 分布式云原生环境

在上图中,每个微服务和基于云的支持服务在单独的进程中跨服务器基础结构执行,通过基于网络的调用进行通信。

在此环境中操作时,服务必须对许多不同的问题具有敏感性:

  • 意外的网络延迟 - 服务请求到达接收方并返回的时间。

  • 暂时性故障 - 短暂的网络连接错误。

  • 被长时间运行的同步操作阻止。

  • 一个已经崩溃的主机进程,正在被重新启动或移动。

  • 无法在短时间内响应的已重载微服务。

  • 进行中的业务流程协调程序操作,例如滚动升级或将服务从一个节点移动到另一个节点。

  • 硬件故障。

云平台可以检测和缓解许多基础结构问题。 它可能会重启、横向扩展服务,甚至将服务重新分发到其他节点。 但是,为了充分利用此内置保护,必须设计你的服务来应对它,并在这个动态环境中不断发展。

以下各节将探讨服务和托管云资源可以利用的防御技术,以最大程度地减少停机时间和中断。