Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1056

Ben Sigelman访谈:管理微服务“深层系统”

$
0
0

InfoQ近期采访了Ben Sigelman,探讨在“深层系统”(deep system)中管理微服务所面对的挑战性问题。在“深层系统”中,服务的拥有者需要与大量不属于该服务拥有者的其他服务进行交互。Sigelman是LightStep的CEO,也是OpenTracing和OpenTelemetry项目的创始人。

Sigelman最近在Systems@Scale大会上做主题演讲时指出,问题主要在于如何区分控制和责任,以及团队如何准确地判定每个服务内部及相互之间的作用情况。开发团队通常控制着多个服务,这些服务需要调用其他的服务,或是被其他服务调用。尽管相互关联的服务通常并不属于同一团队,但是它们为连接的服务继承责任。随着服务间的相互调用,调用关系链趋向于更加深入,团队难以快速诊断导致故障或运行性能降低等问题的原因。

不同于标准的性能监控,微服务间通信模式的变化会潜在地影响微服务的性能。例如,监控显示某个服务使用设定参数运行时,性能发生了降低,但是问题的根源却可能是由不同的服务调用方式使得服务需求显著增加而导致的。

解决微服务问题的关键,是需要在服务内部启用可观察性(observability)和控制,快速定位存在性能问题之处,是位于微服务内部,还是位于微服务之间,消除一切的不确定性。Sigelman指出,“数据不明晰,责任就会互相推诿。对于出现的问题,可使用一种称为MTTI(即平均解决问题时间,Mean-Time-To-Innocence)的度量指标。数据明晰,MTTI值就会很低。如果数据缺失,或是不明晰,那么MTTI值就会变大”。MTTI值变大,就需要相关人员做长时间的协商,分析导致问题和故障的根本原因,进而导致运维代价增大

“可观察性”指无需更改服务就能快速发现服务内部及相互之间存在问题的能力,“控制”指对所发现问题的处理能力。可观察性的目标是获取控制。OpenTelemetry项目为实现可观察性和控制提供了标准化工具。该项目支持多种工具,以正确的方式抽取正确的度量和KPI,由此每个团队可采取相应的行动。


Viewing all articles
Browse latest Browse all 1056