Mardi 17 Novembre 2009
                                                   Paris, la Défense




                              Google App Engine



Bruno MARCHESSON,
Consultant Senior
Valtech Technology
bruno.marchesson@valtech.fr
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #2
Définition




« Le cloud computing est un concept majeur faisant
référence à l'utilisation de la mémoire et des capacités
de calcul des ordinateurs et des serveurs répartis dans
   le monde entier et liés par un réseau, tel Internet
          (principe de la grille informatique). »




                                                    #3
                      source : wikipedia
Distribution des ressources



      « Le concept d'informatique dans le nuage est
    comparable à celui de la distribution de l'énergie
 électrique. La puissance de calcul et de stockage de
 l'information est proposée à la consommation par des
 compagnies spécialisées. De ce fait, les entreprises
  n'ont plus besoin de serveurs propres, mais confient
  cette ressource à une entreprise qui leur garantit une
   puissance de calcul et de stockage à la demande. »



                       source : wikipedia
Sédimentation de l’offre




 « L’innovation - et donc la création de valeur - réside
   dans la construction d’une couche d’abstraction
   supplémentaire au dessus de l’existant, pour se
                 rapprocher du client »




                     source : Julien Genestoux
Data center




    Hébergement de la machine = maitrise totale
 Paiement de la machine, de l’électricité, des locaux…
Hébergeurs




 Mise à disposition de serveurs tiers dans votre data
                          center
Paiement de la location du serveur, de sa maintenance
Virtualisation de serveurs



             Infrastructure as a Service

  Maitrise de la configuration (OS, Base de données)
   Paiement en fonction de l’utilisation des serveurs
Platform as a Service




                     Plus de gestion de serveur
                      Seul le code est maitrisé
                    Paiement au temps de calcul
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #10
Google App Engine




     Mise à disposition de l’infrastructure Google

             Monétisation du savoir-faire

      (montée en charge, haute disponibilité)
Présentation technique




  Déploiement d’applications web sur l’infrastructure
                         Google

             Support Python, puis Java 6

           Nombreux services techniques
Limitations

Pas de Thread

Pas d’accès aux fichiers

Pas de reflection

Timeout de 30 s

Supporte un sous-ensemble des classes Java

Quotas d’utilisations
Services supplémentaires

MemCache - Cache en mémoire

URL Fetch - Communication via HTTP/HTTPS

XMPP - Protocole messagerie instantanée

JavaMail - Envoi d’emails

Image Manipulation

CRON - Exécution d’actions planifiées

TaskQueue - Tâches de fond
Librairies et API


         Support d’un sous-ensemble du JDK

        Support de quelques API (JSP, JPA, …)

       Nombre de librairies ne fonctionnent pas
                (Hibernate, Apache POI, …)


            « Will it play in App Engine »
Google Web Toolkit




               Sortie simultanée GWT 1.6 et GAE/J

              Alternatives : Flex, JSF, Silverlight, …

              Difficulté d’intégration avec DataStore
Cycle de développement



                              test
 Développement




                                           Hosted mode


                 Google plug in               ≠
                             déploiement



                                            Cloud
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #18
BigTable


           Données tabulaires (schemaless)
                 Réplication de données


                col 1              col 2         col 3

   row
                              t2
                        t5 t4              t3            t1   …


            (row:string, column:string, time:int64) -> string
Datastore




                 API de bas niveau

        S’appuie sur la technologie BigTable

    Stockage hiérarchique sur plusieurs serveurs
DataNucleus

               API de haut niveau

     Implémentation des standards JDO et JPA

      Prévu pour des données relationnelles
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #22
Identification




           Gestion intégrée Google Account

           Démonstration intégration OpenID

       Intégration possible avec Spring Security
Google Secure Data Connector

                   Accès aux données du SI depuis
                               le Cloud

                     Contrôle des utilisateurs et
                             applications

                           Certificat X509

                          Linux seulement
