SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Google App Engine/'ɛn.dʒin/
L’introduction
En 15 secondes...
Google App Engine permet aux développeurs de bâtir des
applications web sur les mêmes infrastructures scalable qui
sont derrière les applications de Google.
En ~30 minutes
•   La plateforme
•   Les APIs
•   La tarification
•   Quelques scénarios
Google App Engine


La plateforme
Position dans le Cloud
                       Application




                Plateforme




     Infrastructure

                                     EC2
Plateforme d’actualité
   Support communautaire de Google
      ‣   Blog
      ‣   Groups


   Mises à jour du SDK
      ‣   9 MAJs dans la dernière année


   Pas de support commercial
Facilité à scaler
Facilité àd’utilisateurs
Douleur vs nombre
                  scaler

           App Engine




                                                            Douleur
           Architecture régulière




                                    Nombre d’utilisateurs
Les langages
Les frameworks



• Grails
                 • Django
• Play!
                 • web.py
• Spring MVC
Comment ça marche?
  Phase 1: Développer

  Phase 2:   ?
  Phase 3: Profit!
Limitations
   • Aucune écriture sur le système de fichier

   • Aucun socket

   • 30 secondes d’exécution

   • Tout doit passer en HTTP

   • Pas de SSL pour les domaines personnalisés
Google App Engine


Les APIs
Les APIs
• Datastore (BD non relationnelle)   • Mail (envoi, réception)

• Blobstore (gros fichiers)           • URLFetch

• Memcache                           • ...

• TaskQueue (background workers)
Datastore
C’est quoi?


• BigTagle : key-value storage

• Architecture distribuée

• Performance et disponibilité variable

• Optimisé pour la lecture

• Transactions avec limitations

• API facile d’utilisation
Datastore
Les limitations


• Pas de fonction d’agrégat
• Pas de jointure
• Latence élevée
• 1 mb max / entité
• 1 mb max / appel à l’API
Datastore entité
Exemple : Déclarer une


  from google.appengine.ext import db


  class Message(db.Expando):
    de   =   db.EmailProperty(required=True)
    a    =   db.EmailProperty(required=True)
Datastore entité
Exemple : Enregistrer une
  m = Message(                                    m = Message(
      de          =      'un.sender@dom.com',         de          =   'un.sender@dom.com',
      a           =      'un.receiver@dom.com',       a           =   'un.receiver@dom.com',
      message     =      'Hello World!',              message     =   'Hello World!',
      priorite    =      0                            priorite    =   'URGENT',
  )                                                   pjs         =   ['chat.jpg', 'chien.jpg']
  m.put()                                         )
  print m                                         m.put()
                                                  print m
  # ------------------------                      # ------------------------
  # Message                                       # Message
  #       De : un.sender@dom.com                  #       De : un.sender@dom.com
  #       A : un.receiver@dom.com                 #       A : un.receiver@dom.com
  #       Priorite : 0                            #       Priorite : 'URGENT'
                                                  #       Pjs : ['chat.jpg', 'chien.jpg']
Datastore des entités
Exemple : Obtenir et supprimer

  #Obtenir 2 entités où Message.de = 'un.sender@dom.com'
  requete = Message.all().filter('de', 'un.sender@dom.com')
  messages = requete.fetch(2)
  print messages
  # ------------------------
  #[<Message object at ...>, <Message object at ...>]




  #Supprimmer les entités
  db.delete(messages)
  messages = requete.fetch(2)
  print messages
  # ------------------------
  #[]
Blobstore
   • Supporte HTML5 multiple file input
   • Jusqu’à 2 Go
   • Ne permet aucun autre input à part
     celui du fichier
Memcache
  • Rapide, sauf latence
  • Persistance non garantie
  • Sauve du temps et de l’argent
  • 1 mb max par entité
Taskqueue
  • 30 secondes 10 minutes par task
  • Parallélisme
  • Chaque tâche doit être
    idempotente
Google App Engine


La tarification
Gratuité
• Bande passante et CPU               Ressource                 Quota        Prix / mois
  pour env. 5 millions de pages       Données du Blobstore        1 gig        $0.15

