Topic 1 Question #1
贵公司决定对其 API 进行重大修订,以提升开发者的体验。他们需要在保持旧版 API 可用且可部署的同时,允许新客户和测试人员试用新版 API。他们希望保留相同的 SSL 和 DNS 记录来同时服务于两个版本的 API。
他们应该怎么做?
答案: D
答案解析:
本题的核心约束有三点,一是新旧API需同时可用且无需改动旧用户访问配置,二是必须保留相同的DNS和SSL记录,三是支持新客户和测试人员访问新版API。选项D的方案利用七层负载均衡的原生路径路由能力,将不同API路径的流量分别转发到对应版本的独立后端池,入口域名完全不变,SSL证书统一绑定在同一负载均衡器上无需额外配置,旧API请求走原有路径对应旧后端池,新版API通过新增路径映射到新后端池,完全满足所有需求,同时实现了新旧版本的故障隔离,不会因新版本问题影响旧版本服务,符合云架构高可用、松耦合的设计原则。
各选项分析:
A. 配置新的负载均衡器会增加额外的基础设施成本,且新负载均衡器无法复用原有公网入口的DNS解析,必须新增DNS记录或公网IP,不符合题目保留相同SSL和DNS记录的约束,因此错误。
B. 重新配置旧客户端使用新端点会产生大量客户端改造工作量,违背了题目中保持旧版API可用、无需改动旧用户访问配置的需求,因此错误。
C. 由旧API转发流量到新API会让旧API成为新API的单点故障点,额外增加旧API的负载压力,同时转发逻辑的维护成本高,转发性能也低于负载均衡层直接路由,不符合云架构高可用、高性能的设计要求,因此错误。
D. 七层负载均衡的路径路由是原生能力,同一负载均衡器可复用相同的DNS记录和SSL证书,不同路径映射到独立后端池后新旧API后端完全隔离,旧客户端访问原有路径即可正常使用旧版API,新客户和测试人员通过新路径访问新版API,完全满足题目所有需求,因此正确。
关键知识点:
1. 七层负载均衡URL路径路由:七层应用负载均衡支持基于HTTP请求的路径信息将流量分发到不同的后端服务池,无需修改入口域名和SSL配置,是实现多版本服务共存的核心技术。
2. API多版本共存最佳实践:通过URL路径区分API版本是业界通用的灰度发布和多版本共存方案,可实现新旧版本服务的故障隔离,最小化版本迭代对存量用户的影响。
3. 后端池流量隔离:负载均衡的不同后端池相互独立,各自的版本升级、故障都不会影响其他后端池的服务可用性,符合云架构高可用的设计原则。
参考资料:
1. 应用负载均衡路径路由教程, https://docs.aws.amazon.com/elasticloadbalancing/latest/application/tutorial-load-balancer-routing.html
2. Google Cloud HTTPS负载均衡URL路径匹配配置, https://cloud.google.com/load-balancing/docs/https/url-map#path_matchers