Tech InDepth

Un Application Performance Management fin dalle fasi di sviluppo e test

Nel confronto con analisti e i principali vendor di soluzioni APM emerge chiaro e forte un messaggio: per aumentare la qualità del software rilasciato, abilitando velocità di sviluppo e soddisfazione degli utenti, bisogna considerare monitoraggio e gestione delle performance fin dalle prime fasi del ciclo di vita di un’applicazione

Pubblicato il 04 Apr 2018

apm dalle fasi di sviluppo e test

Spostare la gestione delle prestazioni applicative sempre più vicino alle fasi di sviluppo e testing, integrando competenze di analisi delle performance all’interno dei team Dev Ops. È quanto emerge sia dagli analisti sia dal confronto che ZeroUno ha avuto con alcuni dei principali vendor di soluzioni di Application Performance Management.

Forrester ha pubblicato lo scorso agosto un report che esplicita molto chiaramente già nel titolo questa necessità, utilizzando la tipica espressione americana “shift left” (portare più a sinistra di una ipotetica barra cronologica) l’APM nel ciclo di vita delle applicazioni: Shift APM left for Better DevOps Performance. E la motivazione è molto semplice: l’esperienza dei team delle Operation, supportata dagli strumenti APM, nella risoluzione di problemi relativi ad abbassamenti delle performance o, nella peggiore delle ipotesi, interruzioni del servizio che si presentano in produzione può aiutare a sviluppare più rapidamente codice migliore.

Daniela Rao, Senior Director Research & Consulting di IDC Italia, conferma l’interesse per l’utilizzo di strumenti APM fin dalle fasi iniziali del ciclo di vita di un’applicazione (vedi articolo APM, le caratteristiche di un mercato in forte crescita): “La crescita registrata nel mercato mondiale del software per la gestione delle prestazioni delle applicazioni è dovuta in gran parte proprio alla crescente domanda di soluzioni progettate per supportare le iniziative DevOps e dell’infrastruttura multicloud; si tratta in questo caso di soluzioni fruite in modalità SaaS e infatti prevediamo per le soluzioni APM as a service un tasso di crescita annuo composto (CAGR) quinquennale del 22,3% (2016-2021), a fronte di un CAGR del 9,6% per soluzioni on premise. Molte organizzazioni IT o di servizi digitali – prosegue l’analista – utilizzano queste soluzioni per aumentare la trasparenza dei progetti DevOps, consentendo ai team di sviluppo e IT di collaborare e identificare i problemi a livello di codice, prima che le applicazioni entrino in produzione. Molte di queste soluzioni consentono di cambiare il modo in cui le applicazioni vengono gestite, abilitando una maggiore collaborazione tra team IT tradizionalmente separati e contribuendo a migliorare l’esperienza del cliente e le informazioni associate”

La stretta relazione tra sviluppo e performance delle applicazioni

Lo sviluppo di un’applicazione è un tema assai complesso, dove bisogna saper dosare in un delicato equilibrio qualità del software, velocità di rilascio, sicurezza e rapidità di esecuzione. Da un lato vengono richiesti cicli di rilascio sempre più rapidi che finiscono con il ridurre la finestra temporale per i test, dall’altro questi ultimi sono sempre più complessi perché, come sintetizza Forrester, le performance di una moderna applicazione dipendono da molteplici fattori:

  • tutto ha ovviamente inizio dal codice: un codice scadente non può che ostacolare le performance di un’applicazione. Ma cosa significa codice scadente? “La migrazione delle applicazioni al cloud – cita come esempio Forrester – non migliora le prestazioni di default se il processo non è studiato fin dall’inzio per sfruttare il cloud”;
  • l’infrastruttura influisce sulle prestazioni delle applicazioni, ma gli sviluppatori non sono esperti dell’ottimizzazione dell’infrastruttura, questa è una conoscenza di competenza della parte “ops” dei team DevOps. Ed è quindi fondamentale che questi dispongano (e sappiano interpretarli) di feedback che arrivano dalle applicazioni in produzione;
  • anche i contenuti influiscono sulle prestazioni: la direzione strategica e il marketing richiedono aggiornamenti continui dei contenuti (una nuova campagna, un nuovo servizio ecc.) e ovviamente i team DevOps devono essere in grado di dare risposte rapide.

