Home
topics
Monitoraggio API
Data di pubblicazione: 29 novembre 2023
Autori: Chrystal R. China, Michael Goodwin
Il monitoraggio API è il processo di osservazione delle prestazioni, della disponibilità e della funzionalità delle application programming interface (API) aziendali.
Più specificamente, il monitoraggio API implica la valutazione delle risposte API in produzione per garantire che soddisfino i parametri di riferimento delle prestazioni di un'organizzazione e allertare le parti interessate quando le cose vanno male. Con le aziende che si spostano sempre più verso infrastrutture IT digitalizzate, la connettività senza attriti tra parti e sistemi è fondamentale. È qui che entrano in gioco le API.
Le API fungono da elementi costitutivi della maggior parte delle applicazioni mobili e web e da hub di orchestrazione dei dati per i vari processi, protocolli e app che compongono la maggior parte degli ecosistemi IT. Facilitano la comunicazione tra app e tra app e client, consentendo una perfetta integrazione di vari servizi.
Oltre il 75% delle aziende dichiara di avere 26 API (in media) per app implementata.1 E più di un terzo riferisce che tutte le proprie app utilizzano API, una cifra destinata a crescere fino a oltre il 50% nei prossimi anni.1
Pertanto, le prestazioni delle API rappresentano una vera preoccupazione per la maggior parte delle aziende. Se non gestite correttamente, le API compromesse o obsolete possono avere un impatto significativo sull'esperienza dell'utente finale e sulla funzionalità complessiva delle applicazioni, nonché sui profitti aziendali. Pratiche vigili di monitoraggio API possono aiutare le aziende ad affrontare tempestivamente i problemi relativi alle prestazioni e alle funzionalità delle API prima che diventino distruttivi (o addirittura catastrofici).
Richiedi una demo di IBM Instana Observability per scoprire come ottenere l'osservabilità e il monitoraggio full stack in pochi minuti.
Le API odierne possono facilitare complessi processi di integrazione di sistemi, app e microservizi, ma anche le API più avanzate richiederanno ai team di implementare rigorose pratiche di monitoraggio. Fortunatamente, esistono numerose strategie di monitoraggio API che possono aiutare a proteggere l'efficienza e l'efficacia a lungo termine delle API aziendali.
Il monitoraggio del tempo di attività esegue il ping di un endpoint API (ovvero, il luogo degli scambi di dati API) a intervalli regolari per assicurarsi che sia accessibile e reattivo (ovvero "attivo"). Se l'API non risponde o richiede troppo tempo per rispondere, il sistema invia un avviso.
Le metriche API per il monitoraggio del tempo di attività includono la percentuale di disponibilità (la percentuale di tempo in cui un'API è accessibile) e la durata del tempo di inattività (il periodo di tempo in cui un'API è inaccessibile). Non è raro che i Service Level Agreement (SLA) specifichino le percentuali di tempo di attività richieste, spesso imponendo un tempo di attività di circa il 99,9% ("tre nove") o superiore.
Il monitoraggio delle prestazioni quantifica la rapidità e l'affidabilità di risposta di un'API alle richieste e aiuta a identificare le inefficienze, i problemi di rete e i sovraccaricamenti dei server. Le prestazioni vengono in genere misurate da metriche come il tempo di risposta (il tempo impiegato da un'API per elaborare e rispondere alle richieste/chiamate), la latenza (il tempo necessario per trasmettere una richiesta dal mittente al destinatario) e la velocità effettiva (il numero di richieste elaborate per unità di tempo). Il monitoraggio delle prestazioni può anche tenere traccia dei tassi di errore, che indicano la percentuale di richieste che generano errori.
Il monitoraggio sintetico è un processo che imita il percorso che un utente finale potrebbe seguire durante l'utilizzo di un'app. Utilizza script per simulare scenari utente, tipi di dispositivi e posizione geografica, tra gli altri elementi, per indicare ai team le prestazioni di un'app.
Come il monitoraggio sintetico, il RUM consente ai team di visualizzare dati dettagliati sulle prestazioni e sulle funzionalità delle app. Tuttavia, invece di monitorare le esperienze degli utenti simulati, osserva le esperienze reali degli utenti reali, fornendo un'osservabilità full stack per l'esperienza dell'utente finale e facilitando un processo decisionale più dettagliato.
Il monitoraggio della convalida valuta se un'API si comporta come previsto inviando script di test per verificare le risposte API corrette, i formati di dati e i codici di stato e che le chiamate di sistema restituiscano i dati appropriati. Il monitoraggio della convalida è particolarmente utile per identificare problemi con processi a più fasi o con la logica sottostante o il trattamento dei dati di un'API.
Circa il 35% delle aziende ha avuto almeno un incidente di API security nell'ultimo anno e più della metà riferisce di aver subito più incidenti.1 Poiché le API espongono i dati al mondo esterno, sono tra gli obiettivi più probabili per gli attacchi informatici.
Il monitoraggio della sicurezza si concentra sulla protezione delle API da attacchi dannosi da parte di malintenzionati implementando pratiche come il monitoraggio dei tentativi di accesso non riusciti, la scansione di anomalie nei modelli di chiamate API e il controllo delle violazioni dei dati. Il monitoraggio della sicurezza comporta spesso l'uso di protocolli di crittografia, convalida e autenticazione (ad esempio, OAuth 2.0, chiavi API, convalida dello schema JSON, ecc.) per garantire che solo gli utenti autorizzati possano accedere ai dati API. Questi sistemi garantiscono inoltre una trasmissione sicura dei dati tra sistemi front-end e back-end, proteggendo da minacce informatiche come hack, furti di dati e attacchi DDoS.
App come Slack e altre app e servizi web dipendono in genere da API gestite e di terze parti, che possono creare problemi di trasmissione dei dati. Il monitoraggio dell'integrazione risolve tali problemi testando le interazioni tra un'API e le altre app e sistemi con cui comunica, assicurando che tutte le parti di un sistema funzionino insieme come previsto e identificando i problemi nelle interfacce tra i sistemi. Questo tipo di monitoraggio è particolarmente utile per lavorare all'interno di un'architettura di microservizi, dove più servizi indipendenti interagiscono tramite le API.
Le API, in particolare quelle che operano nei settori medico e finanziario, spesso trasmettono dati sensibili di utenti e aziende, il che aumenta la necessità di processi di monitoraggio della conformità normativa.
Il monitoraggio della conformità normativa assicura che un'API aderisca agli standard di privacy pertinenti (come HIPAA), agli standard specifici di settore (come PCI DSS per l'elaborazione dei pagamenti) e persino agli standard aziendali interni. I team possono monitorare le pratiche di gestione dei dati, gli standard di crittografia e i meccanismi di controllo degli accessi, oltre ad altri processi per mantenere la conformità legale e la fiducia dei clienti.
Le API si evolvono nel tempo, aggiungendo nuove funzionalità, ritirando quelle vecchie e modificando il funzionamento di determinate funzioni. Quando si verificano questi cambiamenti, è importante monitorare la transizione in modo che le applicazioni che fanno affidamento sull'API non siano compromesse dagli aggiornamenti. Il monitoraggio delle versioni consente ai team di monitorare le modifiche API nel tempo, in genere esaminando ogni nuova versione.
Il monitoraggio delle versioni potrebbe comportare il confronto delle funzionalità tra le versioni, il monitoraggio dei tassi di adozione di una nuova versione API, il monitoraggio dei tassi di errore relativi alle funzioni ritirate e il monitoraggio dell'utilizzo delle API nelle versioni di un'app. Questo tipo di monitoraggio è utile per identificare i problemi che sorgono durante le modifiche alla struttura o alla funzionalità dell'API e può informare le future modifiche all'API.
Indipendentemente dall'approccio, i team devono assegnare priorità al monitoraggio in tempo reale per ottenere un feedback immediato sulle prestazioni delle applicazioni e risolvere i problemi prima di creare interruzioni di servizio per utenti e partner. Come ulteriore beneficio, il monitoraggio in tempo reale viene spesso visualizzato tramite dashboard e pagine di stato che possono fornire insight immediati e automatizzare gli avvisi di sistema, entrambi processi cruciali per la gestione di workflow critici o ad alta disponibilità.
Le API sono il collante che tiene insieme le moderne architetture applicative e i workflow di automazione, quindi mantenerle in ottima forma può rendere un'infrastruttura IT più veloce e agile. Per implementare un processo di monitoraggio API efficace e completo, i team DevOps e di sicurezza possono:
Prima di configurare i protocolli di monitoraggio, i team devono stabilire obiettivi chiari. Ciò significa definire KPI per aspetti quali disponibilità, tempi di risposta, throughput e tassi di errore. Naturalmente, i KPI dovrebbero allinearsi agli obiettivi organizzativi più ampi e alle esigenze dei consumatori.
Data la vastità di alcune reti API, affidarsi agli strumenti di monitoraggio API è un gioco da ragazzi. Le piattaforme avanzate di osservabilità dei dati API (come Postman, Datadog e IBM Instana Observability) possono automatizzare e semplificare il processo di monitoraggio, utilizzando funzionalità quali controlli delle parole chiave HTTP e monitoraggio dei server DNS. Nel valutare i servizi di monitoraggio, considera le loro funzioni, la facilità d'uso, la compatibilità dello stack tecnologico e i costi per garantire una buona compatibilità.
Questo processo varia a seconda degli strumenti di monitoraggio, ma in genere comporta tre attività chiave: impostazione degli endpoint, definizione dei test API e pianificazione del monitoraggio.
La configurazione degli endpoint richiede ai team di fornire l'URL dell'endpoint API, il codice di risposta HTTP e qualsiasi intestazione o parametro richiesto in modo che lo strumento di monitoraggio sappia dove e come eseguire gli script di test. Come suggerisce la frase, la definizione dei test è il processo di configurazione degli strumenti di monitoraggio dei test per convalidare le prestazioni API. L'impostazione di un programma di monitoraggio richiede semplicemente che il team decida con quale frequenza lo strumento eseguirà i test scelti.
Gli avvisi sono una parte critica di qualsiasi sistema di monitoraggio, forniscono notifiche istantanee dei problemi di sistema e consentono ai team di risolvere i problemi prima che abbiano un impatto sugli utenti. La maggior parte degli strumenti di monitoraggio consente agli utenti di configurare gli avvisi in base a varie condizioni, ad esempio quando il tempo di risposta API supera una determinata soglia o quando un determinato numero di errori si verifica entro un determinato periodo di tempo.
Le API si evolvono, quindi è importante rivedere regolarmente i dati e gli insight sulle prestazioni delle API per assicurarsi che i protocolli di monitoraggio siano ancora pertinenti. Cerca tendenze e modelli nei dati storici che potrebbero indicare i problemi sottostanti. Ad esempio, se il tempo di risposta di un'API è costantemente elevato in determinate ore, potrebbe indicare la necessità di più risorse durante tali periodi.
IBM Instana democratizza l'osservabilità fornendo una soluzione che chiunque può utilizzare per ottenere i dati desiderati con il contesto di cui ha bisogno. Costruita appositamente per il cloud-native, ma indipendente dalla tecnologia, la piattaforma fornisce automaticamente e continuamente dati ad alta fedeltà con una granularità di 1 secondo e tracce end-to-end, con il contesto delle dipendenze logiche e fisiche tra dispositivi mobili, web, applicazioni e infrastrutture.
Il monitoraggio delle API con IBM Instana Observability consente di garantire la disponibilità, l'affidabilità e le prestazioni delle API per un'esperienza digitale senza interruzioni.
IBM è stata nominata Leader nel report di Gartner del 2023: Critical Capabilities for API Management.
Le API REST rappresentano un modo flessibile e leggero per integrare le applicazioni. Sono oggi il metodo più comune per collegare componenti nelle architetture di microservizi.
La modernizzazione delle applicazioni si riferisce principalmente alla trasformazione di applicazioni legacy monolitiche in applicazioni cloud basate su un'architettura di microservizi.