Confidentialité




       Vos données sont stockées chez Google

          Votre code est stocké chez Google

      Google est une société de droit américain
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #26
Principe


                 Basé sur des quotas d’utilisation
                 Facturation désactivée par défaut
              Possibilité de limiter le budget quotidien
Resource         Free Default Quota                     Billing Enabled Quota

                 Daily Limit          Maximum Rate      Daily Limit         Maximum Rate

Requests         1,300,000            7,400             43,000,000          30,000
                 requests             requests/minute   requests            requests/minute

CPU Time         6.5 CPU-hours        15 CPU-           6.5 CPU-hours       72 CPU-
                                      minutes/minute    free; 1,729 CPU-    minutes/minute
                                                        hours maximum


Stored Data      1 gigabyte           None              1 gigabytes free;   None
                                                        no maximum
Tarification



                     Tarification à l’usage effectif

Resource                       Unit                    Unit cost


Outgoing Bandwidth             gigabytes               $0.12

Incoming Bandwidth             gigabytes               $0.10

CPU Time                       CPU hours               $0.10

Stored Data                    gigabytes per month     $0.15

Recipients Emailed             recipients              $0.0001
La (pseudo) gratuité comme modèle




  Google App Engine risque de s’imposer comme la
 référence de développement Cloud Computing pour
     les startup, les étudiants, les passionnés, …

           Précédents : Java, Eclipse,…
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #30
Console d’administration
Console d’administration



                Gestion des quotas

                       Logs

       Visualisation des données (BigTable)

                   Task Queues
Sommaire

   • Introduction
   • Présentation
   • Stockage des données
   • Sécurité & confidentialité
   • Tarification
   • Administration
   • Conclusion




                                  #33
Un besoin essentiel




      Besoin d’absorber une montée en charge

                  Charge variable
Des limites opérationnelles




             Pas de serveur de secours

             Pas de backup des données
                    (en cours…)
Cas d’usage




     Site événementiel ou à activité périodique

                   eCommerce

                 Proof of Concept
Conclusion



              Solution PaaS d’avenir

              Des contraintes fortes

      Adapté aux nouveaux développements

        Transparence de montée en charge