Parlando della stretta relazione tra sviluppo e performance delle applicazioni, Claudio Canevazzi, Executive IT Specialist IBM Cloud Italy (vedi articolo Customer experience all’altezza delle aspettative grazie al “nuovo” APM), dice infatti: “Questo è un tema molto importante e lo sarà sempre più in un prossimo futuro perché una nuova applicazione rilasciata senza un opportuno test delle performance potrebbe veramente mettere a rischio il servizio e, in molti casi, l’immagine stessa dell’azienda. Quindi è necessario che le soluzioni APM possano essere fruite facilmente anche in ambienti di sviluppo e test anche perché pensare di introdurre ulteriori competenze per effettuare analisi delle performance è molto difficile. Ciò su cui si sta lavorando è proprio di poter fornire agli sviluppatori dashboard semplici da interpretare in modo che siano loro stessi a poter valutare la qualità del codice che scrivono”.

Affermazioni confermate dai risultati della survey condotta da Forrester all’inizio del 2017 sull’utilizzo del DevOps (a livello globale su un campione di 623 aziende) dalla quale emerge che il 79% degli executive e il 71% dei professionisti dei team DevOps hanno concordato sul fatto che il monitoraggio e l’analisi dell performance erano requisiti fondamentali per la progettazione di servizi e applicazioni aziendali.

Rendere disponibili strumenti APM per i team DevOps

La metodologia DevOps sta portando un cambiamento filosofico nelle organizzazioni: se prima i team sviluppo e operation affermavano rispettivamente “l’infrastruttura non è un mio problema” e “la qualità del codice non è un mio problema”, il mantra del DevOps è la collaborazione. Ma, ricorda Forrester, la collaborazione senza gli strumenti adeguati non è sufficiente, per questo l’analista saluta con favore le soluzioni APM di nuova generazione che consentono di “spostare a sinistra” le attività di gestione delle performance per capire: l’influenza delle infrastrutture, dei device utilizzati per la fruizione e come si comportano realmente gli utenti (e non come gli sviluppatori si immaginano che si comportino).

Mettere a disposizione per le attività di test gli stessi strumenti APM utilizzati in produzione consente di collaborare in modo più efficiente (perché tutti i componenti del team utilizzano strumenti conosciuti di cui si fidano) velocizzando l’analisi delle cause di malfunzionamento e, di conseguenza, la loro risoluzione.

Come ricorda Luca Mascelloni, Senior Director di CA Technologies Italia (vedi articolo APM, analisi differenti per diverse prospettive), è fondamentale “poter utilizzare i dati di performance che arrivano dalla produzione per tutti i test dallo sviluppo in poi: questo consente di simulare nell’ambiente di sviluppo quello che realmente avverrà all’applicazione nel momento in cui andrà in produzione; quale sarà l’impatto del nuovo servizio. Ciò ovviamente permette di migliorare la qualità; per farlo è necessaria l’integrazione tra i sistemi di monitoraggio in produzione con i tool di DevOps”.

“È indispensabile – aggiunge Emanuele Cagnola, Italy Director di Dynatrace (vedi articolo APM: innovarsi ai ritmi della trasformazione digitale) – che tutte le metriche siano a disposizione dei differenti stadi del rilascio delle applicazioni perché, prima di tutto, questo consente di abbattere i tempi di sviluppo e, soprattutto, di poter indirizzare preventivamente anomalie o malfunzionamenti in modo da avere un miglioramento continuo delle applicazioni o delle funzionalità sviluppate”. E David Rossi, Presales Manager South Emea di Micro Focus, riferendosi allo sviluppatore, ricorda che “è necessario possa avere evidenza di tutta la filiera applicativa perché i sistemi in esercizio vivono su equilibri che potrebbero venire sbilanciati anche da piccole perturbazioni” (vedi articolo APM: monitorare tutto, dall’infrastruttura all’ultimo miglio).

Quali sono le competenze necessarie?