• Limitations importantes au niveau   Données du Datastore        1 gig        $0.15
  de l’espace de stockage             Bande passante entrante   1 gig / j.     $3.00

                                      Bande passante sortante   1 gig / j.     $3.60

                                      Courriels envoyés         2000 / j.      $6.00

                                      CPU                       6.5 h / j.     $9.50

                                      Total mensuel                           $22.40
Tarificationvous utilisez
Payez uniquement ce que


Ressource                 Unité          AppEngine     Amazon

Bande passante sortante   gig              $0.12     $0.08 - $0.15

Bande passante entrante   gig              $0.10        $0.10

Temps CPU                 Heure CPU        $0.10        $0.14

Données sauvegardées      gig/mois         $0.15        $0.25

Courriel envoyé           destinataire    $0.0001      $0.0001
Google App Engine


Scénarios
Les scénarios
Bon cas d’utilisation


        Backend pour conserver les scores d’un jeu
        sur plateforme mobile
        ‣   Application non-critique
        ‣   Le nombre de clients peut changer
            d’ordre de magnitude rapidement
        ‣   Peu de relations entre les entités
        ‣   Gratuit pour une bonne période
Les scénarios
Moins bon cas d’utilisation


        Application de gestion d’inventaire,
        de fournisseurs et de facturation
        ‣   Application critique
        ‣   L’ordre de magnitude est peu sujet à changement
        ‣   Beaucoup de relations entre les entités
Google App Engine


Retour
Questions?
Commentaires?
@JimmyBourassa sur Twitter
jbourassa sur GitHub
jimmy.bourassa@hooktstudios.com

Contenu connexe

En vedette

Cours Search Marketing - 1 Introduction - IAE Lille
Cours Search Marketing -  1 Introduction - IAE LilleCours Search Marketing -  1 Introduction - IAE Lille
Cours Search Marketing - 1 Introduction - IAE LilleRenaud JOLY
 
Cloud & Google app engine Presentation by Ngiambus Marcus
 Cloud & Google app engine Presentation  by Ngiambus Marcus Cloud & Google app engine Presentation  by Ngiambus Marcus
Cloud & Google app engine Presentation by Ngiambus MarcusMarc NGIAMBA
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine FrValtech
 
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...JRibbeck
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casDamien Metzler
 
An introduction to Google's App Engine
An introduction to Google's App EngineAn introduction to Google's App Engine
An introduction to Google's App EngineStefan Sperber
 
b2performance berth
b2performance berthb2performance berth
b2performance berthITB Berlin
 
Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Kwaye Kant
 
Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014Daniel Herndler
 
Google App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im ProduktiveinsatzGoogle App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im ProduktiveinsatzPer Fragemann
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Javatcouery
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012photomatt
 
Web meets Location - Mobile Social Media Relations
Web meets Location - Mobile Social Media RelationsWeb meets Location - Mobile Social Media Relations
Web meets Location - Mobile Social Media RelationsSympra GmbH (GPRA)
 
Intellectual Property Rights
Intellectual Property RightsIntellectual Property Rights
Intellectual Property Rightsharshhanu
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!adesso AG
 
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEARCH ONE
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App EngineVincentBostoen
 

En vedette (20)

Cours Search Marketing - 1 Introduction - IAE Lille
Cours Search Marketing -  1 Introduction - IAE LilleCours Search Marketing -  1 Introduction - IAE Lille
Cours Search Marketing - 1 Introduction - IAE Lille
 
Cloud & Google app engine Presentation by Ngiambus Marcus
 Cloud & Google app engine Presentation  by Ngiambus Marcus Cloud & Google app engine Presentation  by Ngiambus Marcus
Cloud & Google app engine Presentation by Ngiambus Marcus
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine Fr
 
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
DNUG2015 Frühjahrskonferenz: Brücken bauen, Grenzen überwinden: Domino im Dia...
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de cas
 
An introduction to Google's App Engine
An introduction to Google's App EngineAn introduction to Google's App Engine
An introduction to Google's App Engine
 
b2performance berth
b2performance berthb2performance berth
b2performance berth
 
Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine Google Cloud Platform. Google App Engine
Google Cloud Platform. Google App Engine
 
Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014Search Engine Friendly Design (SEFD) - SMX München 2014
Search Engine Friendly Design (SEFD) - SMX München 2014
 
