Google App Engine, GWT ed integrazione con le Google Apps API

La Platform as a Service di Google
Vincenzo Gianferrari Pini <[email protected]>
7 giugno 2012
Agenda
● Architettura generale
● L'Infrastructure as a Service di Google
● Il Software as a Service di Google:
○ Servizi ed API
● La Platform as a Service di Google
○ Google App Engine
■ Scalabilità
■ Restrizioni
■ Servizi
■ Gli Application Environment supportati
■ Il Java Runtime Environment
■ Il supporto database
○ Google Web Toolkit
○ SDK, supporto IDE e deployment
○ Secure Data Connector
○ Pricing
○ Case Study
29/06/2010
2
Architettura
29/06/2010
2
L'Infrastructure as a Service (IaaS) di
Google
● L'infrastruttura di Google non è accessibile direttamente,
per cui non si può parlare di Infrastructure as a Service
● Infrastruttura "gigantesca", distribuita su diversi
datacenter in diversi paesi
○ basata sulla cooperazione di un numero molto grande
di server fisici, che non sfruttano tecniche di
virtualizzazione ma meccanismi proprietari
○ i dettagli tecnici sono riservati
● Consente grande scalabilità automatica, per mezzo di
parallelismo spinto, e grande ridondanza dei dati per la
sicurezza fisica
● Informazioni sulla sicurezza:
○ http://links.gocloud.it/wp-google-security
29/06/2010
2
Il Software as a Service (SaaS) di Google
● Google Apps
○ Ambiente di produttività individuale e collaboration
○ Email, Calendar, Drive, Sites, Video, ...
● Google Maps
● molti altri servizi ...
● Accesso funzionale ed amministrativo tramite
○ Web Interface
○ ricco set di API
■ basato su HTTP + REST
29/06/2010
2
La Platform as a Service (PaaS) di
Google
1. Google App Engine (GAE): ambiente runtime per
l'esecuzione
2. Google Web Toolkit: per lo sviluppo di componenti
client complesse basate su Javascript (opzionale)
3. Software Development Kit (SDK) e Google Plugin
for Eclipse: per lo sviluppo, test completo in locale e
deployment "automatico" delle applicazioni
29/06/2010
2
Google App Engine
● Ambiente runtime del PaaS per l'esecuzione sia delle
applicazioni SaaS di Google che di quelle custom
● Accesso Web tramite protocollo HTTP
● Gestisce automaticamente la scalabilità, attivando
(Java) virtual machines on-the-fly su un numero
elevatissimo di server fisici
○ Load Balancing
○ Può passare velocemente ed automaticamente da
poche decine a milioni di utenti
○ Opzioni di fine tuning
● Elevata ridondanza dei dati
○ non è quindi necessario fare backup dei dati (se non
per recovery logico)
● Administration Console dettagliata
29/06/2010
2
GAE Administration Console
29/06/2010
2
Google App Engine: il Sandbox
● Sandbox con alcune limitazioni per la sicurezza ed il
"buon comportamento" dell'applicazione:
○ No controllo thread
○ No write su file system
○ No apertura di socket
29/06/2010
2
Google App Engine: i servizi
● Single sign-on per l'autenticazione, integrato con tutti i
servizi offerti da Google
○ 2-step authentication disponibile
○ integrazione con sistemi aziendali di single sign-on
(SAML-based)
● Integrazione con sistemi di provisioning (LDAP), es. MS
Active Directory
● URL Fetch
● Mail
● Memcache
● Image Manipulation
● Scheduled Tasks e Task Queues
● Database/Datastore
● ...
29/06/2010
2
Google App Engine: supporto Database
e Datastore
● App Engine Datastore, un NoSQL schemaless
object datastore
○ Query engine, con interfaccia SQL
○ High Replication
○ Transazioni atomiche distribuite
○ Altissima scalabilità
● Google Cloud SQL, database relazionale basato su
MySQL RDBMS
○ Fully Managed
○ High Availability: replica automatica dei dati
"across multiple geographic regions"
● Google Cloud Storage, per oggetti e file molto
grandi, anche terabytes
29/06/2010
2
Google App Engine: Gli Application
Environment ● Python Runtime Environment
● "GO" Runtime Environment
● Java Runtime Environment
○ Java 6
○ compatibile con Java 5
○ Web Container (Servlet Container)
■ Java Servlet Standard (incluso JSP)
■ Si possono utilizzare normali strumenti di Java Web
Development ed API standard
○ Supporto per
■ Java Data Objects (JDO)
■ Java Persistence API (JPA)
■ JavaMail
■ java.net HTTP API
29/06/2010
2
Google Web Toolkit (GWT)
● Toolkit per sviluppare ed ottimizzare la componente
GUI di applicazioni AJAX browser-based complesse
● Si sviluppa in Java, e viene generato codice
Javascript
○ codice ottimizzato
○ gira automaticamente sui browser più diffusi,
come anche su mobile browsers per iPhone e
Android
● Molte semplificazioni per lo sviluppatore
● Widgets
● Debug interattivo direttamente in Java
● Può essere utilizzato anche per le GUI di applicazioni
Web non GAE
29/06/2010
2
SDK e IDE plugins
● SDK per compilare, fare debug e fare deployment di
applicazioni GAE e/o GWT
● Google Plugin for Eclipse
○ GAE e/o GWT
○ Debug interattivo
■ anche usando Database e/o Datastore
● Disponibile anche plugin per NetBeans
● "One Click" deploy
○ versioning
○ team development
29/06/2010
2
"One Click" deploy
29/06/2010
2
Secure Data Connector
● Per consentire l'accesso protetto e controllato ai
dati/applicazioni on premises da parte del SaaS di
Google e delle applicazioni GAE
● Crea una connessione cifrata
● Software open source per consentire controllo e
"customizzazione" da parte dell'Azienda
29/06/2010
2
Secure Data Connector
29/06/2010
2
Pricing
● Quotas:
○ safety e billable
○ per day e per minute
● Tipi di pricing:
○ Free Accounts
■ Entro le billable quotas
○ Paid Applications e Premier Accounts
■ 99,95% SLA
■ Fisso mensile (Paid $9 / app, Premier $500 /
account) + variabile
■ Billing settimanale per Paid, e mensile per Premier
● Varie voci considerate per il billing della parte variabile
quando si superano le billable quotas
○ maximum budget giornaliero settabile
29/06/2010
2
Pricing: voci variabili principali
● Istanze
○ dinamiche
■ classe 1 (128 MB, 600 MHz): $0,08 / h
■ classe 2 (256 MB, 1,2 GHz): $0,16 / h
■ classe 4, classe 8
○ residenti oltre alla prima: $0,05 / h
● Outgoing Bandwidth: $0,12 / GB
● Stored Data:
○ Blobstore: $0,13 / (GB x Mese)
○ Datastore: $0,24 / (GB x Mese)
● Low-level Datastore operations
○ Write: $0,10 / 100k_ops
○ Read: $0,07 / 100k_ops
○ Small: $0,01 / 100k_ops
● Channels: $0,00001 / channels_opened
● Recipients emailed: $0,0001 / email
29/06/2010
2
Pricing applicato a dei Case Study
● Vedi questo Spreadsheet
● Oppure questo HTML
● Oppure scarica questo PDF
● Il calcolo è approssimativo, dovendosi fare delle
ipotesi aggiuntive sui sei Case Study forniti come
benchmark
○ Dati di partenza riportati con sfondo verde
■ In corsivo alcune ipotesi sui picchi, che si
assumono siano su base oraria
■ Il "numero di pratiche giornaliere" si assumono
su 10 ore lavorative
○ Si assumono 20 giorni lavorativi al mese
● Gli importi calcolati sono in US$, riportati in grassetto
29/06/2010
2
Via Grancini 8
20145 Milano
www.gocloud.it