Come con Devops può cambiare il monitoring

DevOps, lo ricordiamo, è la metodologia di sviluppo del software che punta alla comunicazione, collaborazione e integrazione tra sviluppatori e addetti alle operations.

Si tratta di un’evoluzione che ha cercato di migliorare i tempi dello sviluppo, deployment e collaborazione tra sviluppatori e operatori aumentando velocità ed efficienza.

Devops porta più automazione in ogni fase del ciclo di vita dell'applicazione ma anche ripercussioni significative.

Con i cambiamenti nei requisiti per lo sviluppo, la sperimentazione e la distribuzione delle applicazioni, anche le esigenze dei moderni sistemi di monitoraggio stanno infatti cambiando.

Il monitoraggio è una delle aree più trascurate quando si adottano le metodologie devops perché se con una base di codice relativamente statica le operazioni non hanno bisogno di soluzioni di monitoraggio più sensibili, con frequenti modifiche di codice che diventano la norma, le organizzazioni necessitano di una visione più completa e in tempo reale dell'ambiente di produzione.

Caratteristiche come lo streaming, la ripetizione storica e le grandi visualizzazioni diventano componenti mission-critical del monitoraggio delle applicazioni e dei servizi.
Devops sta accelerando l'intero ciclo di vita dell'applicazione, dallo sviluppo, al QA (Quality Assurance), alla produzione.

Test più automatici

Così gli sviluppatori hanno dovuto adattarsi scrivendo test più automatici per il loro codice, in modo che il QA sia il più possibile automatizzata. QA è diventata dipendente dall'integrazione continua, che esegue automaticamente tutti i test di unità e di integrazione ogni volta che viene eseguito un nuovo codice. I sistemi di monitoraggio stanno diventando sempre più consapevoli di ogni parte del devops toolchain. L'implementazione continua si basa su tutta l'automazione nella toolbox di devops per spostare il codice nella produzione ogni volta che passa tutti i suoi test. Se questo suona molto ovest selvaggio, come qualcosa da provare e testato solo sulle applicazioni più piccole e meno importanti, dovreste sapere che Facebook utilizza questi sistemi di distribuzione agili.

L'importanza del monitoring

Ma le aziende non possono fidarsi ciecamente di una scatola nera che distribuisce automaticamente il codice che si spera funzioni. Sistemi di monitoraggio correttamente implementati possono fornire la necessaria comprensione, aiutandovi a trasformare un ipotetico pasticcio automatico. I sistemi di monitoraggio odierni hanno una visione in tempo reale di ogni singolo pezzo dello stack applicativo.

Gli sviluppatori di applicazioni moderne stanno scrivendo codice basato su Api, il che significa che le stesse Api sono ora disponibili per i sistemi di monitoraggio e molti servizi di monitoraggio dispongono di agganci di codice nella logica dell' applicazione.

Inoltre, i servizi di monitoraggio hanno ampliato la loro attenzione dagli ambienti di produzione all'intero stack applicativo. Questo include la fase di compilazione, lo stato dei test unitari, i test di integrazione, come il codice funziona sotto carico e molto altro ancora. I servizi di monitoraggio della distribuzione del codice di Google sono anche noti per guardare il suo software di gestione del progetto, alla ricerca e segnalazione di singoli file che hanno statisticamente più segnalazioni di bug rispetto ad altri, contrassegnandoli come hot spot per guardare fuori in futuro.

Monitoraggio proattivo

Un adeguato monitoraggio nei devops è proattivo, non solo reattivo. Trova modi per migliorare la qualità delle applicazioni prima ancora che i problemi si presentino. Poiché questo monitoraggio controlla anche gli strumenti, può aiutare a migliorare la catena di sviluppo evidenziando aree che potrebbero richiedere maggiore automazione.

Quando si dispone di un' applicazione complessa aggiornata e distribuita più volte al giorno e sottoposta a cicli rapidi di Aq, si desidera essere in grado di individuare i problemi il più rapidamente possibile. Un monitoraggio sofisticato diventa una prima linea di difesa contro i tempi di fermo macchina. Il monitoraggio ha dovuto quindi evolversi per tener conto di tutti i nuovi dati.

Come si può distinguere tra i servizi di monitoring vecchia scuola e quelli predisposti per lo sviluppo? Se non sai cosa stai cercando, potresti trovarti di fronte a tempi di fermo macchina significativi. Ovviamente, molte cose sono cambiate nel moderno sviluppo del ciclo di vita delle applicazioni e nella distribuzione, ma molti fornitori di monitoraggio rimangono bloccati al passato.

Devops per gestire le Api

Le moderne architetture di sviluppo per applicazioni complesse hanno molti dati da tracciare. Non è più sufficiente tenere traccia solo delle statistiche più semplici come Ram, Cpu e I/O. Ora la soluzione di monitoraggio dovrebbe essere in grado di gestire le Api e alimentare i dati direttamente dalle applicazioni. Per dare un senso a tutto questo, ciò che deve offrire un sistema di monitoraggio moderno è lo streaming in tempo reale dei dati, la riproduzione storica e i grandi strumenti di visualizzazione.

Gli strumenti di visualizzazione in particolare sono importanti per comprendere lo stato di tutte le applicazioni in modo olistico. Essere in grado di individuare i problemi in un ambiente agile di sviluppo spesso dipende dalla qualità degli strumenti di visualizzazione. Tracciare i problemi controllando i singoli file di log quando ci sono così tanti pezzi in movimento non è una strategia operativa efficiente.

Il secondo modo più importante per valutare un sistema di monitoraggio è la quantità e la qualità delle integrazioni modulari. Quanti linguaggi di programmazione è possibile inserire nel sistema di monitoraggio? Molti sistemi di monitoraggio più vecchi possono averne pochi, con un focus su Java e. Net, anche se i linguaggi di programmazione di livello superiore stanno diventando sempre più importanti per lo sviluppo di applicazioni aziendali. Avrete bisogno di un sistema di monitoraggio in grado di legare in linguaggi di scripting popolari come Python, Ruby, Php e Go.

Monitoraggio in tempo reale

Il software di monitoraggio è in grado di agganciarsi direttamente agli strumenti di gestione della configurazione? Con quanti database può interfacciarsi? Può parlare con il software PaaS come Cloud Foundry e OpenShift? Che dire dei container Docker e Linux?

In realtà, solo guardando quanto sia ben supportato Docker all'interno del software di monitoraggio, si dovrebbe dire molto sul suo supporto per altri strumenti moderni. Anche se Docker è uno degli strumenti di sviluppo più recenti, è anche uno dei più rapidi in termini di adozione. Il software Enterprise è ancora dominato da strumenti e framework tradizionali come Java, Net, Oracle, IIS, WebSphere e Microsoft SQL Server.

Facebook notoriamente è costruito su PHP, mentre Google utilizza molto Python e Go. Il futuro del software enterprise sarà molto più diversificato di oggi. I principali fornitori di monitoraggio sono esperti di questi cambiamenti. Hanno abbracciato il futuro poliglotta e hanno costruito strumenti in grado di scalare con la velocità di implementazioni agili degli sviluppi.

A causa dei cicli di vita sempre più compressi delle applicazioni, un adeguato monitoraggio in tempo reale è diventato una pietra angolare fondamentale per l' esecuzione degli utensili. La comprensione di tutti i pezzi in movimento e di come si adattano indicherà la giusta strada per l'organizzazione.

 

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.
CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here