Microservicios

En este documento se presentan los microservicios y se describen los tipos de microservicios compatibles con Cloud Monitoring.

El término microservicio tiene diferentes significados para cada persona. Para algunos, el microservicio se corresponde con los "cuadros" dibujados en la pizarra cuando se habla de la arquitectura del sistema. Otros hacen referencia a una definición más formal que describe un endpoint direccionable en la red con una funcionalidad determinada por su API externa, que se puede desarrollar, implementar y operar de forma independiente de otros microservicios del sistema. Otros se basan en el concepto de microservicio que proporciona su plataforma de desarrollo, como los servicios de App Engine o el servicio Cloud Service Mesh.

Nuestro objetivo no es imponer una definición de microservicio. En lugar de eso, queremos ayudarte a monitorizar tus sistemas a gran escala durante tu transformación digital proporcionándote herramientas de monitorización orientadas a servicios para que puedas sacar el máximo partido a tu arquitectura. Queremos colaborar contigo para adoptar prácticas recomendadas de monitorización de sistemas sin cambiar ni una sola línea de código.

Para ayudarte a monitorizar tus microservicios, Cloud Monitoring hace lo siguiente:

  • Detecta automáticamente los microservicios cuando es posible
  • Ofrece una experiencia guiada para definir microservicios basados en Google Kubernetes Engine y Cloud Run
  • Ofrece una solución totalmente personalizada para disfrutar de la máxima flexibilidad

Microservicios detectados automáticamente

Algunos frameworks de desarrollo modernos ofrecen conceptos subjetivos de microservicio. En las arquitecturas que usan estos frameworks, Cloud Monitoring detecta automáticamente cuándo se implementan, actualizan o eliminan servicios. La monitorización detecta estas anomalías mediante el análisis constante del flujo de metadatos que genera un proyecto.

Cloud Monitoring puede detectar automáticamente los microservicios creados con los siguientes frameworks de desarrollo:

  • App Engine: App Engine tiene un concepto sólido de microservicio, llamado servicio de App Engine (antes conocido como módulo). Cada servicio se distingue por su propio archivo de configuración app.yaml.

  • Cloud Service Mesh: Cloud Monitoring admite mallas de servicios creadas sobre un único clúster de GKE. En esta configuración, un servicio de Cloud Service Mesh se corresponde directamente con un servicio de GKE. Todos los servicios de Cloud Service Mesh, tanto los gestionados por el usuario como los gestionados por el sistema, se detectan automáticamente.

Paneles de control de microservicios detectados automáticamente

Se crea automáticamente un panel de control de servicios para todos los microservicios detectados automáticamente. El panel de control contiene los detalles de los metadatos del servicio, la cronología de las alertas, el estado de los objetivos de nivel de servicio y los registros relacionados con el servicio. Cada uno de estos componentes se describe con más detalle en el artículo Usar paneles de control de microservicios.

Panel de servicios para microservicios detectados automáticamente.

GKE, Cloud Run y servicios personalizados

Cloud Monitoring puede identificar servicios potenciales o candidatos de los siguientes tipos:

  • Espacios de nombres de GKE
  • Servicios de GKE
  • Cargas de trabajo de GKE
  • Servicios de Cloud Run

Sin embargo, puede haber muchos candidatos de este tipo y no necesariamente querrás crear SLOs en todos ellos. La monitorización crea una lista de servicios candidatos y tú identificas los servicios que quieres tratar como servicios de monitorización seleccionándolos de la lista. La monitorización crea la infraestructura de servicio.

Si no hay ningún tipo de servicio que se adapte a una aplicación para la que quieras crear SLOs, puedes definir un servicio personalizado.

Para obtener más información sobre cómo identificar servicios candidatos y crear servicios personalizados, consulta Definir un microservicio.