La gestione delle risorse è fondamentale per ottimizzare le prestazioni e la stabilità di un sito. Un sito WordPress deve essere in grado di gestire i picchi di traffico, scalare le risorse al momento giusto e rilevare rapidamente eventuali anomalie di performance.

Naturalmente, anche l’applicazione di tutti questi compiti è necessaria. L’API di Kinsta ha alcuni endpoint che possono aiutare a prevedere lo scaling, o scalabilità, delle risorse e il rilevamento delle anomalie.

In questo articolo esamineremo i concetti di scalabilità predittiva delle risorse e di rilevamento delle anomalie e come l’API Kinsta può essere inserita nel proprio flusso di lavoro. Discuteremo alcuni scenari reali di questo tipo di scalabilità, esamineremo le funzionalità dell’API e valuteremo come integrare queste strategie in un flusso di lavoro.

Come primo passo, però, dobbiamo cercare di capire quali sono i compiti da affrontare.

Come funzionano lo scaling predittivo delle risorse e il rilevamento delle anomalie

Tra poco vedremo in cosa può aiutarci l’API di Kinsta. Prima, però, vediamo come prevedere la scalabilità delle risorse. Successivamente, vedremo anche i vantaggi della capacità di rilevare le anomalie nelle prestazioni di un sito.

I vantaggi della scalabilità predittiva delle risorse

In poche parole, la scalabilità predittiva delle risorse è un modo per gestire le risorse del sito in base alla domanda prevista. Si tratta di un approccio proattivo che prevede l’analisi dei dati, dei modelli di utilizzo e di altri fattori rilevanti.

Prevedere quando il sito potrebbe subire un aumento del traffico o del consumo di risorse permette di scalare per soddisfare la domanda. Il risultato netto è una performance ottimizzata e una migliore esperienza utente (UX).

Tuttavia, i vantaggi della scalabilità predittiva delle risorse sono molteplici e costituiscono l’insieme:

  1. Migliori prestazioni del sito. Scalare le risorse può aiutare a prevenire i colli di bottiglia delle prestazioni. A sua volta, questo può garantire che il sito rimanga reattivo durante i picchi di traffico.
  2. Ottimizzazione dei costi. Lo scaling predittivo permette di allocare le risorse con maggiore efficienza. In questo modo non si verificherà un eccesso di risorse e si ridurranno costi inutili.
  3. Miglioramento dell’esperienza utente. I picchi di traffico possono essere attenuati, migliorando l’esperienza utente. Il sito sarà in grado di gestire i picchi di traffico con meno fatica, offrendo un’esperienza front-end coerente, fluida e veloce.

Combinare lo scaling predittivo con la capacità di rilevare le anomalie delle prestazioni sul server è un’ottima combinazione. A seguire parleremo dei vantaggi del rilevamento di queste incongruenze.

L’importanza del rilevamento delle anomalie

Un aspetto che spesso va di pari passo con una strategia di scaling è il rilevamento delle irregolarità nelle metriche delle prestazioni del sito. Le statistiche avranno una linea di base e dei valori estremi per quanto riguarda l’utilizzo della CPU, il consumo di memoria e i tempi di risposta, che possono essere fonte di problemi e potenziali ottimizzazioni.

Individuare tempestivamente queste anomalie permette di affrontare qualsiasi problema potenziale prima che si ripercuota sulla disponibilità e sull’UX del sito e diventi un problema grave. Inoltre, ci sono molti altri vantaggi:

  • Risoluzione proattiva dei problemi. Se si riescono a rilevare le incongruenze prima che diventino problemi più gravi, è possibile intervenire tempestivamente per risolverli. In questo modo si possono ridurre al minimo i tempi di inattività e garantire la disponibilità continua del sito.
  • Miglioramento della stabilità del sito. Il rilevamento delle anomalie permette di identificare e risolvere i problemi di performance attuali. La risoluzione di questi problemi può contribuire alla stabilità e all’affidabilità generale del sito.
  • Approfondimenti sull’ottimizzazione. Analizzando le anomalie che si verificano, si possono trarre preziose indicazioni sulle aree del sito che potrebbero richiedere un’ulteriore ottimizzazione.