Google App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im ProduktiveinsatzGoogle App Engine. Zwei Jahre im Produktiveinsatz
Google App Engine. Zwei Jahre im Produktiveinsatz
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Web meets Location - Mobile Social Media Relations
Web meets Location - Mobile Social Media RelationsWeb meets Location - Mobile Social Media Relations
Web meets Location - Mobile Social Media Relations
 
Intellectual Property Rights
Intellectual Property RightsIntellectual Property Rights
Intellectual Property Rights
 
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
Durchgestartet? Eine Einführung in die Google App Engine / Java - Reloaded!
 
RoomCloud Booking Engine
RoomCloud Booking EngineRoomCloud Booking Engine
RoomCloud Booking Engine
 
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai SpriestersbachSEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
SEFD - Search Engine Friendly Design - SMX München 2015 Kai Spriestersbach
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App Engine
 

Similaire à Introduction à Google App Engine - WAQ 2011

GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàAzure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàMicrosoft
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotiqueMicrosoft
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyribaOlivier BAZOUD
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01MongoDB
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostDamien Jubeau
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesOxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
Comment passer d'un POC en prod @ plusieurs milliards de rêquetes
Comment passer d'un POC en prod @ plusieurs milliards de rêquetesComment passer d'un POC en prod @ plusieurs milliards de rêquetes
Comment passer d'un POC en prod @ plusieurs milliards de rêquetesCarles Sistare
 
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...David Caramelo
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...sebastienmoreno
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 
Voodoo.io NodeJS Meetup - November 13
Voodoo.io NodeJS Meetup - November 13Voodoo.io NodeJS Meetup - November 13
Voodoo.io NodeJS Meetup - November 13Aymeric Roffé
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent Biret
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engineGDG Nantes
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB
 

Similaire à Introduction à Google App Engine - WAQ 2011 (20)

GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delàAzure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
Azure: que puis-je faire pour 0€, 1€, 1000€, un million d’€ et au-delà
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique.NET Microframework: du code, de l&rsquo;électronique, de la robotique
.NET Microframework: du code, de l&rsquo;électronique, de la robotique
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyriba
 
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp012014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
2014 03-26-appdevseries-session3-interactingwiththedatabase-fr-phpapp01
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Comment passer d'un POC en prod @ plusieurs milliards de rêquetes
Comment passer d'un POC en prod @ plusieurs milliards de rêquetesComment passer d'un POC en prod @ plusieurs milliards de rêquetes
Comment passer d'un POC en prod @ plusieurs milliards de rêquetes
 
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
Optimisations et Performances d'un POC en prod @ plusieurs milliards de requê...
 
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
Lost in serverless AWS Lambda, Google Cloud Function, Azure Function quelle s...
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
Voodoo.io NodeJS Meetup - November 13
Voodoo.io NodeJS Meetup - November 13Voodoo.io NodeJS Meetup - November 13
Voodoo.io NodeJS Meetup - November 13
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)Vincent biret azure functions et flow #AosCanadianTour (quebec)
Vincent biret azure functions et flow #AosCanadianTour (quebec)
 
20120402 nantes gtug - app engine
20120402   nantes gtug - app engine20120402   nantes gtug - app engine
20120402 nantes gtug - app engine
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptx
 

