La versione open source di Google App Engine? …esiste!

Tornado Web Server

Come qualcuno di voi sa, la mia tesi di laurea riguardava lo studio di Google App Engine e più in generale del Cloud Computing, un argomento che mi ha molto affascinato, e che di questi tempi è sempre più di attualità. Alcuni giorni fa, ho notato tra i vari post sulla mia bacheca di facebook, quello proveniente dalla pagina facebook.com/engineering di cui sono fan (accanito). Questo articolo riguardava la decisione di facebook di rendere open source un progetto molto interessante: Tornado web server. Cos’è Torndado? Semplice! Un web server che supporta un elevato numero di connessioni simultanee, con integrato al suo interno, un web-framework python, del tutto simile a webapp (il web-framework fornito di default con Google App Engine, versione per python). Tornado è stato creato dai fondatori di Friend Feed, e quando facebok ha acquisito questa società, ha pensato bene di arrichire la lista dei suoi progetti rilasciati con licenza open source. Bene, proprio da questa lista, sono venuto a conoscenza di altri progetti molto interessanti, tra cui Hive e Cassandra, ma soprattutto Hadoop, un insieme di software (anch’essi, tutti open source, in cui è compreso anche Hive) che permettono di realizzare un’infrastruttura di server altamente scalabile e distribuita. Da notare inoltre che Cassandra è la versione open source di Big Table, il database ad oggetti utilizzato da google per quasi tutti i suoi progetti più importanti (tra cui la ricerca), nato dalle menti di alcuni ingegneri impiegati presso Big G, e al quale avevo dedicato un capitolo della mia tesi (che potete trovare su sellbook).

Ok e con ciò? Tutto questo era per dire che se vogliamo replicarci un sistema in stile App Engine, ma sui nostri server, è una cosa possibile. Allo stesso modo è possibile utilizzare solo alcuni di questi software, ad esempio Hadoop con mysql e php, oppure Tornado con mysql, ecc ecc…(lascio a voi tutte le altre combinazioni).

Ho riempito questo articolo di link, mi rendo conto che sono un po’ troppi, ma così potete documentarvi a sufficienza su tutti questi progetti, che personalmente mi hanno intrigato parecchio! ;-)

Buon divertimento!
[ad]

8 Risposte a “La versione open source di Google App Engine? …esiste!”

  1. bertnic ha detto:

    ahem, il problema sarebbe però quello non trascurabile di avere qualche centinaio di migliaia di server in giro per il mondo per fare in modo che le applicazioni scritte per questo ipotetico GAEOS abbiano senso. Forse è meglio laciar fare a Google…

  2. ferre ha detto:

    @bertnic
    Pienamente d’accordo, il post voleva solo portare a conoscenza di chi non le conoscesse ancora, queste tecnologie.
    C’è anche da dire però che per pura curiosità, se uno lo volesse provare, hadoop supporta anche un solo nodo (perde tutta la sua utilità, ma si può) e quindi si potrebbe installare tutta questa roba su un unico server.
    Oppure mettiamo il caso di un progetto che parte con ambizioni ristrette abbia poi successo… sarebbe già cloud-ready! :-D

  3. […] Tutto ciò è permesso da un’infrastruttura (i software utilizzati li ho già discussi in questo post) che conta circa 30000 servers….. eeeeeeeh?? Ebbene sì 30mila servers e qui sotto potete […]

  4. Janka ha detto:

    Vorrei provare in azienda un sistema cloud usando inizialmente Php, MySql per poi transitare pian piano su Java e magari un giorno anche HadoopDB.
    Questo per non perdere i tanti anni di sviluppo.

    Che sistema mi consiglieresti?
    Hai qualche pagina da segnalare dove siano presenti degli script da provare?

    Grazie Giancarlo

    • davide ha detto:

      Ciao, mi fa estremamente piacere vedere che ci sia ancora qualcuno che a distanza di tempo legge i miei articoli! ;-)
      In effetti questo argomento mi intriga molto, ma purtroppo non sono mai riuscito a fare i dovuti esperimenti, soprattutto per mancanza dell’hw adatto… Però mi ero ampliamente informato nel caso un domani dovessi riuscire a fare i dovuti test. Avevo trovato (tramite la pagina http://facebook.com/engineering) questo link http://www.cloudera.com/.
      Cloudera è una startup che ha ottenuto parecchi milioni di dollari di finanziamenti e che mette a disposizione dei software per facilitare l’installazione e la configurazione di Hadoop. In realtà Hadoop è un insieme di sw che permette di utilizzare un file system distribuito e un database distribuito. Consente insomma di creare un’architettura molto simile a quella di Google App Engine. Il tutto con il vantaggio di poter utilizzare mysql e php (se non ho capito male)… Quindi probabilmente non c’è neppure il caso di passare a Java per lo sviluppo web. So che Facebook usa Hadoop e contribuisce a mantenerlo e visto che facebook è scritto interamente in php, credo che l’interazione tra hadoop e php-mysql sia una cosa possibile (ma non so quanto difficile da realizzare).
      In ogni caso mi farebbe piacere rimanere aggiornato sulla tua vicenda. Fammi sapere come procede se ti va (anche tramite la mail che trovi nelle info di questo blog ;) ), grazie!

  5. Paolo ha detto:

    Vorrei costruire un sw che consente il tracciamento delle proprie e-mail inviate permettendo di conoscere in tempo reale lo stato di consegna per singolo destinatario, o l’esito del messaggio di consegna nel caso in cui la mail non risulta poi stata consegnata nella Mailbox dell’utente.
    L’applicazione dovrebbe comporsi di un parser dei log del server imap o pop3 , Il parser analizza i log “raw” di sistema ed inserisce in un database non relazionale per favorire la scalbilità sul modello cloud. Avevo pensato a tomcat con hadoop e java, ma preferirei lavorare in python. Cosa mi consigli? Tornado+Hadoop+Python?
    Ti chiedo un consiglio perche sono molto confuso a riguardo, e vorrei proprio evitare php. Non ho neanche ben chiaro cosa fa hadoop.
    Grazie per ogni aiuto possibile.

    • davide ha detto:

      Ciao, be’ dalla tua descrizione non credo che sia necessaria una struttura del genere. Perchè non provare MongoDB? Potrebbe essere una buona alternativa ed è sicuramente un ottimo db no-sql.

  6. Lorenzo ha detto:

    la versione Open di App Engine si chiama AppScale

Lascia un commento