Sia il rilevamento delle anomalie che il miglioramento delle prestazioni sono due facce della stessa medaglia. Ciò significa che è necessario usare queste strategie in tandem per creare una solida base di prestazioni per il sito. Nella prossima sezione vedremo come si presenta questo aspetto in alcuni scenari tipici.

Scenari reali per lo scaling predittivo delle risorse e il rilevamento delle anomalie

La necessità di aumentare le risorse del server a propria disposizione ha molti usi pratici. Si può dire che quasi tutti i siti avranno bisogno di una qualche forma di questa strategia.

Per capire meglio come utilizzare lo scaling predittivo delle risorse e il rilevamento delle anomalie in un contesto reale, esaminiamone alcuni. Il primo è probabilmente uno degli scenari più comuni.

1. Siti di e-commerce durante le stagioni di punta

In un mondo ideale, il nostro sito di e-commerce avrà un traffico e un coinvolgimento costanti durante tutto l’anno. Tuttavia, nella realtà, qualsiasi attività è soggetta a fluttuazioni. Ad esempio, consideriamo un sito di e-commerce che ha grandi picchi di traffico durante le festività o i saldi.

Il sito web dei plugin audio Pulsar mostra immagini di prodotti di varie interfacce audio e un annuncio per una vendita primaverile con sconti fino al 60%.
Il sito web di Pulsar Audio, che mostra un’offerta di vendita primaverile.

In questo caso, il rilevamento delle anomalie si trasforma in un’immersione analitica più ampia. Si parte dalle metriche e si esaminano i dati storici relativi ai livelli di traffico. Utilizzando queste metriche per anticipare i picchi di traffico previsti, è possibile iniziare a pensare alle risorse.

Il compito è quello di essere proattivi nel dimensionamento delle risorse in base ai livelli di traffico previsti in determinati periodi dell’anno. Ad esempio, potremmo aumentare l’allocazione di CPU e memoria per gestire un carico maggiore. Sul fronte degli acquisti, l’esperienza può essere stabile e fluida per i nostri clienti. A sua volta, questo non solo può farci risparmiare ma anche guadagnare.

2. Siti di notizie e media durante i grandi eventi

Anche i siti che si occupano di contenuti legati all’attualità, come le testate giornalistiche, devono affrontare le stesse sfide dei siti di ecommerce. In questo caso, i picchi di traffico si verificano quando ci sono eventi importanti o notizie dell’ultima ora.

La homepage del sito web di NBC News, caratterizzata da un'intestazione prominente con collegamenti di navigazione a diverse sezioni di notizie. C'è una notizia principale accompagnata da immagini pertinenti. Intorno a questa ci sono altre notizie principali, un servizio speciale e un lettore video per lo streaming in diretta. La homepage evidenzia anche le ultime notizie sugli Stati Uniti, le storie più importanti e le notizie politiche.
Il sito web di NBC News.

In questo caso, però, la differenza è più critica: i picchi si verificano più frequentemente e sono anche più irregolari. Anche l’accesso ai contenuti rilevanti è spesso fondamentale. Pensiamo alle allerte meteo, ad esempio.

È qui che la scalabilità predittiva delle risorse può dare buoni risultati. Come nel caso dell’e-commerce, l’analisi dei modelli di traffico passati durante eventi simili può aiutare a prendere decisioni informate su quando scalare e di quanto. Anche il monitoraggio delle tendenze attuali può essere utile. L’obiettivo principale è garantire che il sito rimanga accessibile e reattivo. Sebbene una UX fluida sia altrettanto importante, l’accesso senza interruzioni è fondamentale.