Introduction à Google App Engine - WAQ 2011

  • 2. En 15 secondes... Google App Engine permet aux développeurs de bâtir des applications web sur les mêmes infrastructures scalable qui sont derrière les applications de Google.
  • 3. En ~30 minutes • La plateforme • Les APIs • La tarification • Quelques scénarios
  • 4. Google App Engine La plateforme
  • 5. Position dans le Cloud Application Plateforme Infrastructure EC2
  • 6. Plateforme d’actualité Support communautaire de Google ‣ Blog ‣ Groups Mises à jour du SDK ‣ 9 MAJs dans la dernière année Pas de support commercial
  • 8. Facilité àd’utilisateurs Douleur vs nombre scaler App Engine Douleur Architecture régulière Nombre d’utilisateurs
  • 10. Les frameworks • Grails • Django • Play! • web.py • Spring MVC
  • 11. Comment ça marche? Phase 1: Développer Phase 2: ? Phase 3: Profit!
  • 12. Limitations • Aucune écriture sur le système de fichier • Aucun socket • 30 secondes d’exécution • Tout doit passer en HTTP • Pas de SSL pour les domaines personnalisés
  • 14. Les APIs • Datastore (BD non relationnelle) • Mail (envoi, réception) • Blobstore (gros fichiers) • URLFetch • Memcache • ... • TaskQueue (background workers)
  • 15. Datastore C’est quoi? • BigTagle : key-value storage • Architecture distribuée • Performance et disponibilité variable • Optimisé pour la lecture • Transactions avec limitations • API facile d’utilisation
  • 16. Datastore Les limitations • Pas de fonction d’agrégat • Pas de jointure • Latence élevée • 1 mb max / entité • 1 mb max / appel à l’API
  • 17. Datastore entité Exemple : Déclarer une from google.appengine.ext import db class Message(db.Expando): de = db.EmailProperty(required=True) a = db.EmailProperty(required=True)
  • 18. Datastore entité Exemple : Enregistrer une m = Message( m = Message( de = 'un.sender@dom.com', de = 'un.sender@dom.com', a = 'un.receiver@dom.com', a = 'un.receiver@dom.com', message = 'Hello World!', message = 'Hello World!', priorite = 0 priorite = 'URGENT', ) pjs = ['chat.jpg', 'chien.jpg'] m.put() ) print m m.put() print m # ------------------------ # ------------------------ # Message # Message # De : un.sender@dom.com # De : un.sender@dom.com # A : un.receiver@dom.com # A : un.receiver@dom.com # Priorite : 0 # Priorite : 'URGENT' # Pjs : ['chat.jpg', 'chien.jpg']
  • 19. Datastore des entités Exemple : Obtenir et supprimer #Obtenir 2 entités où Message.de = 'un.sender@dom.com' requete = Message.all().filter('de', 'un.sender@dom.com') messages = requete.fetch(2) print messages # ------------------------ #[<Message object at ...>, <Message object at ...>] #Supprimmer les entités db.delete(messages) messages = requete.fetch(2) print messages # ------------------------ #[]
  • 20. Blobstore • Supporte HTML5 multiple file input • Jusqu’à 2 Go • Ne permet aucun autre input à part celui du fichier
  • 21. Memcache • Rapide, sauf latence • Persistance non garantie • Sauve du temps et de l’argent • 1 mb max par entité
  • 22. Taskqueue • 30 secondes 10 minutes par task • Parallélisme • Chaque tâche doit être idempotente
  • 23. Google App Engine La tarification
  • 24. Gratuité • Bande passante et CPU Ressource Quota Prix / mois pour env. 5 millions de pages Données du Blobstore 1 gig $0.15 • Limitations importantes au niveau Données du Datastore 1 gig $0.15 de l’espace de stockage Bande passante entrante 1 gig / j. $3.00 Bande passante sortante 1 gig / j. $3.60 Courriels envoyés 2000 / j. $6.00 CPU 6.5 h / j. $9.50 Total mensuel $22.40
  • 25. Tarificationvous utilisez Payez uniquement ce que Ressource Unité AppEngine Amazon Bande passante sortante gig $0.12 $0.08 - $0.15 Bande passante entrante gig $0.10 $0.10 Temps CPU Heure CPU $0.10 $0.14 Données sauvegardées gig/mois $0.15 $0.25 Courriel envoyé destinataire $0.0001 $0.0001
  • 27. Les scénarios Bon cas d’utilisation Backend pour conserver les scores d’un jeu sur plateforme mobile ‣ Application non-critique ‣ Le nombre de clients peut changer d’ordre de magnitude rapidement ‣ Peu de relations entre les entités ‣ Gratuit pour une bonne période
  • 28. Les scénarios Moins bon cas d’utilisation Application de gestion d’inventaire, de fournisseurs et de facturation ‣ Application critique ‣ L’ordre de magnitude est peu sujet à changement ‣ Beaucoup de relations entre les entités
  • 30. Questions? Commentaires? @JimmyBourassa sur Twitter jbourassa sur GitHub jimmy.bourassa@hooktstudios.com