Topic 1 Question #1
您负责维护一个运行在 Google Kubernetes Engine (GKE) 上的生产环境 Node.js 应用。该应用会向多个依赖应用发出 HTTP 请求。您希望预测哪些依赖应用可能会导致性能问题。
您应该怎么做?
答案: B
题目要求预测GKE上Node.js应用的依赖应用的性能问题,核心需求是识别跨服务调用链路中各依赖服务的响应耗时情况,找到潜在性能瓶颈。Stackdriver Trace(现Cloud Trace)是Google Cloud提供的托管式分布式追踪服务,可通过简单埋点自动采集跨服务的请求全链路数据,包含每个服务间HTTP请求的耗时、状态等信息,无需大量自定义开发即可快速定位哪个依赖服务存在响应过慢的问题,完全匹配题目需求,符合DevOps可观测性领域的最佳实践。 各选项分析:
A. Stackdriver Profiler(现Cloud Profiler)的核心作用是分析单个应用内部的CPU、内存、函数执行耗时等运行时性能数据,用于排查单应用内部的性能瓶颈,无法采集跨服务依赖的调用性能数据,不能满足识别依赖应用性能问题的需求,因此A错误。
B. Stackdriver Trace专为分布式架构下的请求链路追踪设计,对所有应用埋点后可采集完整的服务间HTTP调用数据,通过审查各调用的耗时即可快速识别出可能存在性能问题的依赖应用,完全匹配题目需求,因此B正确。
C. Stackdriver Debugger(现Cloud Debugger)的核心作用是在不中断生产服务运行的前提下,采集应用代码运行时的变量、堆栈等调试信息,用于排查代码逻辑错误,不具备性能分析尤其是跨服务依赖性能分析的能力,因此C错误。
D. 自定义修改应用代码记录请求和响应时间的方案虽然可实现需求,但需要侵入业务代码开发,后续维护成本高,且不符合Google Cloud DevOps优先使用托管可观测性服务的最佳实践,不是最优解决方案,因此D错误。 关键知识点:
1. Google Cloud可观测性工具的适用场景:需明确Trace、Profiler、Debugger、Logging四款核心工具的不同用途,其中Trace用于分布式链路追踪,Profiler用于单应用内部性能剖析,Debugger用于生产代码调试,Logging用于日志采集分析。
2. 分布式追踪的核心价值:在微服务架构下,分布式追踪可采集跨服务请求的全链路耗时数据,快速定位链路中的性能瓶颈依赖,是微服务性能监控的核心手段。
3. GKE应用可观测性最佳实践:优先使用Google Cloud托管的可观测性服务,减少对业务代码的侵入,降低运维和开发成本。 参考资料:
1. Cloud Trace 概述, 2. GKE 运行最佳实践:可观测性