3. Applicazioni Software as a Service (SaaS) con modelli di utilizzo variabili

Le applicazioni SaaS possono essere volatili, con modelli di utilizzo variabili in base al comportamento dei clienti e alla domanda complessiva del servizio. Un buon esempio è quello dell’epidemia di Covid-19 del marzo 2020. 16 milioni di professionisti IT sono dovuti rimanere a casa e Slack ha registrato un aumento del 20% degli utenti nelle prime due settimane.

Un mockup della finestra di un'applicazione Slack. Mostra l'interfaccia di un'applicazione per la collaborazione tra team per
L’app di messaggistica Slack.

Il rilevamento delle anomalie può aiutare a capire cosa potrebbe andare storto quando si scalano le risorse. Questo aspetto è stato molto importante per Slack perché era importante aiutare le persone a continuare a lavorare durante la pandemia.

Anche lo scaling predittivo delle risorse è fondamentale, perché è un modo per ottimizzare la propria infrastruttura in base a qualsiasi modello di utilizzo. Anche in questo caso, l’analisi dei dati storici e l’implementazione di una strategia di scaling proattiva possono aiutare l’UX, minimizzare i costi e costruire la fiducia e la reputazione esterna della propria base di utenti.

Le funzionalità dell’API di Kinsta per la gestione delle risorse

Avere un modo per implementare il ridimensionamento delle risorse e rilevare gli scostamenti è fondamentale quanto conoscere le strategie. Gli utenti di Kinsta hanno a disposizione la dashboard MyKinsta, che contiene una grande quantità di metriche:

Un'immagine della dashboard di MyKinsta che mostra una panoramica dei siti WordPress ospitati. Include il numero di versione PHP e il conteggio delle visite recenti. Sono presenti i registri della sezione Attività recenti e l'area Notifiche mostra i messaggi relativi ai piani di hosting WordPress a pagamento e ai siti monitorati.
La dashboard MyKinsta.

Tuttavia, questo non aiuta nelle situazioni in cui si ha bisogno di maggiore flessibilità. Lo strumento più adatto è l’API di Kinsta. L’API infatti offre una serie di endpoint per collegarsi alle nostre funzionalità, alcune delle quali saranno fondamentali per la scalabilità e l’analisi:

  • Utilizzo CPU. È possibile monitorare l’utilizzo della CPU del server nel tempo, il che aiuterà a identificare le tendenze e i potenziali colli di bottiglia prima che diventino un problema.
  • Utilizzo Memoria. Si può monitorare il consumo di memoria per assicurarsi che il sito abbia risorse sufficienti per gestire il carico di lavoro e aumentarlo quando necessario.
  • Larghezza di banda. L’analisi dei dati totali trasmessi può essere un buon indicatore per implementare la propria strategia di scaling.
  • Richieste più lente. Questo è uno dei tanti endpoint che possono mostrare quali sono le richieste e le risposte che hanno un impatto maggiore sulle prestazioni del sito.

Ne analizzeremo altri in dettaglio più avanti. Tuttavia, è importante capire che l’API di Kinsta copre solo la maggior parte delle basi della scalabilità delle risorse e del rilevamento delle anomalie:

  • È necessario prevedere eventuali problemi futuri. L’API di Kinsta può solo inviare i dati; tocca a voi interpretarli.
  • Per estensione, qualsiasi scaling da implementare è responsabilità dell’utente. L’API di Kinsta non può farlo al posto vostro, e questo è comprensibile.
  • Sebbene l’API di Kinsta fornisca molti modi per monitorare il sito, potreste non avere a disposizione tutti gli endpoint necessari per soddisfare i vostri obiettivi (anche se ci stiamo lavorando!).

In ogni caso, l’API ha molto da offrire e la sua natura programmatica permette di collegarla ad altri sistemi, di implementare le proprie funzioni e classi e di fare quasi tutto ciò che si desidera.

Rilevare le anomalie con l’API di Kinsta

Non utilizzerete lo scaling tutti i giorni e potreste decidere di farlo solo poche volte all’anno. Per questo motivo, esaminiamo qualcosa che farete molto più regolarmente: rilevare eventuali incongruenze nelle metriche del vostro server.

Impostazione del monitoraggio e degli avvisi

Il vostro sistema di monitoraggio sarà la spina dorsale della vostra proattività. Ci sono molte considerazioni da fare, ma il nostro consiglio è di mantenere le cose semplici all’inizio:

  • Decidere cosa monitorare. Potreste basarvi sui nostri report per indicare le metriche chiave o semplicemente basarvi sulla vostra dashboard MyKinsta per vedere cosa controlli di frequente.
  • Valutare come ricevere gli avvisi. Ad esempio, potreste ricevere notifiche su Slack o una semplice e-mail ogni volta che raggiungete una soglia.
  • Determinare una linea di base. Dovreste dedicare un po’ di tempo a capire il comportamento tipico del vostro server. In questo caso dovete esaminare i dati storici delle metriche e qualsiasi indicazione o tendenza futura.

Una volta acquisite queste conoscenze, potete iniziare a utilizzare l’API di Kinsta per impostare gli endpoint di cui avete bisogno.

Endpoint dell’API Kinsta per rilevare le anomalie

Ci sono alcuni endpoint che possono essere utili in questo caso. Ne abbiamo menzionati alcuni in precedenza nel post, ma per completezza, ecco un elenco che riteniamo adatto allo scopo:

  • Larghezza di banda. Ne abbiamo già parlato: è il modo in cui misurerete i dati totali che trasmettete.
  • Richieste HTTP al minuto. Questo è semplice: misura letteralmente il numero di richieste HTTP che il vostro sito riceve ogni minuto!

Ci sono un paio di endpoint che sono utili per l’analisi delle tendenze:

  • Utilizzo CPU. La nostra metrica mostra l’utilizzo medio totale della CPU per un periodo di tempo selezionato.
  • Utilizzo memoria. Allo stesso modo, questa è la media del consumo totale di memoria per un periodo di tempo selezionato.

Se avete bisogno di indicazioni sulle opportunità di scaling, ci sono alcuni endpoint che possono aiutarvi:

  • Tempo di build. Il monitoraggio di questo dato mostra il tempo necessario per costruire un’applicazione. Insieme alle metriche sull’utilizzo della CPU e della memoria (tra le altre cose), può aiutare a farsi un’opinione sulla necessità di scalare.
  • Tempo di esecuzione. Il tempo totale di esecuzione dell’applicazione può aiutare a decidere dove dare priorità all’utilizzo, a trovare i colli di bottiglia delle prestazioni e molto altro ancora.

Facciamo un esempio di utilizzo di un endpoint per il rilevamento delle anomalie. In questo caso, utilizziamo Node.js per verificare la larghezza di banda di un sito. È necessario implementare la convalida della chiave API – probabilmente utilizzando variabili d’ambiente – e un modo per monitorare costantemente la larghezza di banda.

import fetch from 'node-fetch';


const API_TOKEN = <YOUR-API-TOKEN>;
const APPLICATION_ID = <YOUR-COMPANY-ID>;

async function checkBandwidth(token, id, timeframeStart, timeframeEnd, intervalInSeconds) {
  const query = new URLSearchParams({
    interval_in_seconds: intervalInSeconds,
    timeframe_start: timeframeStart,
    timeframe_end: timeframeEnd,
  }).toString();

  const resp = await fetch(`https://api.kinsta.com/v2/applications/${id}/metrics/bandwidth?${query}`, {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR-API-KEY>',
    },

  });

  const data = await resp.json();

  if (!resp.ok) {
    console.error('Error checking bandwidth:', data);
    return;
  }

  console.log('Bandwidth data:', data);

}


