La Platform as a Service di Google Vincenzo Gianferrari Pini <vgp@gocloud.it> 7 giugno 01
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
Architettura
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
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
La Platform as a Service (PaaS) di Google 1. Google App Engine (GAE): ambiente runtime per l'esecuzione. 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
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
GAE Administration Console
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
Google App Engine: i servizi Single sign-on per l'autenticazione, integrato con tutti i servizi offerti da Google -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...
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
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
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
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
"One Click" deploy
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
Secure Data Connector
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
Istanze dinamiche classe 1 (18 MB, 600 MHz): $0,08 / h classe (56 MB, 1, GHz): $0,16 / h classe 4, classe 8 residenti oltre alla prima: $0,05 / h Outgoing Bandwidth: $0,1 / GB Stored Data: Blobstore: $0,13 / (GB x Mese) Datastore: $0,4 / (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 Pricing: voci variabili principali
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 0 giorni lavorativi al mese Gli importi calcolati sono in US$, riportati in grassetto
Via Grancini 8 0145 Milano www.gocloud.it