微服务运行时依赖与应用指标监控实践
1. 显式运行时依赖
在微服务架构中,若存在一个核心库作为每个微服务的运行时依赖,那它很可能就是你的交付机制。可以通过以下操作进行管理:
- 开启关键指标监控。
- 添加通用遥测标签。
- 配置跟踪功能。
- 加入流量管理模式等。
若大量使用 Spring 框架,可使用自动配置类;若使用 Java EE,则可通过 CDI 进行条件化配置。
对于流量管理模式(如回退、重试逻辑等),建议由服务的开发团队同时开发与之交互的服务客户端。因为开发和运营该服务的团队对其弱点和潜在故障点最为了解,能以最可靠的方式将这些知识融入客户端依赖,供服务的每个消费者使用。
若部署过程相对标准化,可在部署环境中注入运行时依赖。例如,Cloud Foundry 构建包团队就采用此方法,将平台指标实现注入到运行在 Cloud Foundry 上的 Spring Boot 应用中。在进行封装之前,可先找几个团队在一些应用的代码中实践此方法,并总结经验。
2. 服务网格
作为最后的手段,可将通用平台功能封装在应用旁边的边车进程(或容器)中,与管理它们的控制平面结合使用时,就形成了服务网格。服务网格是应用代码之外的基础设施层,用于管理微服务之间的交互,Istio 就是目前最知名的实现之一。这些边车代表应用进程执行流量管理、服务发现和监控等功能,使应用无需关注这些问题,从而简化应用开发,但会增加部署和运行服务的复杂性和成本。
软件工程师的趋势往往是循环的,在站点可靠性方面,责任从增加应用和开发者的责任(如 Netflix OSS、DevOps)向集中化运营团队
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