async function run() {
  const timeframeStart = '2021-07-22T18:10:45.511Z';
  const timeframeEnd = '2021-07-22T18:10:45.511Z';
  const intervalInSeconds = '3600';

  await checkBandwidth(API_TOKEN, APPLICATION_ID, timeframeStart, timeframeEnd, intervalInSeconds);
}

run().catch(error => {
  console.error('An error occurred', error);
  process.exit(1);
});

Per quanto riguarda le notifiche, potreste creare un canale Slack per avviare una conversazione quando la larghezza di banda raggiunge un certo limite.

Per individuare eventuali anomalie, dovreste esaminare i dati raccolti per individuare eventuali valori anomali, anche se potreste creare un modo programmatico per cercare metriche anomale. Da lì potrete iniziare a formulare una risposta.

Rispondere alle anomalie

In poche parole, il vostro script rileverà un’anomalia, invierà un ping a Slack e voi potrete entrare in azione. Il modo in cui lo farete dipenderà dal vostro piano di risposta. Questo processo stabilirà come indagare, diagnosticare e risolvere la causa del problema.

Ad esempio, se si tratta di un sito di un cliente, potreste avere un accordo sul livello di servizio che richiede una risposta entro un determinato periodo di tempo. Per quanto riguarda il vostro sito, potreste semplicemente accedere alle vostre statistiche e controllare i log.

Una finestra di visualizzazione dei registri dalla dashboard di MyKinsta. Visualizza un elenco di voci di registro con data e ora nel formato
Una sezione di un file di log di Kinsta Nginx.

Le modalità di configurazione dipendono dalle dimensioni del vostro team, dai requisiti e dalle risorse. A prescindere da questo, il passo successivo sarà quello di implementare la vostra strategia di scaling delle risorse.

Implementare lo scaling predittivo delle risorse con l’API di Kinsta

Una volta conosciute le metriche di base, potete decidere se scalare o meno le risorse. Come abbiamo descritto in una sezione precedente, la previsione automatica è un’operazione da implementare. L’Hosting di Applicazioni di Kinsta offre questa possibilità per ogni piano. Trovate l’opzione all’interno della dashboard MyKinsta, nella scheda Applicazioni.

Tuttavia, l’API di Kinsta può fornirvi gli strumenti per effettuare le vostre previsioni con precisione e sicurezza.

Ci sono alcune strategie che si possono adottare:

  • Notare le opportunità per trarre vantaggio dallo scaling up.
  • Valutare il consumo di risorse complessivo e macro.
  • Cercare di individuare i colli di bottiglia come obiettivi per la scalabilità delle risorse.

Se osservate gli endpoint larghezza di banda, richieste HTTP al minuto e tempo medio di risposta, questi sono ottimi modi per individuare gli ambiti di scalabilità. Noterete che il controllo della larghezza di banda e delle richieste HTTP fa il “doppio lavoro” per lo scaling delle risorse e il rilevamento delle anomalie.

Gli stessi endpoint che utilizzate per analizzare le tendenze sono ottimi anche per prevedere il ridimensionamento delle risorse. Infatti, l’utilizzo della CPU e della memoria sono entrambi segnali rivelatori della necessità di aumentare la potenza del vostro server.

Infine, i colli di bottiglia nei processi di caricamento delle pagine possono divorare le vostre risorse ed essere un obiettivo ideale per il ridimensionamento. L’endpoint richieste più lente è da tenere sotto controllo. Segnala i peggiori problemi del vostro sito e la dashboard di MyKinsta fornisce un grafico:

Una tabella che mostra le transazioni più lente su un sito web durante un periodo selezionato. La tabella ha tre colonne: transazione, durata (%) e durata (ms). Sono elencate quattro transazioni: /wp-cron.php è la più lenta con il 35,99% e 440,48 millisecondi, seguita da /single con il 30,04% e 367,72 ms, /wp-login.php con il 15,42% e 188,75 ms e /search con il 9,61% e 117,6 ms. La didascalia della tabella spiega che queste transazioni richiedono probabilmente un'analisi per migliorare le prestazioni del sito web.
Un pannello che mostra le transazioni più lente su un sito web Kinsta.

