Sviluppare per la cloud
Le tecnologie per il cloud computing si presentano secondo tre dimensioni diverse (IaaS, PaaS e SaaS), ciascuna delle quali indirizza problematiche proprie di interlocutori diversi:
- Infrastructure as a Service (IaaS) si rivolge prevalentemente a sistemisti e architetti di infrastruttura.
- Platform as a Service (PaaS) si rivolge prevalentemente a sviluppatori e architetti di soluzioni.
- Software as a Service (SaaS) si rivolge agli utenti finali.
In questa sezione, rivolta a chi si occupa di sviluppo applicativo, la dimensione di maggiore focalizzazione è relativa ai servizi cloud di tipo Platform as a Service. Questa nuova modalità di erogazione di servizi IT si rivela infatti ricca di opportunità per chi sviluppa applicazioni.
Come siamo, come eravamo
Se sviluppi applicazioni in un contesto tradizionale avrai familiarità con un paradigma secondo il quale l’applicazione che stai sviluppando si colloca necessariamente in un ambiente, prima di sviluppo, poi di test e infine di produzione. La costruzione di questo ambiente, più ci si avvicina alla fase di rilascio in produzione, richiede l’interazione con i professionisti IT che dovranno disegnare per la tua applicazione una piattaforma scalabile, ad alta ridondanza, mission critical, su misura delle esigenze dei futuri utenti.
Se stai pensando di realizzare un servizio che sia disponibile 24 ore al giorno tutti i giorni dovrai progettarlo secondo un’architettura scalabile, affidabile, ad alta disponibilità. Anche l’infrastruttura che dovrà erogare la tua applicazione dovrà essere all’altezza delle aspettative.
Sviluppare per la cloud: cosa cambia
Immagina di poter sviluppare in locale emulando la piattaforma di deployment che utilizzerai nella cloud. In questo modo trasformi il tuo PC in una server farm virtualizzata ed emulata. Questo vuol dire che puoi lavorare senza connessione, che puoi verificare sul tuo PC locale cosa succede se un nodo della tua infrastruttura di front end Web si ferma e capire se la tua architettura è stata correttamente progettata.
Se devi fare un test su macchine reali non devi far altro che aprire un account sulla tua Platform as a Service ed effettuare il deployment sull’infrastruttura remota, che è poi il tuo ambiente di deployment finale. Soltanto che ora funziona, è esposta ai potenziali utenti e puoi verificare se “regge”.
Dopo le fasi di testing e staging puoi effettuare il deployment della tua applicazione e renderla disponibile per i tuoi clienti, superando una serie di passaggi tecnici che ora avvengono nella cloud. Nessuno ha dovuto acquistare i server, nessuno li ha dovuti configurare per la tua architettura applicativa. La tua piattaforma è già pronta ed è scalabile all’infinito per sviluppare, testare e andare in produzione.
Questa elasticità si mantiene anche in produzione, perché in funzione del carico reale della tua applicazione, cioè delle richieste dei tuoi utenti reali, potrai aggiungere o togliere macchine virtuali secondo i ruoli che l’applicazione richiede. Hai accorciato il processo che porta al rilascio della tua applicazione, e hai una disponibilità pressoché infinita di risorse hardware a supporto.
*Esclusi i costi di connessione a Internet.
|