23 如何搭建微服务治理平台?

在学习今天的内容前,我们先来回顾下[专栏第9期]。我给你讲过单体应用改造为微服务架构后,服务调用从本地调用变成了远程方法调用后,面临的各种不确定因素变多了,一方面你需要能够监控各个服务的实时运行状态、服务调用的链路和拓扑图;另一方面你需要在出现故障时,能够快速定位故障的原因并可以通过诸如降级、限流、切流量、扩容等手段快速干预止损。这个时候就需要我今天要讲的微服务治理平台了。

那么微服务治理平台都具备哪些功能呢,具体该如何搭建一套微服务治理平台呢?

微服务治理平台的基本功能

你可能先会问,到底什么是微服务治理平台?根据我的理解,微服务治理平台就是与服务打交道的统一入口,无论是开发人员还是运维人员,都能通过这个平台对服务进行各种操作,比如开发人员可以通过这个平台对服务进行降级操作,运维人员可以通过这个平台对服务进行上下线操作,而不需要关心这个操作背后的具体实现。

接下来我就结合下面这张图,给你介绍一下一个微服务治理平台应该具备哪些基本功能。

1. 服务管理

通过微服务治理平台,可以调用注册中心提供的各种管理接口来实现服务的管理。根据我的经验,服务管理一般包括以下几种操作:

2. 服务治理

通过微服务治理平台,可以调用配置中心提供的接口,动态地修改各种配置来实现服务的治理。根据我的经验,常用的服务治理手段包括以下几种:

3. 服务监控

微服务治理平台一般包括两个层面的监控。一个是整体监控,比如服务依赖拓扑图,将整个系统内服务间的调用关系和依赖关系进行可视化的展示;一个是具体服务监控,比如服务的QPS、AvgTime、P999等监控指标。其中整体监控可以使用服务追踪系统提供的服务依赖拓扑图,而具体服务监控则可以通过Grafana等监控系统UI来展示。

4. 问题定位

微服务治理平台实现问题定位,可以从两个方面来进行。一个是宏观层面,即通过服务监控来发觉异常,比如某个服务的平均耗时异常导致调用失败;一个是微观层面,即通过服务追踪来具体定位一次用户请求失败具体是因为服务调用全链路的哪一层导致的。

5. 日志查询

微服务治理平台可以通过接入类似ELK的日志系统,能够实时地查询某个用户的请求的详细信息或者某一类用户请求的数据统计。

6. 服务运维

微服务治理平台可以调用容器管理平台,来实现常见的运维操作。根据我的经验,服务运维主要包括下面几种操作:

如何搭建微服务治理平台

微服务治理平台之所以能够实现上面所说的功能,关键之处就在于它能够封装对微服务架构内的各个基础设施组件的调用,从而对外提供统一的服务操作API,而且还提供了可视化的界面,以方便开发人员和运维人员操作。

根据我的经验,一个微服务治理平台的组成主要包括三部分:Web Portal层、API层以及数据存储DB层,结合下面这张图我来详细讲解下每一层该如何实现。

第一层:Web Portal。也就是微服务治理平台的前端展示层,一般包含以下几个功能界面:

第二层,API。也就是微服务治理平台的后端服务层,这一层对应的需要提供Web Portal接口以调用,对应的一般包含下面几个接口功能:

第三层,DB。也就是微服务治理平台的数据存储层,因为微服务治理平台不仅需要调用其他组件提供的接口,还需要存储一些基本信息,主要分为以下几种:

总结

可以说一个微服务框架是否成熟,除了要看它是否具备服务治理能力,还要看是否有强大的微服务治理平台。因为微服务治理平台能够将多个系统整合在一起,无论是对开发还是运维来说,都能起到事半功倍的作用,这也是当前大部分开源微服务框架所欠缺的部分,所以对于大部分团队来说,都需要自己搭建微服务治理平台。不过好在微服务治理平台本身的架构并不复杂,你可以根据自己的实际需要,来决定微服务治理平台具备哪些功能。

思考题

除了我上面列举的一些功能以外,你觉得微服务治理平台还可以包含哪些功能?说说你的理由。

欢迎你在留言区写下自己的思考,与我一起讨论。