本文档介绍了微服务,并介绍了 Cloud Monitoring 支持的微服务类型。
术语微服务对不同的人来说意味着不同的含义。对于某些人来说,微服务与谈论系统架构时在白板上绘制的“框”相对应。而对于另一些人来说,微服务则是指更正式的定义,它描述了一个网络可寻址端点,其功能由其面向外部的 API 决定,可以独立于系统中的其他微服务进行开发、部署和操作。还有一些人可以根据其开发平台提供的微服务概念(例如 App Engine 服务或 Cloud Service Mesh 服务)进行了解。
我们的目标不是强制要求您定义微服务。相反,我们希望通过提供面向服务的监控工具来支持您和您的架构,帮助您大规模监控系统。我们希望能与您合作,在不更改任何代码行的情况下采用监控系统的最佳做法。
为了帮助您监控微服务,Cloud Monitoring 会执行以下操作:
- 尽可能自动检测微服务
- 提供指导式体验,用于定义基于 Google Kubernetes Engine 和 Cloud Run 的微服务
- 提供完全自定义的解决方案,以实现最大的灵活性
自动发现的微服务
一些现代开发框架提供了微服务的明确概念。在使用此类框架的架构中,Cloud Monitoring 会自动检测何时部署、更新或删除服务。Monitoring 通过对项目生成的元数据流的常量分析来实现此检测。
Cloud Monitoring 可以自动检测使用以下开发框架构建的微服务:
App Engine:App Engine 具有强大的微服务概念,称为 App Engine 服务(以前称为模块)。每项服务都通过自己的
app.yaml
配置文件进行区分。Cloud Service Mesh:Cloud Monitoring 支持在单个 GKE 集群的基础上构建的服务网格。在此配置中,Cloud Service Mesh 服务直接对应于 GKE 服务。系统会自动检测所有 Cloud Service Mesh 服务,无论它们是由用户管理还是系统管理。
自动发现微服务的信息中心
系统会自动为所有自动发现的微服务创建一个服务信息中心。信息中心包含服务的元数据详细信息、提醒时间轴、服务等级目标 (SLO) 的状态以及与服务相关的日志。以上各组件在使用微服务信息中心中都有更详细的说明。
GKE、Cloud Run 和自定义服务
Cloud Monitoring 可识别以下类型的潜在或候选服务:
- GKE 命名空间
- GKE 服务
- GKE 工作负载
- Cloud Run 服务
但是,可能有多个这样的候选服务,并且您可能不一定需要在所有候选服务上创建 SLO。Monitoring 会创建候选服务列表,您可以通过从该列表中选择要视为 Monitoring 服务的服务来确定服务。然后,Monitoring 会为您创建服务基础架构。
如果没有现有服务类型包含要为其创建 SLO 的应用,您可以定义自定义服务。
如需详细了解如何确定候选服务以及如何创建自定义服务,请参阅定义微服务。