A cura di Wolfgang Gottesheim, Technology Strategist di Dynatrace
Un’applicazione web moderna in genere non è pensata per essere utilizzata solo tramite una interfaccia web. Fornisce funzionalità che vengono impiegate anche in altri contesti, ad esempio dalle applicazioni mobile. Pensate, ad esempio, a un’azienda di e-commerce: di solito non fa affari esclusivamente con le vendite sul sito ma anche attraverso le applicazioni mobile e grazie ad applicazioni client che vengono utilizzate per processare gli ordini nel call center. Inoltre, può anche esporre alcune delle sue funzionalità perché vengano utilizzate da altri siti.
In un contesto di questo tipo, è importante capire che le prestazioni sono rilevanti non solo dal punto di vista del front-end. Una app per lo shopping su uno smartphone può fornire un’esperienza utente di valore solo quando i servizi di back-end su cui si basa sono attivi e funzionanti ed è in grado di fornire i risultati velocemente. Qui entrano in gioco le Web API, perché tutto questo vale sia per le applicazioni per smartphone che per qualsiasi altro software che utilizza le Web API lato server tramite chiamate SOAP o REST.
Le Web API rappresentano, infatti, un materiale prezioso nel campo della programmazione: uno strumento di lavoro indispensabile per gli sviluppatori con un’esposizione enorme in termini di funzionalità.
Quindi, come possiamo assicurarci che le API siano all’altezza delle aspettative in termini di performance?
Le nostre analisi sulle metriche delle prestazioni hanno dimostrato che iniziare ad occuparsi delle prestazioni il giorno in cui avviene il primo deployment è già troppo tardi! È fondamentale, al contrario, avere degli strumenti adeguati per un continuo monitoraggio delle prestazioni già durante la fase di sviluppo, e bisogna includere in questo monitoraggio anche le Web API.
Dynatrace 6.1 ha esteso alle Web API le funzionalità di lifecycle e testing con una nuova categoria su misura. Per questi test, vengono monitorate una serie di azioni rilevanti per ogni singola chiamata API, calcolando una linea di base a partire dai dati storici e valutando l’utilizzo e le deviazioni rispetto a questa base. I dati presi in esame comprendono il tempo di risposta, il tasso di fallimento e la portata della risposta guardando alle prestazioni dal punto di vista degli utenti API: i dati che riguardano le chiamate arrivano in tempo all’utente? Come cambiano le dimensioni della risposta con parametri diversi? L’API sta inviando un codice di risposta corretto quando mancano dei parametri o qualcosa va storto?
Questi dati sono rilevanti anche per il controllo di produzione, dove il monitoraggio sintetico aiuta a cogliere i problemi prima che si ripercuotano sui clienti.
Tuttavia, non si deve smettere di guardare alle API anche dall’esterno. Bisogna infatti fornire visibilità anche ai processi dal punto di vista del server: quante chiamate vengono inviate al database o ai web service interni per ogni chiamata API? Quante aspettative vengono abbandonate? Quanti log di messaggi vengono scritti? Queste metriche ci aiutano a scoprire le regressioni delle architetture in modo da assicurare che la prestazione dell’API non sia stata influenzata negativamente dai cambiamenti recenti nella programmazione.
Solo monitorando questi dati nel corso del tempo si può garantire che un API continui a soddisfare gli obiettivi di performance nel tempo e sia possibile cogliere i problemi potenziali nelle prime fasi del ciclo di sviluppo per fornire agli sviluppatori gli elementi necessari per sistemarli. Da questo punto di vista Dynatrace Free Trial rappresenta uno strumento interessante da cui partire.