Knative Tracing 介绍
前言
为了实现系统组件的水平扩展、敏捷开发、CD(持续集成)、解耦等各种诉求,现代的大型软件架构往往都是微服务架构。 微服务架构本身会面临一系列诸如:后台错误原因分析、各个微服务组件的调用情况诊断等。所以需要有一个 Tracing 系统解决这些问题。
除了微服务以外 Serverless 应用也面临同样的问题。一个完整的业务实现想要基于 Serverless 模型来开发的话可能会分解成多个 Serverless 模块,每一个模块单独通过 Knative 的 Serving 部署,那么这些不同的 Serving 之间就需要调用链进行事务的串联。
而 Knative 本身没有 Tracing 的设计,需要借助 ServiceMesh 层来实现 tracing。对于开源的 Knative 来说 ServiceMesh 层其实就是 Istio。