Kubernetes nel Cloud: Una Guida all’Osservabilità

Secondo il detto “Se non lo misuri, non puoi gestirlo” di Deming, l’osservabilità e il monitoraggio sono il nostro modo di misurare i nostri servizi.

Kubernetes è piuttosto rivoluzionario per quanto riguarda il modo in cui gestisce i rilasci e le scalabilità. Ma il modo in cui i contenitori vengono continuamente creati e distrutti può talvolta presentare sfide con il monitoraggio. Ecco dove entra in gioco l’osservabilità, offrendo importanti informazioni su come il sistema si sta comportando e perché si verificano problemi.

Vuoi rivedere la terminologia di Kubernetes? Leggi Demistificare Kubernetes in 5 Minuti.

Cosa significa Osservabilità in Kubernetes?

Le persone tendono a usare Osservabilità come termine ombrello. Ma tipicamente, significherebbe metriche, log e tracce. È come avere una lente nel cuore delle tue applicazioni e infrastrutture. Raccogliendo e analizzando questi output, l’osservabilità ti aiuta a individuare potenziali problemi prima che interrompano il servizio e ottimizzare le prestazioni complessive del sistema.

Tre cose che vengono in mente sono:

Metriche

Questi sono numeri e forniscono dati sull’utilizzo delle risorse, sui tassi di errore e sulle prestazioni. Alcune metriche popolari sono l’utilizzo della CPU e della memoria in percentuale, insieme a metadati aggiuntivi sulle stesse metriche (a volte chiamati dimensioni).

Log

I log forniscono una storia dettagliata degli eventi all’interno del tuo sistema, come errori o azioni degli utenti. Offrono contesto per la risoluzione dei problemi e per comprendere il comportamento dell’applicazione. Sono sicuro che tu abbia già visto un “log” prima:

SystemVerilog

 

Tracce

Il tracciamento fornisce una vista end-to-end delle richieste mentre passano attraverso i servizi, aiutando a identificare colli di bottiglia o problemi di latenza. Seguendo le richieste attraverso più microservizi, puoi individuare dove sorgono i problemi di prestazioni.

I log e le tracce possono sembrare simili, ma sono diversi. Pensa ai log come a un’istantanea di ciò che è accaduto, mentre le tracce ti dicono come e perché è successo in tutto il sistema.

L’osservabilità non è davvero limitata a un ruolo in un’organizzazione, è di per sé un pezzo di informazione critica che circola tra diversi ruoli. Ad esempio, come ingegnere del software, strumenti il codice dell’applicazione con metriche, log e tracce. Ora hai bisogno di qualcosa per raccogliere, memorizzare e analizzare questi dati, utilizzando strumenti come Prometheus per le metriche e Jaeger per le tracce.

Se non sei già convinto dell’Osservabilità, riassumerò:

  1. Si assicura che tutto funzioni in modo fluido ed efficiente identificando i colli di bottiglia delle prestazioni.
  2. Migliora la resilienza del sistema e aiuta le app a recuperare rapidamente (si spera) da guasti.
  3. Il monitoraggio continuo consente ai team di rilevare anomalie precocemente, prevenendo violazioni della sicurezza e garantendo la protezione dei dati sensibili.
  4. Puoi costruire un cruscotto dall’aspetto meraviglioso, che ti aiuta a ottenere migliori informazioni sulle prestazioni del sistema. Potrebbe persino aiutarti a risparmiare costi significativi per l’infrastruttura (sto guardando te, AWS!).

Aspetta, ho anche menzionato il Monitoraggio sopra. Quindi, cos’è e come è DIVERSO?

Mentre l’osservabilità e il monitoraggio sono correlati, servono scopi diversi. Il monitoraggio implica l’impostazione di controlli/avvisi predefiniti per garantire che un sistema funzioni entro parametri accettabili, le tue SLA/SLO. L’osservabilità, d’altra parte, va oltre fornendo una comprensione completa del comportamento del sistema. Non si tratta solo di sapere quando qualcosa si rompe; si tratta di capire perché e come è successo. Sia il monitoraggio che l’osservabilità sono essenziali per una gestione efficace del sistema.

Chiamata: OpenTelemetry

OpenTelemetry (alias OTel) è una delle principali collezioni open-source di API, SDK e strumenti. Usalo per strumentare, generare, raccogliere ed esportare dati di telemetria (metriche, log e tracce) per aiutarti ad analizzare le prestazioni e il comportamento del tuo software. OpenTelemetry si integra con molte librerie popolari e framework, e supporta la strumentazione basata su codice e senza codice in diversi ambienti Kubernetes.

Conclusione

Per concludere, l’Observability è più di un requisito tecnico — è un imperativo strategico per le organizzazioni che desiderano mantenersi al passo nel mercato competitivo di oggi. Sfruttando gli strumenti e le strategie giusti, come OTel per la raccolta unificata dei dati, le organizzazioni possono monitorare, risolvere problemi e ottimizzare continuamente le loro applicazioni Kubernetes. Attraverso una migliore visibilità sulle prestazioni del sistema, le organizzazioni possono prendere decisioni basate sui dati, migliorare la affidabilità delle applicazioni e raggiungere più efficacemente gli obiettivi aziendali.

Non so chi abbia detto questo, ma amo questa citazione: Stop congetture, inizia a sapere!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability