Affidabilità e scalabilità per tutti

L’affidabilità di un servizio web

Seguo il programma Melaverde (https://it.wikipedia.org/wiki/Melaverde) da parecchi anni. E’ un programma che mi piace molto e devo dire che, vuoi perchè è trasmesso di domenica, vuoi per le puntate ambientate in verdi pascoli o in intriganti montagne impreziosite dai colori delle stagioni, ha un effetto rassicurante e rilassante per il mio benessere psicofisico 🙂
Il programma documenta il lavoro sia di grandi realtà aziendali sia di piccole realtà locali, addirittura piccolissime: il maso dell’Alto Adige, il rifugio dell’alta Val Seriana, l’allevatore Ittico della Valle del Chiese o l’agricoltore della Costiera Amalfitana.
Qualche settimana fa il servizio riguardava il ristorante gourmet del castello di Pergine in Valsugana; il servizio piacevolmente descritto, l’argomento (il cibo, la ristorazione, il territorio) ed il contesto (il castello) hanno catturato la mia attenzione e, di conseguenza, sono andato alla ricerca di ulteriori informazioni “in giro per il www”. Trovato il sito internet ufficiale del castello, ho constatato che il sevizio non era raggiungibile; probabilmente non ero stato l’unico ad aver avuto quest’idea ( Melaverde è trasmesso da un network nazionale), risultato: il sito web, in quel determinato momento, non è riuscito a svolgere la sua funzione, quella cioè di informare i visitatori riguardo ai servizi svolti dal castello.
Naturalmente non è stato un grosso problema, ho riprovato la sera, e ho potuto approfondire la conoscenza del ristorante, ma quanti hanno fatto come me? Quanti invece si sono dimenticati ed hanno lasciato perdere? Quante opportunità di nuovi visitatori sono state perse, vanificando di conseguenza il buon lavoro di comunicazione che è stato fatto dalla trasmissione televisiva? Questo non potremo mai saperlo, tuttavia, si può fare in modo che questo non avvenga.

Scalabilità dei servizi web

Come dicevo, la sera stessa, ho potuto navigare il sito web del castello, l’ho guardato anche dal punto di vista tecnico; non è un sito particolarmente complicato ne dal punto di vista tecnico ne dal punto di vista della user interface, utilizza un template grafico standard, non ci sono particolari servizi interattivi, insomma, un sito semplice che fa il suo dovere.
Fa il suo dovere finché i visitatori simultanei non raggiungono un certo numero; quando i visitatori raggiungono e superano tale numero, a quel punto, il sito rallenta fino a diventare, nelle peggiori delle situazioni, addirittura irraggiungibile.
Come fare per evitare che ciò avvenga? Come fare per rispondere ai picchi di richieste al sito da parte dei visitatori? Come fare per evitare che il servizio non sia raggiungibile?
Tutto questo si può risolvere o quantomeno limitare, strutturando il servizio in modo che le risorse richieste dal servizio, si possano adattare alla quantità di richieste; in pratica, il servizio deve poter “scalare” (https://it.wikipedia.org/wiki/Scalabilità)

Container ed orchestratore

In Archimedia, non passa giorno che ci facciamo delle domande su come migliorare la qualità dei servizi che offriamo, e tra le varie domande alle quali abbiamo dato una risposta, c’è proprio il miglioramento dell’affidabilità dei servizi web che sviluppiamo, attraverso la scalabilità.
Da oltre un anno infatti abbiamo deciso di adottare il sistema dei container per la pubblicazione dei progetti che sviluppiamo: qualsiasi servizio (applicazione web, sito web, e-commerce) viene “containerizzato” e pubblicato nell’orchestratore (Docker Swarm) di container ospitato presso la nostra struttura, sia per servizi che richiedono prestazioni costantemente importanti (per esempio un e-commerce), sia per “semplici” siti web con il solo scopo di fornire informazioni al visitatore.
L’utilizzo dei container per il deploy dei servizi sviluppati all’interno di un orchestratore, permette la configurazione di funzionalità importanti per la qualità del servizio offerto, quali appunto la scalabilità automatica dei servizi in funzione della richiesta oltre che la portabilità attraverso i servizi cloud.

Conclusione

Ormai il web offre servizi importanti e in alcuni casi insostituibili per i quali la progettazione dell’affidabilità e della scalabilità vengono prima di qualunque altro aspetto (pensate solo se un e-commerce come Zalando non fosse scalabile e non fosse raggiungibile a fronte di una campagna pubblicitaria sulle reti nazionali, quale danno economico dovrebbe sostenere!), tuttavia quest’aspetto passa forse in secondo piano o addirittura completamente ignorato, nel caso di aziende non dello stesso calibro di Zalando, dando per scontato che il sito sviluppato da chiunque e pubblicato su qualunque tipologia di hosting, sia in qualche modo, “per sua natura”, sempre e in qualsiasi condizione, disponibile.
E’ importante quindi che, anche per un sito relativamente semplice, puramente informativo come può essere quello di un ristorante, si debba considerare questo aspetto, per non porsi domande quali quante opportunità si siano perse nel caso in cui il servizio, per un certo periodo di tempo, in una certa condizione, non abbia potuto svolgere il proprio lavoro.