Jerome Mouton
@jlmouton
jerome.mouton@snapengage.com
   Un peu d’histoire, IaaS, PaaS et AppEngine

   Présentation de la plateforme, les API et
    services

   Bonnes pratiques

   Bye bye les aprioris
   Serveurs dans co-location
    ◦ Gestion du matériel
    ◦ Administration système
    ◦ Dimensionnement?
             Plus de cables…

                                    virtual servers

   Virtual private servers (VPS)
    ◦ Plus de matériel à gérer
    ◦ Administration système
    ◦ Dimensionnement complexe
Load balancer
Load balancer
   SDK
   Matériel
   Réseau
   Système d’exploitation
   Application runtime:
    Python, Java, Go
   Static file serving
   Services
   Load balancing et
    tolérance de panne
   Construit au dessus de BigTable
    ◦ Un sorted array plus qu’une DB relationnelle
    ◦ Optimisé pour des opérations de lecture


   High Replication Datastore
    ◦ Copié en temps réel vers plusieurs data centers
    ◦ Basculement automatique sur autre DC si latence
    ◦ Pas d’arrêt/read-only en cas de maintenance
   Exécution simple de taches

   Moins de contraintes de temps d’exécution

   Réexécution en cas d’échec

   Choix de push et pull-queues
   Cross compilation Java vers JavaScript
    ◦ Langage unique pour frontend et backend
    ◦ Optimise le JavaScript pour chaque type de
      navigateur


   RPCs vers AppEngine

   Dans le SDK AppEngine
    ◦ Compilation partielle automatique
    ◦ Debugging
   Channel API pour long polling
    ◦ Push de AppEngine vers le client web


   xmpp API
    ◦ Intégration avec messagerie instantanée
      Très simple avec utilisateurs dans Google Talk
      Appels async pour le xmpp généric
      Pratique pour communication entre applications
   AppEngine Backends

   Google Cloud SQL
    ◦ Une DB non-scalable si vous le voulez réellement 

   Google Cloud Storage
    ◦ Service comme S3 (CDN, REST, etc.)
    ◦ Integration avec AppEngine File API – en preview

   Prediction API

   Full Text Search API – en preview
   Requêtes par ID de l’objet
    Chat currentChat = pm.getObjectById(Chat.class, chatKey);


   On HRD: cohérence éventuelle

   Minimiser les accès au datastore
    ◦ Couteux
    ◦ Utiliser Memcache (write est 10x, read est 5x)

   Concevoir pour faire peu de write
   Gérer les exceptions AppEngine API
    ◦   Datastore
    ◦   Memcache
    ◦   Xmpp
    ◦   Etc.

   Gérer les exceptions de la plateforme
    ◦ DeadlineExceededException – error/retry
    ◦ CapabilityDisabledException – maintenance
   Utiliser services externes quand intéressant

   Les services non-Google utilisés SnapEngage:
    ◦   SendGrid - email
    ◦   MaxMind - geo
    ◦   ReportGrid / Precog - visualisation
    ◦   Twilio - telephonie
   Support de base sur Mailing list, IRC,
    StackOverflow, etc.

   Support Premium pour $500/mois
    ◦ Support opérationnel et pour développeurs
    ◦ Du Lundi au Vendredi

   Google Developer Advocates
   Migrer vers une nouvelle infrastructure est
    toujours couteux

   Certains services spécifiques à GAE
    (taskqueues, xmpp, etc.) mais gain de temps
    lors du développement initial

   Ne pas utiliser les Google Accounts
   Prix ultra attractif pendant la période de
    preview

   Augmentation dans le second semestre 2011

   Prix total cependant toujours compétitif:
       Cout du service – dev des services – cout personnel IT
   Dimensionnement automatique (scalability)
    sans effort

   Permet a votre startup de se concentrer sur
    ce qui est important

   Plateforme AppEngine est maintenant robuste
   Démo rapide du dashboard AppEngine

   Démo rapide de la API Console

   Petit tour dans Eclipse et le GAE plugin

   Questions?