Tk03 Google App Engine Fr

  • 1.
    Mardi 17 Novembre2009 Paris, la Défense Google App Engine Bruno MARCHESSON, Consultant Senior Valtech Technology bruno.marchesson@valtech.fr
  • 2.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #2
  • 3.
    Définition « Le cloudcomputing est un concept majeur faisant référence à l'utilisation de la mémoire et des capacités de calcul des ordinateurs et des serveurs répartis dans le monde entier et liés par un réseau, tel Internet (principe de la grille informatique). » #3 source : wikipedia
  • 4.
    Distribution des ressources « Le concept d'informatique dans le nuage est comparable à celui de la distribution de l'énergie électrique. La puissance de calcul et de stockage de l'information est proposée à la consommation par des compagnies spécialisées. De ce fait, les entreprises n'ont plus besoin de serveurs propres, mais confient cette ressource à une entreprise qui leur garantit une puissance de calcul et de stockage à la demande. » source : wikipedia
  • 5.
    Sédimentation de l’offre « L’innovation - et donc la création de valeur - réside dans la construction d’une couche d’abstraction supplémentaire au dessus de l’existant, pour se rapprocher du client » source : Julien Genestoux
  • 6.
    Data center Hébergement de la machine = maitrise totale Paiement de la machine, de l’électricité, des locaux…
  • 7.
    Hébergeurs Mise àdisposition de serveurs tiers dans votre data center Paiement de la location du serveur, de sa maintenance
  • 8.
    Virtualisation de serveurs Infrastructure as a Service Maitrise de la configuration (OS, Base de données) Paiement en fonction de l’utilisation des serveurs
  • 9.
    Platform as aService Plus de gestion de serveur Seul le code est maitrisé Paiement au temps de calcul
  • 10.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #10
  • 11.
    Google App Engine Mise à disposition de l’infrastructure Google Monétisation du savoir-faire (montée en charge, haute disponibilité)
  • 12.
    Présentation technique Déploiement d’applications web sur l’infrastructure Google Support Python, puis Java 6 Nombreux services techniques
  • 13.
    Limitations Pas de Thread Pasd’accès aux fichiers Pas de reflection Timeout de 30 s Supporte un sous-ensemble des classes Java Quotas d’utilisations
  • 14.
    Services supplémentaires MemCache -Cache en mémoire URL Fetch - Communication via HTTP/HTTPS XMPP - Protocole messagerie instantanée JavaMail - Envoi d’emails Image Manipulation CRON - Exécution d’actions planifiées TaskQueue - Tâches de fond
  • 15.
    Librairies et API Support d’un sous-ensemble du JDK Support de quelques API (JSP, JPA, …) Nombre de librairies ne fonctionnent pas (Hibernate, Apache POI, …) « Will it play in App Engine »
  • 16.
    Google Web Toolkit Sortie simultanée GWT 1.6 et GAE/J Alternatives : Flex, JSF, Silverlight, … Difficulté d’intégration avec DataStore
  • 17.
    Cycle de développement test Développement Hosted mode Google plug in ≠ déploiement Cloud
  • 18.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #18
  • 19.
    BigTable Données tabulaires (schemaless) Réplication de données col 1 col 2 col 3 row t2 t5 t4 t3 t1 … (row:string, column:string, time:int64) -> string
  • 20.
    Datastore API de bas niveau S’appuie sur la technologie BigTable Stockage hiérarchique sur plusieurs serveurs
  • 21.
    DataNucleus API de haut niveau Implémentation des standards JDO et JPA Prévu pour des données relationnelles
  • 22.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #22
  • 23.
    Identification Gestion intégrée Google Account Démonstration intégration OpenID Intégration possible avec Spring Security
  • 24.
    Google Secure DataConnector Accès aux données du SI depuis le Cloud Contrôle des utilisateurs et applications Certificat X509 Linux seulement
  • 25.
    Confidentialité Vos données sont stockées chez Google Votre code est stocké chez Google Google est une société de droit américain
  • 26.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #26
  • 27.
    Principe Basé sur des quotas d’utilisation Facturation désactivée par défaut Possibilité de limiter le budget quotidien Resource Free Default Quota Billing Enabled Quota Daily Limit Maximum Rate Daily Limit Maximum Rate Requests 1,300,000 7,400 43,000,000 30,000 requests requests/minute requests requests/minute CPU Time 6.5 CPU-hours 15 CPU- 6.5 CPU-hours 72 CPU- minutes/minute free; 1,729 CPU- minutes/minute hours maximum Stored Data 1 gigabyte None 1 gigabytes free; None no maximum
  • 28.
    Tarification Tarification à l’usage effectif Resource Unit Unit cost Outgoing Bandwidth gigabytes $0.12 Incoming Bandwidth gigabytes $0.10 CPU Time CPU hours $0.10 Stored Data gigabytes per month $0.15 Recipients Emailed recipients $0.0001
  • 29.
    La (pseudo) gratuitécomme modèle Google App Engine risque de s’imposer comme la référence de développement Cloud Computing pour les startup, les étudiants, les passionnés, … Précédents : Java, Eclipse,…
  • 30.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #30
  • 31.
  • 32.
    Console d’administration Gestion des quotas Logs Visualisation des données (BigTable) Task Queues
  • 33.
    Sommaire • Introduction • Présentation • Stockage des données • Sécurité & confidentialité • Tarification • Administration • Conclusion #33
  • 34.
    Un besoin essentiel Besoin d’absorber une montée en charge Charge variable
  • 35.
    Des limites opérationnelles Pas de serveur de secours Pas de backup des données (en cours…)
  • 36.
    Cas d’usage Site événementiel ou à activité périodique eCommerce Proof of Concept
  • 37.
    Conclusion Solution PaaS d’avenir Des contraintes fortes Adapté aux nouveaux développements Transparence de montée en charge