SlideShare a Scribd company logo
1 of 19
Download to read offline
Google App Engine
Alice Valentini
12 Gennaio 2017
12 Gennaio 2017 1 / 19
Cloud Computing
Esistono tre modelli di servizio nel Cloud Computing:
12 Gennaio 2017 2 / 19
Google App Engine
Google App Engine `e una piattaforma cloud di tipo PaaS nata nel 2008.
Fa parte della suite di servizi di CC chiamata Google Cloud Platform.
L’utilizzo `e indicato per chi volesse sviluppare e implementare applicazioni
senza mettere mano all’infrastruttura sottostante.
12 Gennaio 2017 3 / 19
Google App Engine
Google App Engine `e progettato per applicazioni scalabili. Vengono
utilizzate (e pagate) solo le risorse richieste.
I linguaggi supportati sono Python, Java, PHP, Go e Ruby mentre i
framework principali Django e Flask.
12 Gennaio 2017 4 / 19
Propriet`a rilevanti
Le applicazioni sono eseguite all’interno di una sandbox.
Ci`o comporta delle limitazioni:
L’applicazione non pu`o scrivere nel filesystem
Limite di 60 secondi per rispondere alla richiesta di un client
Le applicazioni sono ospitate su 4 datacenter regionali dislocati in
America, Europa e Asia.
La copertura del servizio, la percentuale di tempo downtime e uptime e la
frequenza di errori sono tutte specificate nel Service Level Agreement.
12 Gennaio 2017 5 / 19
Componenti
12 Gennaio 2017 6 / 19
Datastore
Database NoSQL schemaless e non relazionale. Non richiede uno schema
fisso e non sono permessi join.
Indicato per informazioni che devono essere restituite in tempo rapido.
L’utente non deve preoccuparsi della replicazione in quanto vengono creati
dei mirror in automatico da Google.
Oltre alla quantit`a di dati memorizzata, all’utente vengono fatturate anche
le operazioni read, write, delete e le query.
12 Gennaio 2017 7 / 19
Cloud SQL e Cloud Storage
Cloud SQL `e un database SQL compatibile con MySQL. Backup, repliche
e aggiornamenti sono automatici.
Cloud Storage `e uno spazio di archiviazione non strutturato di tipo BLOB
(Binary Large OBject). Pu`o archiviare qualsiasi tipo di dati di testo o
binari.
Il suo utilizzo `e consigliato per i contenuti di streaming multimediali.
12 Gennaio 2017 8 / 19
Memcache e Task Queues
La Memcache `e una memoria cache distribuita e condivisa tra tutte le
istanze attive dell’applicazione. Permette il recupero dei dati a prestazioni
molto pi`u elevate rispetto al datastore.
Pu`o essere di tipo shared o dedicated.
La memorizzazione di dati nella memcache non `e persistente, i valori
contenuti possono scadere da un momento all’altro.
Le Task Queue permettono alle applicazioni di eseguire task
asincronicamente senza bisogno di ricevere richieste esterne.
12 Gennaio 2017 9 / 19
Servizi, versioni e istanze
Un’applicazione di AppEngine `e composta da uno o pi`u service che
condividono i servizi di Google App Engine.
Ogni service consiste in codice sorgente e il proprio file di configurazione.
Questi file rappresentano la versione del servizio.
Una versione pu`o a sua volta avere una o pi`u istanze le quali sono
automaticamente scalate in base al carico di lavoro.
Ogni servizio, versione e istanza ha un proprio URI identificativo.
12 Gennaio 2017 10 / 19
Servizi, versioni e istanze
12 Gennaio 2017 11 / 19
Servizi, versioni e istanze
Ogni istanza ha la propria coda di richieste in arrivo che viene sempre
monitorata. Se App Engine individua una coda troppo lunga crea
automaticamente una nuova istanza per gestire il carico di lavoro in
eccesso.
Viene fatturato il totale di tempo (in ore) utilizzato giornalmente dalle
istanze.
`E previsto un limite gratuito giornaliero per ogni tipo di scaling.
12 Gennaio 2017 12 / 19
Architettura Multi-tier
L’architettura pu`o essere vista come di tipo multi-tier.
12 Gennaio 2017 13 / 19
Aspetti analitici
Un sistema estremamente scalabile e condiviso con altri utenti porta
inevitabilmente ad alcuni svantaggi:
Limitazioni (sandbox)
Privacy
12 Gennaio 2017 14 / 19
Architetture simili
Windows Azure `e la raccolta di servizi cloud IaaS e PaaS offerti da
Microsoft.
I servizi PaaS sono rappresentati da App Service e Service Fabric.
L’architettura e le funzionalit`a sono del tutto analoghe a quella di GAE.
Le applicazioni non sono eseguite in sandbox ma in VM con Windows o
Linux.
12 Gennaio 2017 15 / 19
Bibliografia I
[1] Orna Agmon Ben-Yehuda, Muli Ben-Yehuda, Assaf Schuster, and
Dan Tsafrir.
The rise of raas: the resource-as-a-service cloud.
Communications of the ACM, 57(7):76–84, 2014.
[2] Arreytambe Tabot and Mohamed Hamada.
Mobile learning with google app engine.
In Embedded Multicore/Manycore SoCs (MCSoc), 2014 IEEE 8th
International Symposium on, pages 63–67. IEEE, 2014.
[3] Matthew NO Sadiku, Sarhan M Musa, and Omonowo D Momoh.
Cloud computing: opportunities and challenges.
IEEE potentials, 33(1):34–36, 2014.
12 Gennaio 2017 16 / 19
Bibliografia II
[4] M Reza Rahimi, Jian Ren, Chi Harold Liu, Athanasios V Vasilakos,
and Nalini Venkatasubramanian.
Mobile cloud computing: A survey, state of art and future directions.
Mobile Networks and Applications, 19(2):133–143, 2014.
[5] Dirk Beyer, Georg Dresler, and Philipp Wendler.
Software verification in the google app-engine cloud.
In International Conference on Computer Aided Verification, pages
327–333. Springer, 2014.
[6] Rolf Harms and Michael Yamartino.
The economics of the cloud.
Microsoft whitepaper, Microsoft Corporation, 2010.
[7] Alexander Zahariev.
Google app engine.
Helsinki University of Technology, pages 1–5, 2009.
12 Gennaio 2017 17 / 19
Bibliografia III
[8] Radu Prodan, Michael Sperk, and Simon Ostermann.
Evaluating high-performance computing on google app engine.
IEEE software, 29(2):52–58, 2012.
[9] Donald Kossmann, Tim Kraska, and Simon Loesing.
An evaluation of alternative architectures for transaction processing in
the cloud.
In Proceedings of the 2010 ACM SIGMOD International Conference
on Management of data, pages 579–590. ACM, 2010.
[10] Google app engine documentation.
https://cloud.google.com/appengine/docs, 2016.
[11] Architecture: Web application on google app engine.
https://cloud.google.com/solutions/architecture/webapp,
2016.
12 Gennaio 2017 18 / 19
Bibliografia IV
[12] Microservices architecture on google app engine.
https://cloud.google.com/appengine/docs/python/
microservices-on-app-engine, 2016.
[13] An overview of app engine.
https://cloud.google.com/appengine/docs/python/
an-overview-of-app-engine, 2016.
[14] Chakkrit Tantithamthavorn.
Introduction to google app engine.
http://www.slideshare.net/klainfo/
introduction-to-google-app-engine-13223789.
[15] Gustavo Ambrozio.
Scaling mobile games to a global audience using app engine and
cloud datastore.
https://www.youtube.com/watch?v=9nWyWwY2Onc.
12 Gennaio 2017 19 / 19

More Related Content

Similar to Google App Engine

1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...Jürgen Ambrosi
 
Cloud storage e cloud computing
Cloud storage e cloud computingCloud storage e cloud computing
Cloud storage e cloud computingAndrea Zara
 
Cloud Computing and Virtualization, what you should know about that.
Cloud Computing and Virtualization, what you should know about that. Cloud Computing and Virtualization, what you should know about that.
Cloud Computing and Virtualization, what you should know about that. Paolo Nesi
 
Fondamenti di cloud computing
Fondamenti di cloud computingFondamenti di cloud computing
Fondamenti di cloud computingGianluigi Cogo
 
Cloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoCloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoVMEngine
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webEugenio Minardi
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideDavide Trevisan
 
Collaborative Editing
Collaborative EditingCollaborative Editing
Collaborative EditingLorenzo Spini
 
Db2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMDb2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMJürgen Ambrosi
 
La Trasformazione Digitale con MongoDB
La Trasformazione Digitale con MongoDB La Trasformazione Digitale con MongoDB
La Trasformazione Digitale con MongoDB MongoDB
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLPar-Tec S.p.A.
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...Marco Parenzan
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazioneXPeppers
 

Similar to Google App Engine (20)

1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
1° Seminario CRUI - GARR: Una Cloud federata per università e ricerca, come u...
 
Cloud storage e cloud computing
Cloud storage e cloud computingCloud storage e cloud computing
Cloud storage e cloud computing
 
Geomaster 2.0
Geomaster 2.0Geomaster 2.0
Geomaster 2.0
 
Cloud Computing and Virtualization, what you should know about that.
Cloud Computing and Virtualization, what you should know about that. Cloud Computing and Virtualization, what you should know about that.
Cloud Computing and Virtualization, what you should know about that.
 
Data Lake
Data LakeData Lake
Data Lake
 
Fondamenti di cloud computing
Fondamenti di cloud computingFondamenti di cloud computing
Fondamenti di cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri MercatoCloud Computing Economia Numeri Mercato
Cloud Computing Economia Numeri Mercato
 
MEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del webMEAN: il nuovo stack di sviluppo per il futuro del web
MEAN: il nuovo stack di sviluppo per il futuro del web
 
What is cloud - presentazione open day 13 set 2014 | autore Prof. Lorenzo Zimolo
What is cloud - presentazione open day 13 set 2014 | autore Prof. Lorenzo ZimoloWhat is cloud - presentazione open day 13 set 2014 | autore Prof. Lorenzo Zimolo
What is cloud - presentazione open day 13 set 2014 | autore Prof. Lorenzo Zimolo
 
AWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan DavideAWS (Amazon Web Services) - Trevisan Davide
AWS (Amazon Web Services) - Trevisan Davide
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
Collaborative Editing
Collaborative EditingCollaborative Editing
Collaborative Editing
 
Collaborative Editing
Collaborative EditingCollaborative Editing
Collaborative Editing
 
Db2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBMDb2 11.1: l'evoluzione del Database secondo IBM
Db2 11.1: l'evoluzione del Database secondo IBM
 
La Trasformazione Digitale con MongoDB
La Trasformazione Digitale con MongoDB La Trasformazione Digitale con MongoDB
La Trasformazione Digitale con MongoDB
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
 
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
2015.01.09 - Principi del Cloud Computing e migrazione delle applicazioni mod...
 
Linuxday2007
Linuxday2007Linuxday2007
Linuxday2007
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
 

Google App Engine

  • 1. Google App Engine Alice Valentini 12 Gennaio 2017 12 Gennaio 2017 1 / 19
  • 2. Cloud Computing Esistono tre modelli di servizio nel Cloud Computing: 12 Gennaio 2017 2 / 19
  • 3. Google App Engine Google App Engine `e una piattaforma cloud di tipo PaaS nata nel 2008. Fa parte della suite di servizi di CC chiamata Google Cloud Platform. L’utilizzo `e indicato per chi volesse sviluppare e implementare applicazioni senza mettere mano all’infrastruttura sottostante. 12 Gennaio 2017 3 / 19
  • 4. Google App Engine Google App Engine `e progettato per applicazioni scalabili. Vengono utilizzate (e pagate) solo le risorse richieste. I linguaggi supportati sono Python, Java, PHP, Go e Ruby mentre i framework principali Django e Flask. 12 Gennaio 2017 4 / 19
  • 5. Propriet`a rilevanti Le applicazioni sono eseguite all’interno di una sandbox. Ci`o comporta delle limitazioni: L’applicazione non pu`o scrivere nel filesystem Limite di 60 secondi per rispondere alla richiesta di un client Le applicazioni sono ospitate su 4 datacenter regionali dislocati in America, Europa e Asia. La copertura del servizio, la percentuale di tempo downtime e uptime e la frequenza di errori sono tutte specificate nel Service Level Agreement. 12 Gennaio 2017 5 / 19
  • 7. Datastore Database NoSQL schemaless e non relazionale. Non richiede uno schema fisso e non sono permessi join. Indicato per informazioni che devono essere restituite in tempo rapido. L’utente non deve preoccuparsi della replicazione in quanto vengono creati dei mirror in automatico da Google. Oltre alla quantit`a di dati memorizzata, all’utente vengono fatturate anche le operazioni read, write, delete e le query. 12 Gennaio 2017 7 / 19
  • 8. Cloud SQL e Cloud Storage Cloud SQL `e un database SQL compatibile con MySQL. Backup, repliche e aggiornamenti sono automatici. Cloud Storage `e uno spazio di archiviazione non strutturato di tipo BLOB (Binary Large OBject). Pu`o archiviare qualsiasi tipo di dati di testo o binari. Il suo utilizzo `e consigliato per i contenuti di streaming multimediali. 12 Gennaio 2017 8 / 19
  • 9. Memcache e Task Queues La Memcache `e una memoria cache distribuita e condivisa tra tutte le istanze attive dell’applicazione. Permette il recupero dei dati a prestazioni molto pi`u elevate rispetto al datastore. Pu`o essere di tipo shared o dedicated. La memorizzazione di dati nella memcache non `e persistente, i valori contenuti possono scadere da un momento all’altro. Le Task Queue permettono alle applicazioni di eseguire task asincronicamente senza bisogno di ricevere richieste esterne. 12 Gennaio 2017 9 / 19
  • 10. Servizi, versioni e istanze Un’applicazione di AppEngine `e composta da uno o pi`u service che condividono i servizi di Google App Engine. Ogni service consiste in codice sorgente e il proprio file di configurazione. Questi file rappresentano la versione del servizio. Una versione pu`o a sua volta avere una o pi`u istanze le quali sono automaticamente scalate in base al carico di lavoro. Ogni servizio, versione e istanza ha un proprio URI identificativo. 12 Gennaio 2017 10 / 19
  • 11. Servizi, versioni e istanze 12 Gennaio 2017 11 / 19
  • 12. Servizi, versioni e istanze Ogni istanza ha la propria coda di richieste in arrivo che viene sempre monitorata. Se App Engine individua una coda troppo lunga crea automaticamente una nuova istanza per gestire il carico di lavoro in eccesso. Viene fatturato il totale di tempo (in ore) utilizzato giornalmente dalle istanze. `E previsto un limite gratuito giornaliero per ogni tipo di scaling. 12 Gennaio 2017 12 / 19
  • 13. Architettura Multi-tier L’architettura pu`o essere vista come di tipo multi-tier. 12 Gennaio 2017 13 / 19
  • 14. Aspetti analitici Un sistema estremamente scalabile e condiviso con altri utenti porta inevitabilmente ad alcuni svantaggi: Limitazioni (sandbox) Privacy 12 Gennaio 2017 14 / 19
  • 15. Architetture simili Windows Azure `e la raccolta di servizi cloud IaaS e PaaS offerti da Microsoft. I servizi PaaS sono rappresentati da App Service e Service Fabric. L’architettura e le funzionalit`a sono del tutto analoghe a quella di GAE. Le applicazioni non sono eseguite in sandbox ma in VM con Windows o Linux. 12 Gennaio 2017 15 / 19
  • 16. Bibliografia I [1] Orna Agmon Ben-Yehuda, Muli Ben-Yehuda, Assaf Schuster, and Dan Tsafrir. The rise of raas: the resource-as-a-service cloud. Communications of the ACM, 57(7):76–84, 2014. [2] Arreytambe Tabot and Mohamed Hamada. Mobile learning with google app engine. In Embedded Multicore/Manycore SoCs (MCSoc), 2014 IEEE 8th International Symposium on, pages 63–67. IEEE, 2014. [3] Matthew NO Sadiku, Sarhan M Musa, and Omonowo D Momoh. Cloud computing: opportunities and challenges. IEEE potentials, 33(1):34–36, 2014. 12 Gennaio 2017 16 / 19
  • 17. Bibliografia II [4] M Reza Rahimi, Jian Ren, Chi Harold Liu, Athanasios V Vasilakos, and Nalini Venkatasubramanian. Mobile cloud computing: A survey, state of art and future directions. Mobile Networks and Applications, 19(2):133–143, 2014. [5] Dirk Beyer, Georg Dresler, and Philipp Wendler. Software verification in the google app-engine cloud. In International Conference on Computer Aided Verification, pages 327–333. Springer, 2014. [6] Rolf Harms and Michael Yamartino. The economics of the cloud. Microsoft whitepaper, Microsoft Corporation, 2010. [7] Alexander Zahariev. Google app engine. Helsinki University of Technology, pages 1–5, 2009. 12 Gennaio 2017 17 / 19
  • 18. Bibliografia III [8] Radu Prodan, Michael Sperk, and Simon Ostermann. Evaluating high-performance computing on google app engine. IEEE software, 29(2):52–58, 2012. [9] Donald Kossmann, Tim Kraska, and Simon Loesing. An evaluation of alternative architectures for transaction processing in the cloud. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of data, pages 579–590. ACM, 2010. [10] Google app engine documentation. https://cloud.google.com/appengine/docs, 2016. [11] Architecture: Web application on google app engine. https://cloud.google.com/solutions/architecture/webapp, 2016. 12 Gennaio 2017 18 / 19
  • 19. Bibliografia IV [12] Microservices architecture on google app engine. https://cloud.google.com/appengine/docs/python/ microservices-on-app-engine, 2016. [13] An overview of app engine. https://cloud.google.com/appengine/docs/python/ an-overview-of-app-engine, 2016. [14] Chakkrit Tantithamthavorn. Introduction to google app engine. http://www.slideshare.net/klainfo/ introduction-to-google-app-engine-13223789. [15] Gustavo Ambrozio. Scaling mobile games to a global audience using app engine and cloud datastore. https://www.youtube.com/watch?v=9nWyWwY2Onc. 12 Gennaio 2017 19 / 19