Ora che il nostro sistema è pronto non dobbiamo fare altro che forzare il sistema. Esistono molti tool per "caricare" un'infrastruttura, per i nostri scopi possiamo utilizzare "ab" tool di Apache2 che è fornito di default con il famoso server web. Non dobbiamo fare altro che chiamare in console il tool passando qualche parametro, come per esempio il numero di connessioni concorrenti ed il numero di richieste oltre l'endpoint da forzare. Per esempio:
ab -n 500000 -c 50 http://my-endpoint.tld/
In questo semplice caso stiamo effettuando 500000 richieste con concorrenza 50. Questi parametri dovrebbero essere sufficienti per generare un consumo di CPU così da permettere l'operazione di scalata fino a segnare il raggiungimento di stabilità del sistema. Quando il tool viene terminato il consumo si riduce al minimo così da provare anche la situazione di rilassamento, ovvero la riduzione del numero di istanze disponbili.
Qualche altro interessante plugin
Sebbene abbiamo ormai raggiunto la piena scalabilità del nostro WordPress, possiamo ancora sbizzarrirci con alcuni plugin e servizi molto utili.
Per prima cosa, possiamo delegare l'invio delle mail all'apposito prodotto di AWS: Simple Email Service. Questo servizio, molto economico ($0.10 ogni 1000 email) ci permette di non dover gestire un mail server nelle nostre istanze EC2, liberandoci così da un inutile fastidio.
Iniziare ad usare SES è davvero semplice, e in maniera simile a come abbiamo visto precedentemente con S3, dobbiamo creare un utente (o modificare quello precedente) al quale assegnare una policy che dia accesso a SES. Dobbiamo poi abilitare uno o più indirizzi email direttamente dalla console di Amazon.
Infine scarichiamo WP-SES, installiamolo e configuriamolo. Si tratta di un plugin per WordPress che delegherà a SES ogni email inviata dal nostro sito.
Un altro interessante servizio è CloudSearch. Come precedentemente spiegato, CloudSearch è sostanzialmente una istanza EC2 scalabile in pochi click che funge da motore di storage e ricerca di documenti.
A differenza di altri servizi non è così immediato nell'utilizzo e bisogna saper configurare le tabelle di memorizzazione dei dati sulle quali verranno poi eseguite le funzioni di ricerca. Tuttavia esso costituisce una fantastica ed evoluta alternativa al basilare motore di ricerca di WordPress, e tramite un apposito plugin può essere integrato facilmente.
Attenzione però ai costi: un' istanza di CloudSearch costa minimo 80$ al mese, ed è quindi consigliata a chi ha specifiche esigenze di storage e ricerca di contenuti.
Conclusioni
Abbiamo dimostrato come un applicativo apparentemente lontano dalla scalabilità possa invece abbracciare le potenzialità offerte dal cloud computing. La strada per l'alta disponibilità e la scalabilità richiede sicuramente precisione e lavoro, oltre che un discreto costo di startup (specie quando si devono mettere in gioco diverse istanze virtuali per gestire web, database, caching...).
Il risultato finale è un applicativo elastico e snello, in grado di supportare attivamente grande traffico e garantire una risposta sempre pronta alla crescita di risorse richieste. La nostra architettura si è evoluta nel corso della guida. Abbiamo abbandonato il classico server fisico o virtuale dove convivono tutti i servizi, approdando ad una soluzione che, in pieno stile cloud, separa ogni componente gestendone scalabilità e disponibilità.