Cloud computing, ci interessa davvero?
Non sono un venditore di servizi cloud e quindi non starò qui a fare uno spot su queste tecnologie. Il web è ricco di dissertazioni sul cloud, sono certo che vi sarete già fatti una idea sui pro e contro. Il punto è un altro. Come progettisti di applicazioni, dovremmo in qualche modo farci ispirare dal cloud nella realizzazione del nostro prossimo progetto?
Non mi riferisco tanto alle soluzioni di tipo “Infrastructure as a Service” (IAAS), incentrate sull’offerta di server virtuali, connettività di rete, server per lo storage e backup. Penso invece ai servizi di tipo “Platform as a Service”(PAAS) costituiti da un ecosistema di servizi dedicati alla realizzazione di applicazioni, tra cui:
- sistemi per l’esecuzione di applicazioni scritte in diversi linguaggi (Java, PHP, Python, linguaggi .NET, ecc.);
- database relazionali e document oriented;
- servizi di Identity e Access Management;
- repository Git e strumenti per la CI/CD;
- servizi di analisi dei dati;
- soluzioni per la scalabilità e l’alta affidabilità.
È sotto gli occhi di tutti che non c’è business che non si sia già trasformato in “as a service” o che non lo stia per fare. Banalizzando, potremmo dire che alle tradizionali vendite di beni, le imprese puntano adesso a far sottoscrivere piani “a consumo” per l’uso degli stessi, tarati sulle effettive necessità del cliente. Basti pensare, nel mondo del software, a quello che è successo all’Office 365 di Microsoft o al Photoshop CC di Adobe.
A mio avviso quindi faremmo bene a prendere subito in considerazione le soluzioni di cloud computing, ma non solo per i benefici tanto sbandierati, quanto per il fatto che in futuro il concetto stesso di server fisico su cui effettuare il deploy di una applicazione sarà solo un ricordo. Certo, ci saranno sempre delle situazioni che richiederanno l’allestimento di una infrastruttura ad-hoc, ma saranno sempre più relegate a contesti di nicchia nei quali, magari, verranno comunque adottate soluzioni di tipo private cloud (IAAS o PAAS).
Cosa accadrà quindi quando la nostra applicazione dovrà essere portata sul cloud? Funzionerà ancora? Sarà compatibile con quanto supportato dai servizi di Amazon AWS, Google Cloud o Microsoft Azure in termini di linguaggio di programmazione, database, storage, strategie per la scalabilità e l’alta affidabilità e, più in generale, di architettura adottata? Certo, potremmo pensare che l’applicazione che stiamo realizzando non avrà tutta questa longevità. Oppure che, nei contesti in cui operiamo, il cloud stenterà ad arrivare. In entrambi i casi stiamo solo ignorando un processo inevitabile, come l’inverno nella favola della cicala e della formica.
Morale della favola
Ci piaccia o no, i giganti del web stanno guidando una trasformazione verso il cloud computing, le cloud app e le architetture serverless che è destinato a diventare, di diritto, uno standard de facto, con buona pace di chi spera in una evoluzione dell’IT più democratica. Aziende come Google, Amazon e Microsoft hanno fatto enormi investimenti per realizzare le infrastrutture informatiche, su scala planetaria, a supporto dei propri servizi. E’ logico quindi aspettarsi che faranno di tutto per monetizzare tali investimenti, ad esempio rendendo economicamente sempre più vantaggioso l’utilizzo delle loro piattaforme rispetto all’adozione di soluzioni tradizionali.
Tocca quindi fare i conti con questa evoluzione ed individuare fin da subito un percorso per l’adeguamento delle nostre applicazioni al cloud. Dobbiamo identificare cosa, dei nostri sistemi software, non è immediatamente portabile sul cloud e come il cloud affronta quelle problematiche che abbiamo risolto sinora con soluzioni artigianali. Dobbiamo quindi individuare quali opportunità questa trasformazione offre al nostro business e definire una nostra strategia di adozione del cloud computing che ci porti gradualmente tra le nuvole.