Si pone a questo punto il problema delle competenze. È necessario che i team DevOps abbiano al proprio interno figure specializzate nell’analisi delle performance?

La risposta dei vendor a questo proposito non è uniforme, seppure tutti abbiano sottolineato l’indispensabilità di strumenti APM che consentano a questi team di disporre facilmente e rapidamente di un quadro complessivo (con possibilità di approfondimenti di dettaglio) delle performance.

Vincenzo Bassi, Team Leader APM per l’Italia di Oracle, è categorico nel ritenere che skill verticali sulle performance non siano necessari (vedi articolo Correlazioni e machine learning: parole chiave per una soluzione di APM): “È un concetto che ha già fallito sul mercato: da un lato perché anche se nel passato poteva essere una cosa ragionevole, di fatto era un approccio considerato troppo costoso dalla maggior parte delle aziende; dall’altro, anche chi ha scelto questa strada si è trovato a dover mettere intorno a un tavolo persone con skill molto diversi, con problematiche organizzative e di relazione difficili da risolvere. Secondo me, quindi, lo strumento di APM non deve richiedere competenze specifiche, deve facilitare la fruizione di un’applicazione e fornire a chi conosce bene l’applicazione dashboard facilmente utilizzabili per misurarne le performance”.

Sono invece convinti dell’importanza della presenza di competenze specifiche di performance management fin dalle prime fasi di vita di un’applicazione alcuni degli altri vendor intervistati. “Penso – dice Mascelloni di CA Technologies Italia – che in un futuro più o meno prossimo avremo figure che si occupano di monitoraggio all’interno dei team di sviluppo; qualcuno lo sta già facendo, come avviene per la sicurezza, ma in futuro immagino che queste situazioni non saranno più episodiche, perché è un punto importante per un’analisi efficace della qualità del software e dei potenziali rischi di perdita di performance”.

Affermazione che Mauro Sagratella, Digital Advisor di Microsoft Italia (vedi articolo Un’unica piattaforma di monitoraggio delle applicazioni per misurare le diverse customer experience), rafforza così: “Penso che la presenza di competenze di performance management all’interno dei team di sviluppo sia fondamentale; tra l’altro la metodologia DevOps prevede proprio il concetto di feedback costante e questo è possibile solo se si è in grado di analizzare le performance reali delle applicazioni in produzione. Non necessariamente – precisa però – deve essere una persona dedicata esclusivamente a questo, ma è necessario che queste competenze siano presenti. Le soluzioni APM danno il supporto fondamentale della disponibilità delle informazioni, correlate, in modo che queste persone dispongano dei set di metriche, attraverso dashboard personalizzabili per ruolo, loro necessari per comprendere se un’applicazione risponde alle attese e dove è necessario intervenire per migliorarla e prevenire i problemi. Ma bisogna che nei team ci sia chi questi dati li capisce e sappia come interpretarli”. Sagratella conclude evidenziando che “il vero problema nelle aziende è introdurre un cambiamento organizzativo così dirompente, introdurre la logica del cambiamento continuo, del ‘work in progress’, dove il miglioramento è costante ed è basato sui feedback che arrivano dalla produzione”.

E infatti Rao ricorda che “l’approccio DevOps è ben sviluppato nella maggior parte delle grandi aziende del mondo e mi riferisco in particolare ai grandi system integrator o realtà veramente di grandi dimensioni. Nelle medie aziende questo concetto, soprattutto in Italia, viene ancora guardato con un po’ di scetticismo dove i vincoli di tipo organizzativo o finanziario inducono a una maggiore cautela nel promuovere metodologie che hanno impatti così importanti sull’organizzazione, come è per il DevOps. Si tratta quindi di un fronte che continuerà ad avanzare, ma lo farà lentamente. Non dobbiamo poi dimenticare – conclude Rao – che si diffonde sempre più la fruizione di servizi, infrastrutturali e applicativi, in cloud, l’utilizzo di portali API per l’integrazione di applicazioni già pronte, quindi avremo sicuramente un tema di controllo delle performance, ma sarà più legato all’integrazione e all’utilizzo di applicazioni già pronte che non allo sviluppo applicativo.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4