Efficacité énergétique (PUE)

            Moyenne 12 mois               Moyenne 3 mois

 1,23

 1,20

 1,18
                                                          1.16
 1,15
                                                          1.14
 1,12
         2009             2010             2011

        Source: http://www.google.com/about/datacenters
SaaS
SaaS           gic i el         Software as a Service
                                 Software as a Service
             lo


                      év.
                    ed
PaaS              ed              Platform as a Service
           teform
        pla


 IaaS
IaaS            rveur       Infrastructure as a Service
                              Infrastructure as a Service
             se
Deploy

                       1


http://www.yourdomain.com/
                             2
(Rapide) Démo
Montée en charge automatique

                     User
    User                                 App's
                                        Runtime



                               App       App's
           User              Engine     Runtime
                            Front-end



                                         App's
 User                                   Runtime
                  User
Sécurité


     Question: votre société peut-elle investir
    plus que Google en sécurité informatique ?


• 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
https://developers.google.com/appengine/docs/billing
Milliers de requêtes par seconde
   Préchargé dans Kindle Fire
         Traffic attendu x2

           App Engine




 http://googleappengine.blogspot.com/
 2011/11/scaling-with-kindle-fire.html
Les gènes de Google AppEngine
       ne 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 / day
   300k+ Apps
   100k+ Developers


      2008                         2009                           2010                     2011
                                                                                High
   Memcache                               Task                               Replication
                                        Queues                                Datastore
                 HTTPS                               Appstats                              Go Runtime
                                                                              Channel
                                             XMPP               Namespaces      API          ISAE3402
Python Runtime
                         Java Runtime        Email                     API                       Type II
                                                                                           Certification
                                                                                    Backends

                                                                                   Pull Queues
Puissance de calcul et service spécialisés
                                       URL Fetch
           Frontends
                                       XMPP
Compute    Backends         Network
                                       Channel API
           Task Queues
                                       Mail API
           Cron



           Datastore                   Images API
           Memcache                    App Identity
 Storage                    Services
           Namespaces                  Users API
           Blobstore                   MapReduce API
           Cloud SQL                   Pipeline API
           Static content              Prospective Search API
Frontends & Backends                                  Compute



Task Queue & Cron


                               Pull (Task) Queues

                    App
                     App
                   Engine        Push (Task) Queues / Cron
                    Engine
 Client           Frontend
  Client           Frontend



                                App
                     App          App
                      App      Engine
                                   App
 Client             Engine      Engine
                                    App
  Client             Engine   Frontend
                                  Engine
                   Backend     Frontend
                                   Engine
                    Backend      Backend
                                  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
Limites
  Taille 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




              Memcache    Blobstore




              Datastore   CloudSQL
Datastore
    NoSQL, 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
CloudSQL
 MySQL 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
Memcache
 Cache mémoire distribué, hautement scalable, toujours disponible
 Complément indispensable du Datastore ou de CloudSQL
 Zéro gestion
 API simple, ou JSR 107 (JCache)



                                                    s
                                               2m


                                    App
                                     App
                     Client
                     Client           App
                                   Engin
                                       App
                                    Engin
                                     Engin
                                      Engine   20m
                                                        s
Services réseau                            Network



 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”
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 Service
  MapReduce
  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 optimisations
  Caching
   ‣ 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
L’Histoire ne fait que débuter

      ✓ Produit Supporté (Novembre 2011)
      ✓ Engagement sur SLA 99.95%
      ✓ Support opérationnel dédié
      ✓ Securité sans cesse renforcée
      ✓ Forte Croissance ...
Google App Engine
      “We wear pagers so
        you don’t have to”
Le Cloud basé sur l’infrastructure Google



Alexis Moussine-Pouchkine
alexismp@google.com
Developer Relations Manager France
Angry Birds =   +   +   +   +

Google App Engine

  • 3.
    Efficacité énergétique (PUE) Moyenne 12 mois Moyenne 3 mois 1,23 1,20 1,18 1.16 1,15 1.14 1,12 2009 2010 2011 Source: http://www.google.com/about/datacenters
  • 5.
    SaaS SaaS gic i el Software as a Service Software as a Service lo év. ed PaaS ed Platform as a Service teform pla IaaS IaaS rveur Infrastructure as a Service Infrastructure as a Service se
  • 6.
    Deploy 1 http://www.yourdomain.com/ 2
  • 7.
  • 8.
    Montée en chargeautomatique User User App's Runtime App App's User Engine Runtime Front-end App's User Runtime User
  • 9.
    Sécurité Question: votre société peut-elle investir plus que Google en sécurité informatique ? • 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
  • 11.
  • 12.
    Milliers de requêtespar seconde Préchargé dans Kindle Fire Traffic attendu x2 App Engine http://googleappengine.blogspot.com/ 2011/11/scaling-with-kindle-fire.html
  • 13.
    Les gènes deGoogle AppEngine ne sont pas J2EE
  • 14.
    Google AppEngine : Serveurd'applications Cloud JAVA côté serveur. JAVA côté client grâce à GWT. Environnement de développement intégré avec ECLIPSE.
  • 15.
    3B+ Requests /day 300k+ Apps 100k+ Developers 2008 2009 2010 2011 High Memcache Task Replication Queues Datastore HTTPS Appstats Go Runtime Channel XMPP Namespaces API ISAE3402 Python Runtime Java Runtime Email API Type II Certification Backends Pull Queues
  • 16.
    Puissance de calculet service spécialisés URL Fetch Frontends XMPP Compute Backends Network Channel API Task Queues Mail API Cron Datastore Images API Memcache App Identity Storage Services Namespaces Users API Blobstore MapReduce API Cloud SQL Pipeline API Static content Prospective Search API
  • 17.
    Frontends & Backends Compute Task Queue & Cron Pull (Task) Queues App App Engine Push (Task) Queues / Cron Engine Client Frontend Client Frontend App App App App Engine App Client Engine Engine App Client Engine Frontend Engine Backend Frontend Engine Backend Backend Backend
  • 18.
    ‣ Utilise lamê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
  • 19.
    Limites Taillemax 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
  • 20.
    Storage Services Memcache Blobstore Datastore CloudSQL
  • 21.
    Datastore NoSQL, 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
  • 22.
    CloudSQL MySQL 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
  • 23.
    Memcache Cache mémoiredistribué, hautement scalable, toujours disponible Complément indispensable du Datastore ou de CloudSQL Zéro gestion API simple, ou JSR 107 (JCache) s 2m App App Client Client App Engin App Engin Engin Engine 20m s
  • 24.
    Services réseau Network 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”
  • 25.
  • 26.
    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
  • 27.
    Autres Service MapReduce Prediction API Conversion de documents (PDF, HTML, images, ...) OAuth Traffic Splitting Namespaces (Multitenancy) LogService API ...
  • 29.
  • 30.
  • 31.
    Ecrire pour leCloud ‣ 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 ‣ ...
  • 32.
    Tester (pour leCloud) 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...
  • 33.
    Autres optimisations Caching ‣ 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
  • 34.
    L’Histoire ne faitque débuter ✓ Produit Supporté (Novembre 2011) ✓ Engagement sur SLA 99.95% ✓ Support opérationnel dédié ✓ Securité sans cesse renforcée ✓ Forte Croissance ...
  • 35.
    Google App Engine “We wear pagers so you don’t have to”
  • 36.
    Le Cloud basésur l’infrastructure Google Alexis Moussine-Pouchkine alexismp@google.com Developer Relations Manager France
  • 37.
    Angry Birds = + + + +