Google App Engine
-
Upload
xebia-france -
Category
Technology
-
view
1.486 -
download
3
description
Transcript of Google App Engine
Efficacité énergétique (PUE)
1,12
1,15
1,18
1,20
1,23
2009 2010 2011
Moyenne 12 mois Moyenne 3 mois
1.16
1.14
Source: http://www.google.com/about/datacenters
PaaS Platform as a Service
SaaS Software as a Service
PaaS Platform as a Service
IaaS Infrastructure as a Service
SaaS Software as a Service
IaaS Infrastructure as a Service
plateforme de dév.
logiciel
serveur
(Rapide) Démo
Montée en charge automatique
UserApp
EngineFront-end
App'sRuntime
User
User
User
App'sRuntime
User
App'sRuntime
Sécurité
• Certifications SAS70, SSAE-16 et ISAE3402
• Google est une acteur majeur en R&D dans le domaine de la sécurité informatique
• Livre blanc: http://www.google.com/about/datacenters/inside/data-security.html
Question: votre société peut-elle investir plus que Google en sécurité informatique ?
https://developers.google.com/appengine/docs/billing
http://googleappengine.blogspot.com/2011/11/scaling-with-kindle-fire.html
Milliers de requêtes par secondePréchargé dans Kindle Fire
Traffic attendu x2
App Engine
Les gènes de Google AppEnginene sont pas J2EE
Google AppEngine :Serveur d'applications Cloud
JAVA côté serveur. JAVA côté client grâce à GWT.Environnement de développement intégré avec ECLIPSE.
3B+ Requests / day300k+ Apps100k+ Developers
2008 2009 2010 2011
Memcache
Go Runtime
ISAE3402Type II
Certification
HTTPS
XMPPEmail
HighReplicationDatastore
ChannelAPI
Backends
Pull Queues
Appstats
TaskQueues
NamespacesAPIJava Runtime
Python Runtime
Puissance de calcul et service spécialisés
FrontendsBackendsTask QueuesCron
Compute Network
URL FetchXMPPChannel APIMail API
Storage
DatastoreMemcacheNamespaces BlobstoreCloud SQLStatic content
Services
Images APIApp IdentityUsers APIMapReduce APIPipeline APIProspective Search API
Frontends & BackendsTask Queue & Cron
Compute
App Engine
Frontend
App Engine
Frontend
App Engine
Backend
App Engine
Backend
ClientClient
ClientClient
Push (Task) Queues / Cron
Pull (Task) Queues
App Engine
Frontend
App Engine
FrontendApp
EngineBackend
App Engine
Backend
‣Utilise la même stack que Google pour lire le Web‣HTTP: GET, POST, PUT, HEAD, DELETE‣ En synchrone ou asynchrone‣Avec délais:- 60 secondes pour requêtes utilisateurs- 10 minutes: cron, task queue
LimitesTaille max des fichiers‣ 32MB en upload‣ 5MB en URLFetch POST
Délai Frontend‣ 60 secondes
Nombre de fichiers par applications‣ 10 000
Blobstore illimité
x2 et au delà depuis la sortie des Labs
Storage Services
CloudSQL
Blobstore
Datastore
Memcache
DatastoreNoSQL, sans schéma
Si vous connaissez HashTable, vous maitrisez déjà Datastore
Stockage transactionnel d’objets (entités)
Basé sur Google File System et BigTable
Réplication synchrone sur plusieurs Data Centers
HRD (High Replication Datastore), 100% de disponibilité sur un an*
http://googleappengine.blogspot.fr/2012/01/happy-birthday-high-replication.html
CloudSQLMySQL distribué à la mode Google
Zéro gestion
Console développeur
Réplication synchrone sur plusieurs Data Centers
Intégration à Google AppEngine‣ JDBC‣ JPA 2.0 (EclipseLink, Hibernate, Spring...)
MySQL Import / export
Co-existance avec Datastore
MemcacheCache mémoire distribué, hautement scalable, toujours disponible
Complément indispensable du Datastore ou de CloudSQL
Zéro gestion
API simple, ou JSR 107 (JCache)
2ms
20ms
ClientClientApp
EnginApp
EnginApp
EnginApp
Engine
XMPP / Jabber ‣ Envoi/Réception de messages‣ Invitation à converser‣Gestion de la présence, statut
Channel API‣Notification depuis le serveur (push)
Mail API‣ Envoi et réception
Cas d’usage‣Automate de conversation‣Notification en temps réel‣ Fonction de “Chat”
NetworkServices réseau
Service “Images” Services
Full-Text Search (beta)Effectuer des recherches “Google” sur du contenu non structuré
Processus :
1/ Indexation du contenu sous forme de documents‣Définition d’index‣Ordre naturel ou explicite
2/ Construction et execution des requêtes
3/ Présentation des résultats‣Options de tri‣Gestion des curseurs et de la pagination
Quotas
Autres ServiceMapReduce
Prediction API
Conversion de documents (PDF, HTML, images, ...)
OAuth
Traffic Splitting
Namespaces (Multitenancy)
LogService API
...
Bonnes Pratiques pour le Cloud...
Appstats
Ecrire pour le Cloud‣ ThreadSafe (Java, Python 2.7)
‣ Sharding des entités souvent mises à jour
‣Accéder directement aux entités
‣ Pagination et curseurs pour de larges
quantités de données
‣Utilisation de Memcache
‣ ...
Tester (pour le Cloud)Montée en charge‣Utiliser un traffic représentatif‣Utiliser une phase de rampup‣ Simuler 5 requêtes par seconde et s’assurer de :- latence faible et stable- pas de souci de quota- pas ou peu d’erreurs- pas de contention base de données- bon calibrage des task queues‣ Puis doubler le traffic et recommencer...
Autres optimisationsCaching‣ Remplacer le contenu dynamique par du contenu statique‣Utiliser le caching HTTP/1.1
Coté client‣Utiliser des temps aléatoires de “retry”‣Utiliser des horaires aléatoires de “call home”
Tuning du cloud‣Nouveaux outils dans la console pour trouver le meilleur
compromis entre performance et coût
✓ Produit Supporté (Novembre 2011)
✓ Engagement sur SLA 99.95%
✓ Support opérationnel dédié
✓ Securité sans cesse renforcée
✓ Forte Croissance ...
L’Histoire ne fait que débuter
Google App Engine“We wear pagers so
you don’t have to”
Le Cloud basé sur l’infrastructure Google
Alexis [email protected] Relations Manager France
Angry Birds = + + + +