Cercando su Google Trends la parola Cloud Computing non possiamo che notare un aumento vertiginoso di ricerche, attività ed in generale grande movimento intorno a questo concetto, potremmo definirla quasi una moda.
Un altra parola sempre più usata nel settore tecnologico è “as a service”, ovvero un modo di distribuire il software, dove il nodo cruciale non è più il software stesso, ma la possibilità di utilizzarne liberamente dati e funzioni all’interno di contesti differenti, da qui la diffusione di sistemi di api, rest, restful, rpc e argomenti simili.
Un nuovo concetto di Hardware
L’impennata contemporanea di questi due concetti è dovuta al fatto che siano appunto, strettamente collegati, in modo molto grezzo il Cloud Computing è l’hardware as a service, se fino a qualche anno fa il valore aziendale veniva misurato anche dall’hardware fisico che possedeva, hard disks, rack, servers e router per indenderci adesso esiste una valida alternativa, che rimescola un po’ le carte, dando spazio a filosofie del tutto nuove.
Nel Cloud la macchina, esagerando, non ha alcun valore perchè la creazione di nuove infrastrutture è all’ordine del giorno, le macchine vengono distrutte e ricostruite, salvate e ripristinate in un secondo, addirittura il sistema di fatturazione è cambiato se prima un server lo si accudiva sperando non si rompesse mai, adesso le istanze si pagano a ore e pochi centesimi, costringendoti a studiare metodi per adattare il numero delle tue macchine al carico effettivamente richiesto.
Questo articolo non nasce con l’idea di difendere un approccio rispetto ad un altro, ma per conoscere a grandi linee un argomento in continua evoluzione ed avere delle basi per capire quando sia utile usare un approccio rispetto che un altro.
Nel Cloud le macchine sono virtualizzate e spesso con delle performance a livello di calcolo minori rispetto ad una macchina fisica, ma con il concetto di elasticità e di scalabilità adattare un infrastruttura ai cambiamenti di carico è all’evoluzione del software, in questione di pochi click ed in un mondo dove l’utilizzo del web è in continua crescita e spesso è difficile comprendere subito quale sarà il reale utilizzo del proprio software potersi adattare velocemente al cambiamento è una feature da non sottovalure.
Non conoscendo il taglio dei lettori, ho deciso di iniziare con un articolo non eccessivamente tecnico, quasi filosifico, per stuzzicare un po’ la curiosità di chi continua a sentir parlare di Cloud e se ne chiede il perchè, chiudo con una digressione sui provider più famosi, per poter fare alcune prove pratiche.
Servizi di Cloud Computing
Sicuramente il principale è AWS, acronimo di Amazon Web Service, il servizio nato inizialmente per risolvere la crescita dello store più grande del mondo e poi rilasciato al mondo intero. Oltre le ormai famosissime istanze EC2 ha un ampia gamma di servizi che vanno dai sistemi di code a servizi di storage, CDN e molto altro.
DigitalOcean al contrario non ha un numero di servizi elavato, mette a disposizione vari tagli di macchine e un processo di creazione veramente intuitivo ed essendosi radicato molto nel ramo degli sviluppatori ha anche un costo molto basso, argomento da non sottovalutare :).
Ma oltre questi anche molti altri, Google Cloud, Enter the Cloud, Libero Cloud e via dicendo.
Abbiamo sicuramente sentito parlare dal concetto di alta disponibilità, ovvero il disegno di un infrastruttura capace di resistere a “qualsiasi” down, rendendo insomma una scusa inutile la classica “il provider non funziona” oppure la meno classica ma comunque possibile “l’uragano mi ha portato via il server” grazie ai provider cloud più famosi e ad infrastrutture studiate per soddisfare questa richiesta possiamo con un prezzo molto basso rispetto ad un tempo disegnare un architettura dislocata in diversi stati del mondo o addirittura su diversi provider, in modo che in caso di disastro naturale o errore umano si possa facilmente rendere disponibile l’applicazione in un contesto completamente diverso, altri casi d’uso potete provarlo a questo link.