20120402 nantes gtug - app engine

  • 1.
  • 2.
    Un peu d’histoire, IaaS, PaaS et AppEngine  Présentation de la plateforme, les API et services  Bonnes pratiques  Bye bye les aprioris
  • 3.
    Serveurs dans co-location ◦ Gestion du matériel ◦ Administration système ◦ Dimensionnement? Plus de cables… virtual servers  Virtual private servers (VPS) ◦ Plus de matériel à gérer ◦ Administration système ◦ Dimensionnement complexe
  • 8.
  • 9.
  • 11.
    SDK  Matériel  Réseau  Système d’exploitation  Application runtime: Python, Java, Go  Static file serving  Services  Load balancing et tolérance de panne
  • 14.
    Construit au dessus de BigTable ◦ Un sorted array plus qu’une DB relationnelle ◦ Optimisé pour des opérations de lecture  High Replication Datastore ◦ Copié en temps réel vers plusieurs data centers ◦ Basculement automatique sur autre DC si latence ◦ Pas d’arrêt/read-only en cas de maintenance
  • 15.
    Exécution simple de taches  Moins de contraintes de temps d’exécution  Réexécution en cas d’échec  Choix de push et pull-queues
  • 16.
    Cross compilation Java vers JavaScript ◦ Langage unique pour frontend et backend ◦ Optimise le JavaScript pour chaque type de navigateur  RPCs vers AppEngine  Dans le SDK AppEngine ◦ Compilation partielle automatique ◦ Debugging
  • 17.
    Channel API pour long polling ◦ Push de AppEngine vers le client web  xmpp API ◦ Intégration avec messagerie instantanée  Très simple avec utilisateurs dans Google Talk  Appels async pour le xmpp généric  Pratique pour communication entre applications
  • 18.
    AppEngine Backends  Google Cloud SQL ◦ Une DB non-scalable si vous le voulez réellement   Google Cloud Storage ◦ Service comme S3 (CDN, REST, etc.) ◦ Integration avec AppEngine File API – en preview  Prediction API  Full Text Search API – en preview
  • 19.
    Requêtes par ID de l’objet Chat currentChat = pm.getObjectById(Chat.class, chatKey);  On HRD: cohérence éventuelle  Minimiser les accès au datastore ◦ Couteux ◦ Utiliser Memcache (write est 10x, read est 5x)  Concevoir pour faire peu de write
  • 20.
    Gérer les exceptions AppEngine API ◦ Datastore ◦ Memcache ◦ Xmpp ◦ Etc.  Gérer les exceptions de la plateforme ◦ DeadlineExceededException – error/retry ◦ CapabilityDisabledException – maintenance
  • 21.
    Utiliser services externes quand intéressant  Les services non-Google utilisés SnapEngage: ◦ SendGrid - email ◦ MaxMind - geo ◦ ReportGrid / Precog - visualisation ◦ Twilio - telephonie
  • 22.
    Support de base sur Mailing list, IRC, StackOverflow, etc.  Support Premium pour $500/mois ◦ Support opérationnel et pour développeurs ◦ Du Lundi au Vendredi  Google Developer Advocates
  • 23.
    Migrer vers une nouvelle infrastructure est toujours couteux  Certains services spécifiques à GAE (taskqueues, xmpp, etc.) mais gain de temps lors du développement initial  Ne pas utiliser les Google Accounts
  • 24.
    Prix ultra attractif pendant la période de preview  Augmentation dans le second semestre 2011  Prix total cependant toujours compétitif: Cout du service – dev des services – cout personnel IT
  • 25.
    Dimensionnement automatique (scalability) sans effort  Permet a votre startup de se concentrer sur ce qui est important  Plateforme AppEngine est maintenant robuste
  • 26.
    Démo rapide du dashboard AppEngine  Démo rapide de la API Console  Petit tour dans Eclipse et le GAE plugin  Questions?

Notes de l'éditeur

  • #20 Lookup by ID is 4 to 5x faster than by doing a query