Richiedi Informazioni

Server dedicato high availability con emergency mode

Quando si parla di server cloud, uno dei miti tanto sbandierati riguarda l’inaffondabilità delle soluzioni cloud rispetto a quelle su server dedicato.

Intendiamoci, c’è del vero, ma un server dedicato high availability è tanto inaffondabile quanto maggiore è l’accortezza con il quale lo si costruisce e, in particolare, bisogna prendere delle precauzioni lato sistemi nel caso si verifichi un picco improvviso ed imprevedibile nel traffico in ingresso.

Siccome è esattamente in questo tipo di situazioni che puoi realizzare un picco di vendite, ti suggerirò una strategia interessante per rendere quasi inaffondabili i tuoi portali web quando arrivano molti più visitatori di quanti ne avevi preventivato.

Parte prima: il load balancer
Fin qui sembra tutto facile, si mette un bilanciatore di carico davanti ai front-end dell’infrastruttura e, in caso di picco, si ripartisce il carico sui vari front-end che hai predisposto.

Tuttavia, oltre al bilanciamento di carico, il load balancer ti dovrebbe consentire di monitorare il tempo di risposta dei front-end e, in caso di problemi, fare fallback su di un pool di front-end alternativi.

E qui le cose si fanno interessanti.

Chi è abituato a pensare con la logica di Amazon AWS potrebbe essere tentato di automatizzare il processo di spin-on di nuove istanze front-end: all’aumentare del traffico il sistema un nuovo server dedicato high availability, lo predispone come front-end e lo aggiunge al pool di bilanciamento.

Questo è sicuramente fattibile ma ha due controindicazioni:

1) I costi diventano variabili e questo ne rende difficile la pianificazione: se fai un picco di traffico e ti arriva una fattura extra molto salata, come ti comporti? Come la prevedi? Come la paghi?

2) Se non sei ospitato su di un cloud pubblico, questa strategia diventa solo parzialmente attuabile: puoi fare spin-on di nuove istanze fintanto che hai spazio sulle tue macchine, poi vai a tappo.

Una strategia alternativa: sito statico in “emergency mode”
Prova ad immaginare, invece, di avere preparato uno script che genera un front-end statico, composto solo da html puro e da un po di javascript.

Ad esempio, pensa ad uno script che giri periodicamente staticizzando i contenuti principali del tuo sito e caricandoli su di una macchinetta nginx o addirittura su di una CDN.

Predisponi magari una serie di script JS che ti consentano di raccogliere comunque delle richieste di informazioni, di ricontatto, oppure degli ordini se il carrello è molto semplice e convogliarle verso le tue caselle di posta elettronica senza dover fare affidamento al back-end php/mysql.

In questa configurazione, il tuo sito può reggere ad una quantità **mostruosa** di traffico anche senza far ricorso allo spin-on automatico di decine di server front-end. Basta decidere prima oltre quale soglia di traffico il sistema entri in “emergency mode” e settare un alert.

Una soluzione pragmatica

Detta così sembra ti stia prendendo in giro, ma ti posso assicurare che si tratta di una soluzione più che legittima, affidabile e che ti consente di gestire il fault del sistema in modo intelligente e magari anche grazioso.

Una pagina statica non è certo quello che tutti si aspettano, ma certo ti consente di affrontare un picco di traffico senza affondare e di raccogliere i lead che ti permettono di mandare avanti il business, senza per forza dover affrontare variabilità nei costi, la configurazione dello spin-on di nuove istanze oppure trovarti legato da difficoltà nel capacity planning e provisioning di hardware.

E comunque meglio di un bell’errore Bad Gateway o Service Unavailable durante una campagna di successo!

Come può aiutarti Level iP?
Noi sappiamo effettuare una valutazione corretta delle capacità di carico dell’infrastruttura a fronte di una base codice e di un budget dato, e questo è già è importante.

Poi, prima di mettere in produzione un’infrastruttura, effettuiamo i test di carico assieme ai clienti e sappiamo anticipatamente come questa si comporta a fronte di una curva crescente di richieste. Il benchmark, infatti, è il primo passo verso un setup corretto che possa far fronte a (quasi) tutte le evenienze sia con il normale bilanciamento sia attraverso la predisposizione di eventuali fall-back.

Se possiedi un’infrastruttura web e cerchi una risposta concreta ai problemi di affidabilità presenti e futuri, prova a contattarci. Sapremo sorprenderti.