SlideShare une entreprise Scribd logo
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 Lille
Renaud 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 Marcus
Marc NGIAMBA
 
Tk03 Google App Engine Fr
Tk03 Google App Engine FrTk03 Google App Engine Fr
Tk03 Google App Engine Fr
Valtech
 
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
 
Google App Engine - INTRO
Google App Engine - INTROGoogle App Engine - INTRO
Google App Engine - INTRO
Beyram Ben Elghali
 
Nuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de casNuxeo WebEngine : Etude de cas
Nuxeo WebEngine : Etude de cas
Damien 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 Engine
Stefan Sperber
 
b2performance berth
b2performance berthb2performance berth
b2performance berth
ITB 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 2014
Daniel 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 Produktiveinsatz
Per Fragemann
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
tcouery
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
photomatt
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Publicis Sapient Engineering
 
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
Sympra GmbH (GPRA)
 
Intellectual Property Rights
Intellectual Property RightsIntellectual Property Rights
Intellectual Property Rights
harshhanu
 
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
 
RoomCloud Booking Engine
RoomCloud Booking EngineRoomCloud Booking Engine
RoomCloud Booking Engine
Sylvain Diverchy
 
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
SEARCH ONE
 
Codathlon Google App Engine
Codathlon Google App EngineCodathlon Google App Engine
Codathlon Google App Engine
VincentBostoen
 

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, Gwt
hkairi
 
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 robotique
Microsoft
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyriba
Olivier 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
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
Abdelhakim Rhanizar
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
Ippon
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
Damien 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 slides
Oxalide
 
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
Ludovic 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êquetes
Carles 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 13
Aymeric Roffé
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
Olivier Gutknecht
 
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
 

Dernier

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 

Dernier (9)

Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.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