Zendesk Support 的技术架构设计旨在提供高弹性、高可用性和全球低延迟的性能,以应对客户不断变化的需求,包括订单量激增导致的售后咨询量爆发。其实现这一目标主要依赖于“Pod 架构设计”和“分片数据库设计”。
**Pod 架构设计**
Zendesk Support 运行在一个完全冗余、分布式和自动化的环境中,该环境由地理上分离的数据中心组成,每个数据中心运行多个自我维持的应用实例。每个数据中心内部又由一个或多个“Pod”构成。Pod 架构提供了最大的灵活性,因为它允许各个 Pod 独立运行,并具备更快的资源配置能力和更好的可扩展性。每个 Pod 包含运行 Zendesk Support 所需的所有资源,包括应用服务器、Web 服务器和数据库服务器,此外还包含处理邮件和报告等其他工作所需的资源。
在数据库层面,每个 Pod 内部包含多个数据库集群。每个集群由一个主数据库服务器和两个持续镜像的备用数据库服务器组成。如果主数据库服务器意外出现问题,备用服务器会自动接替工作,这个自动化的备份系统显著降低了系统宕机的可能性。
**分片数据库设计**
在数据库层面,其构建单元是“Shard”(分片),即较小的逻辑数据库。分片架构使得 Zendesk Support 能够在物理数据库集群和 Pod 之间重新平衡负载。Zendesk Support 在全球范围内分布着数百个分片,每个分片支持一定数量的客户,具体数量取决于客户产生的数据量。如果某个客户需要更高的容量,Zendesk Support 可以完全为该客户单独分配一个分片或整个数据库集群来满足需求。
通过结合 Pod 架构的资源隔离和分片数据库的负载分散能力,Zendesk Support 能够构建一个能够自动平衡负载、确保系统在流量激增时保持高性能和高可靠性的环境。此外,为了保证全球用户体验,系统在多个全球数据中心运行,并通过“Data Center Location”功能,客户可以选择偏好的数据中心位置,以降低访问延迟。