Google App Engine

Post on 11-May-2015

1.486 views 3 download

description

Alexis Moussine-Pouchkine, Developer Relation chez Google, présente Google App Engine. Le pionnier des PaaS se bonifie avec l’age. Toujours zéro config et 100% haute-dispo, choix des langages, NoSQL et/ou SQL, API enrichies et services toujours plus nombreux, venez déguster la cuvée 2012! La vidéo de la présentation est disponible ici : TODO Le Xebia Cloud Day 2012 est une conférence gratuite dédiée au Cloud Computing focalisée sur l'écosystème Java. http://blog.xebia.fr/22-mai-2012-cloud-day-chez-xebia/

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

Deploy

http://www.yourdomain.com/

1

2

(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 ?

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 Moussine-Pouchkinealexismp@google.comDeveloper Relations Manager France