Cos’è Google App Engine?

Google App Engine è il sistema più semplice per collaudare le potenzialità di un servizio PaaS. Difatti è un servizio che permette di ospitare la propria Web Application all’interno dell’infrastruttura cloud di Google.
E tutto sommato è anche una soluzione economica: difatti Google mette a disposizione gratuitamente uno storage di 500 MB e una potenza di calcolo sufficiente ad ospitare una applicazione con un numero di visite di circa 5 milioni al mese. Se questi valori dovessero andar stretti, è possibile utilizzare il servizio di billing per acquistare storage oppure potenza di calcolo.

E’ possibile accedere alla propria app sia tramite un sottodominio di “appspot.com”, sia attraverso un proprio dominio che però deve essere configurato con le Google Apps.

Google mette a disposizione due sandbox collaudate per sviluppare le proprie applicazioni: una in Java e l’altra in Python. Questo sembrerebbe precludere l’utilizzo di Google App Engine agli sviluppatori Ruby e PHP, anche se una possibile soluzione è quella di utilizzare Java per pubblicare un interprete PHP o Ruby e, quindi, riuscire ad utilizzare questi linguaggi.
In realtà questa non può essere la miglior soluzione in quanto è “un passaggio in più” che rende l’esecuzione della propria applicazione meno performante e perciò consiglio vivamente di utilizzare una sandbox supportata direttamente; in qualsiasi caso, se volete provare questa strada, date un’occhiata a Quercus per interpretare il PHP o jRuby per Ruby on Rails.

Nel caso in cui vogliate utilizzare direttamente uno dei due linguaggi, è possibile utilizzare il framework Django scegliendo la sandbox Python (in realtà serve una versione modificata chiamata Django norel per via del datastore non relazionale) oppure Lift scegliendo Java, anche se in questo caso è necessario passare per un interprete Java/Scala un po’ come per PHP o Ruby.

Come vedremo in un successivo articolo, Google mette a disposizione anche un suo framework in Java per creare applicazioni Web 2.0, Google Web Toolkit; questo per dire che per massimizzare l’investimento nello studio degli SDK di Google, forse la scelta di Java è la più indicata.

Esiste infine una terza Sandbox implementata in via sperimentale che consente di programmare in Go. Go è un linguaggio di programmazione semplice, nuovo, estremamente efficiente e nato proprio per lavorare su ambienti cluster e cloud. Anche se poco diffuso sembrerebbe un’ottima scelta per non dover lavorare su linguaggi potenti ma complessi come Java o Python.

Un discorso a parte merita il datastore: per memorizzare i dati da gestire con l’applicazione, Google mette a disposizione un suo sistema moltro simile all’SQL classico, ma con alcune limitazioni per renderlo efficiente su un sistema estremamente distribuito come è il suo cloud. GQL, ad esempio, permette di lavorare con una sola tabella alla volta e non permette in alcun modo le operazioni di join. In pratica tutte le funzionalità “relazionali” sono disabilitate, cosa che lo rende molto simile a NoSQL.