Tuttavia, questo potrebbe essere un segnale di necessità di scalare il livello e potrebbe anche evidenziare un punto di ottimizzazione. Si tratta di “vittorie rapide” (in teoria) lungo il percorso, perché la risoluzione di questi problemi incapsulati dovrebbe ridurre la quantità di risorse allocate al sito e di conseguenza liberarle.

Suggerimenti e trucchi per integrare lo scaling predittivo e il rilevamento delle anomalie nel proprio flusso di lavoro

Prima di concludere, parliamo di alcune tattiche, pratiche tipiche e suggerimenti per integrare il predictive scaling e il rilevamento delle anomalie nel vostro flusso di lavoro. La proattività è un aspetto che abbiamo citato spesso in questo articolo e ci sono alcuni modi per essere un passo avanti in quest’area:

  • Trovare delle linee di base e delle soglie chiare per le prestazioni del vostro sito che aiutino a guidare le vostre strategie di scaling e di rilevamento.
  • Trovare il tempo di rivedere e aggiornare regolarmente i nostri modelli predittivi per verificarne l’accuratezza e la pertinenza.
  • Implementare il monitoraggio automatico dove possibile, utilizzando avvisi che tutto il team possa vedere. In sostanza, volete ridurre al minimo il numero di interventi manuali che devi effettuare.

Per quanto riguarda il bilanciamento tra interventi automatici e manuali, anche in questo caso ci sono alcuni consigli da trasmettere:

  • Deve esserci un equilibrio tra le azioni di scaling automatico e la supervisione manuale. Questo aspetto è più importante di quanto possiate immaginare per ottenere il giusto livello di controllo e responsabilità della vostra strategia.
  • Quando si implementa il ridimensionamento automatico, devono esserci linee guida e regole chiare su quando si deve attivare e quando invece è necessario l’intervento manuale.
  • Rivedere e mettere a punto regolarmente le regole di automazione. Questo aiuterà ad aumentare l’efficienza e a ridurre al minimo i falsi positivi nei nostri report.

Un ultimo consiglio riguarda l’analisi e il monitoraggio. Questa parte del processo prevede il controllo costante delle metriche e la reazione a qualsiasi cambiamento. Per questo motivo, ci sono alcuni modi in cui potete rendere più semplice questa operazione.

Il più importante, a nostro avviso, è quello di analizzare regolarmente i risultati delle decisioni prese. Questo può essere fondamentale per il ciclo successivo, perché una migliore comprensione del modo in cui prendete le decisioni renderà più efficaci quelle successive.

Riepilogo

Lo scaling predittivo delle risorse e il rilevamento delle anomalie sono due modi eccellenti per essere proattivi quando si tratta di gestire le prestazioni e la reattività del vostro sito WordPress. L’API di Kinsta può aiutarvi a implementare e sviluppare queste tecniche in modo programmatico.

Ad esempio, molti endpoint vi aiutano a monitorare le prestazioni del vostro sito. Con gli script giusti, potete impostare delle linee di riferimento e dei benchmark. Se abbinate tutto questo a una piattaforma come Slack, potrete avere avvisi automatici che vi aiuteranno a mettere in atto il vostro piano di risposta.

Avete bisogno di una strategia per il monitoraggio predittivo delle risorse e il rilevamento delle anomalie e, in caso affermativo, quali sono gli aspetti più importanti per voi? Fatecelo sapere nella sezione commenti qui sotto!

Jeremy Holcombe Kinsta

Content & Marketing Editor presso Kinsta, web developer di WordPress e content writer. Al di fuori di tutto ciò che riguarda WordPress, mi piacciono la spiaggia, il golf e il cinema. Ho anche i problemi di tutte le persone più alte della media ;).