Google in questi ultimi mesi ci ha messo in testa moltissime novità ed anche alcuni concetti che molti ignoravano e con la storia della caffeina, del real time e della velocità dei siti a spinto un po’ tutti ad applicarsi e fare ricerca di soluzioni ottimali per le proprie esigenze. Una riflessione molto interessante di Giorgiotave su caffeine a cui vi invito a partecipare mette in luce alcuni di questi fattori che hanno fatto tanto parlare senza per ora aver lasciato molte tracce.
Dopo questa premessa voglio passare all’argomento di questo post cercando di mostrarvi in modo semplice come usare in modo gratuito le tanto chiacchierate CDN di questi ultimi periodi “post google spauracchio velocità”.
Una CDN (content delivery/distribution network) non è altro che un sistema di sistemi distribuiti sul globo che permettono di far fruire i file al richiedente dal sistema più vicino geograficamente. In questo modo se io richiedo un file da Bologna ad un sito che si trova in “Papuasia” a milioni di Km di distanza grazie alle CDN posso ottenerlo in modo più veloce da Milano, Parigi o Berlino. Le grandi aziende del web come Google, Yahoo, Amazon etc etc usano le CDN per i propri siti, ma per noi poveri mortali il costo di questo servizio lo rende inaccessibile…fino ad ora !
Esiste infatti un servizio lanciato da Google che permette di avere la propria CDN in modo facile e gratuito. Questo miracoloso servizio si chiama Google App Engine.
In questo breve articolo vi mostrerò come allestire la vostra CDN su Google App Engine. Vi spiegherò come testare la vostra applicazione in locale e poi inviare tutto a Google App Engine e utilizzare questi file per i vostri progetti.
Creare il vostro primo progetto con Google App Engine
Come prima cosa è necessario procurarsi tutto il software che potete trovare alla pagina di download del Google App Engine software development kit (SDK). Ci sono due possibilità di scelta che sono Python oppure Java. Se non avete nessuno dei due non preoccupatevi perché tutte le applicazione fornite nella pagina indicata includono praticamente quanto necessario per far girare i due linguaggi.
Una volta riusciti nell’impresa di far funzionare questo primo passo il resto sarà davvero una passeggiata.
Quello che dovete fare è scegliere un vostro id per l’applicazione (io in questo progetto utilizzerò ‘andreapernici’) come meglio credete.
Nel mio caso utilizzeremo Java con la versione Galileo di Eclipse e installeremo poi il plugin di google app tramite l’opzione di software update che offre Eclipse (vedi immagine).
Una volta fatto questo seguendo le istruzioni che trovate alla pagina di installazione del Plugin di Google per Eclipse in automatico avrete tutto il software e gli strumenti necessari per iniziare a divertirvi.
Finita l’installazione seguite semplicemente le istruzioni per creare un nuovo progetto e fatene il debug seguendo sempre le istruzioni per poi fare il vostro primo upload sempre senza muovervi da Eclipse.
Fatto questo andando alla pagina https://appengine.google.com/ troverete le vostre applicazioni e cliccandone una vi ritroverete nella pagina di deploy della vostra applicazione.
Se non avete avuto problemi ad arrivare fin qui allora il gioco è quasi fatto perché potrete anche testare il vostro progetto in locale prima di fare l’upload ‘debuggandolo’ come ‘web application’.
Fate ora qualche piccola modifica al vostro progetto come ad esempio aggiungere una immagine e un css.
Come vedete nell’immagine sopra aprite la cartella ‘war’ e create due cartelle ‘css’ e ‘img’ al suo interno.
Create un file CSS nella cartella css come ad esempio:
{code type=css}
body {
font-family: Verdana, Helvetica, sans-serif;
background-color: #FFFFCC;
}
{/code}
e aggiungete l’immagine che preferite nella cartella img.
Una volta fatto questo aprite il file index.html che trovate sempre sotto ‘war’ e modificatelo inserendo il css nell’head del documento e l’immagine dopo il titolo della pagina, debuggate ed andate a vedere cosa succede in locale…dovreste travere una cosa tipo questa http://andreapernici.appspot.com/.
Se tutto procede in modo corretto allora potete passare alla fase di deploy dell’applicazione modificata utilizzando il tasto apposito che trovate nella barra degli strumenti.
Inserite la vostra email e la vostra password sempre ricordandovi di specificare il vostro appid nel file appengine-web.xml e il gioco è fatto; potete vederne immediatamente i risultati online andando all’indirizzo della vostra applicazione.
I benefici dell’uso di Google App Engine
I benefici di usare Google App Engine come CDN sono evidenti e non mi dilungo oltre (credo che abbiate già capito) perché vi permetterano di servire alcune risorse evitando di succhiare banda al vostro sito e servire ai visitatori le pagine in modo più veloce.
Come appena accennato i benefici non sono solo relativi alla CDN, ma anche nel metodo utilizzato da App Engine per aggiornare il sito stesso con un efficentissimo ‘single step update’ che non è assolutamente trascurabile.
Altra cosa fantastica è la possibilità di lavorare alla stessa applicazione con un team semplicemente condividendo i permessi dell’applicazione con il vostro collaboratore/i. La cosa ancora più bella è che l’App Engine offre tutta una serie di log delle operazioni compiute che si presta molto bene allo sviluppo collaborativo perché c’è la possibilità di capire chi ha fatto le modifiche e quando.
Non finisce qui…potete anche fare versioning della vostra applicazione utilizzando il campo ‘version’ del vostro file appengine-web.xml.
Infatti modificando la versione App Engine manterrà una copia della versione precedente e se per caso qualcosa non dovesse andare nella nuova versione potete tornare velocemente alla precedente senza troppo problemi.
Last but not least…se non ti piace utilizzare il sottodominio con il nome della tua applicazione (app-id.appspot.com
) puoi utilizzare anche il tuo dominio.
I punti deboli di Google App Engine
Come tutte le cose belle…c’è sempre qualcosa che le rovina 🙂
In molte circostanze App Engine è davvero un toccasana, ma in molti casi ci sono alcuni svantaggi che sono ampiamente discussi in questo post di Aral Balkan ‘Why Google App Engine is broken and what Google must do to fix it.
Aral ha avuto infatti grossi problemi nell’uso di App Engine come piattaforma di sviluppo di applicazioni per il web e quindi il consiglio è quello di usarlo come CDN per file statici (almeno per ora). Questo perché App Engine ha due grosse limitazioni.
La prima è che non si possono hostare file più grandi di 1MB.
La seconda è il sistema di quote. Nella Documentazione di Google si legge che sono consentite 650,000 richieste al giorno e 20,000 mb di banda totale, che sono abbastanza per molti siti. Ci sono infatti alcuni casi dove i siti di chi utilizza App Engine sono stati improvvisamente chiusi in modo inspiegabile a causa di picchi nell’uso della CPU di Google e dunque bisogna valutare attentamente ogni caso per decidere di utilizzare App Engine come proprio sito.
Detto questo, per concludere, dico che per la maggior parte delle persone App Engine offre una risorsa fantastica…ossia una CDN gratuita.
ciao, l’ articolo è interessante, volevo sapere se è possibile utilizzare il tutto per i blog su piattaforma blogger/blogspot in quanto ho questo tipo di problema
grazie
Grazie Giuseppe.
Cosa intendi con è possibile utilizzare per blogger ?
bell’articolo Andrea, una cosa non ho capito… posso utilizzare Google App Engine per farmi un sito web avanzato, ad esempio, di e-commerce (carrello della spesa o chissà cos’altro ho in mente) dove vendo saponette? 🙂
Potenzialmente puoi farci quello che vuoi 😉
Content Delivery networks con Google: http://www.andreapernici.com/usare-google-app-engine-come-content-delivery-network/
Molto interessante , ma siamo sicuri che non si incorra in alcuna penalizzazione da parte di google per aver utilizzato il suo app engine in modo “inappropriato” o comunque non conforme agli intenti iniziali di Google?
Non credo che questo possa portare ad una penalizzazione.
Non esiste alcuna regola o linea guida che vieti questa cosa o che citi espressamente una cosa del genere quindi non c’è motivo di preoccuparsi.
Basta pensare che google offre già l’uso di librerie ajax sui suoi spazi e che comunque l’app è tua quindi non puoi vietare l’uso e stabilire chi la usa in un modo o in un altro.
Buongiorno…
stavo cercando di installare in qualche maniera app inventor su google app…e sono finito qui. Qualcuno sa dirmi se sono completamente fuori strada?
Scusate se sono un po’…inesperto!
Si credo che tu non sia nel posto giusto 🙂
Scusa ma in che senso ” i siti di chi utilizza App Engine sono stati improvvisamente chiusi in modo inspiegabile a causa di picchi nell’uso della CPU di Google”?
Intendi che è stata chiusa l’applicazione CDN creata su google dove risiedono le immagini statiche o che sono stati chiusi i siti a dominio (anche se in questo caso non vedo come)…
Complimenti comunque per la guida… non ne ho trovate di altrettanto valide…