Microservizi

Questo documento introduce i microservizi e descrive i tipi di microservizi supportati da Cloud Monitoring.

Il termine microservizio ha significati diversi per persone diverse. Per alcuni, il microservizio corrisponde alle "caselle" disegnate sulla lavagna quando si parla di architettura di sistema. Altri si riferiscono a una definizione più formale che descrive un endpoint indirizzabile in rete con funzionalità determinate dalla sua API rivolta all'esterno che può essere sviluppata, sottoposta a deployment e gestita indipendentemente da altri microservizi nel sistema. Altri ancora basano la loro comprensione sul concetto di microservizio fornito dalla loro piattaforma di sviluppo, come i servizi App Engine o il servizio Cloud Service Mesh.

Il nostro obiettivo non è imporre una definizione di microservizio. Vogliamo invece aiutarti a monitorare i tuoi sistemi su larga scala durante la trasformazione digitale fornendo strumenti di monitoraggio orientati ai servizi per supportare te e la tua architettura. Vogliamo collaborare con te per adottare le best practice per il monitoraggio dei sistemi senza modificare una sola riga di codice.

Per aiutarti a monitorare i tuoi microservizi, Cloud Monitoring esegue le seguenti operazioni:

  • Rileva automaticamente i microservizi, quando possibile.
  • Fornisce un'esperienza guidata per la definizione di microservizi basati su Google Kubernetes Engine e Cloud Run.
  • Offre una soluzione completamente personalizzata per la massima flessibilità.

Microservizi rilevati automaticamente

Alcuni framework di sviluppo moderni offrono concetti di microservizio basati su opinioni. Nelle architetture che utilizzano questi framework, Cloud Monitoring rileva automaticamente quando i servizi vengono sottoposti a deployment, aggiornati o eliminati. Il monitoraggio esegue questo rilevamento tramite l'analisi costante del flusso di metadati prodotto da un progetto.

Cloud Monitoring può rilevare automaticamente i microservizi creati utilizzando i seguenti framework di sviluppo:

  • App Engine: App Engine ha una forte nozione di microservizio, chiamato servizio App Engine (e in precedenza modulo). Ogni servizio è distinto dal proprio app.yaml file di configurazione.

  • Cloud Service Mesh: Cloud Monitoring supporta i mesh di servizi creati su un singolo cluster GKE. In questa configurazione, un servizio Cloud Service Mesh corrisponde direttamente a un servizio GKE. Tutti i servizi Cloud Service Mesh, sia gestiti dall'utente sia gestiti dal sistema, vengono rilevati automaticamente.

Dashboard per i microservizi rilevati automaticamente

Viene creata automaticamente una dashboard di servizio per tutti i microservizi rilevati automaticamente. La dashboard contiene i dettagli dei metadati del servizio, la sequenza temporale degli avvisi, lo stato degli obiettivi del livello di servizio (SLO) e i log correlati al servizio. Ciascuno di questi componenti è descritto in dettaglio in Utilizzo delle dashboard dei microservizi.

Dashboard dei servizi per i microservizi rilevati automaticamente.

GKE, Cloud Run e servizi personalizzati

Cloud Monitoring può identificare i servizi potenziali o candidati per i seguenti tipi:

  • Spazi dei nomi GKE
  • Servizi GKE
  • Carichi di lavoro GKE
  • Servizi Cloud Run

Tuttavia, potrebbero esserci molti candidati di questo tipo e non è necessario creare SLO per tutti. Monitoring crea un elenco di servizi candidati e tu identifichi i servizi che vuoi trattare come servizi di monitoraggio selezionandoli dall'elenco. Monitoring crea quindi l'infrastruttura di servizio per te.

Se nessun tipo di servizio esistente ospita un'applicazione per la quale vuoi creare SLO, puoi definire un servizio personalizzato.

Per ulteriori informazioni sull'identificazione dei servizi candidati e sulla creazione di servizi personalizzati, vedi Definizione di un microservizio.