title:      Google App Engine : avantages et inconvénients
slug:       google-app-engine-avantages-et-inconvenients
date:       2008-04-09 00:45:56
type:       post
vignette:   images/logos/google_app_engine.png
contextual_title1:  Google Wave, une fois la vague de buzz retombée
contextual_url1:    20090605-google-wave-une-fois-la-vague-de-buzz-retombee
contextual_title2:  Comprendre Google Native Client
contextual_url2:    20081223-comprendre-google-native-client
contextual_title3:  ★ Pourquoi avoir peur de Google ?
contextual_url3:    20080907-pourquoi-avoir-peur-de-google

<p>Vous n'avez pas pu passer à côté de l'information aujourd'hui, <a href="http://code.google.com/appengine/">Google a lancé son nuage en orbite</a>. Réactions à <del>chaud</del> froid (j'ai pas encore d'invitation) sur le bon et le moins bon. Vous avez eu <a href="https://larlet.fr/david/biologeek/archives/20071202-gweb-peut-on-encore-rever-d-un-web-libre/">peur du GWeb</a>&nbsp;? Attendez-vous à pire.</p>

<h2>Google App Engine&nbsp;?</h2>


<p>Rapide séance de rattrapage pour ceux qui bossent trop. <strong>Ce nouveau service vous permet de mettre en ligne des sites dynamiques développés avec Python sans vous préoccuper de l'hébergement</strong>. Ce qui pouvait auparavant prendre un bon moment se fait maintenant en une poignée de secondes. C'est presque plus simple qu'un déploiement de site en PHP qui demande l'utilisation d'un client FTP.</p>


<p>Contrairement à Amazon et ses services modulaires (S3, EC2, SQS, etc), Google a décidé de fournir une offre tout compris et gratuite pour les sites de tailles modestes (les tarifs si on dépasse la limite ne sont pas encore connus).</p>


<p><img src="/static/david/biologeek/images/google_appengine.png" alt="Google App Engine" style="display:block; margin:0 auto;" /></p>


<h2>C'est un grand jour pour...</h2>


<h3>Django</h3>


<p>Même si les autres frameworks sont évoqués, le grand gagnant de la journée est certainement <a href="http://www.django-fr.org/">Django</a> qui a plus que jamais le vent en poupe. &lt;autosatisfaction&gt;Je ne vous cache pas qu'il est assez encourageant de miser sur les mêmes outils que Google&lt;/autosatisfaction&gt;. J'ai l'impression (mais je suis trop impliqué donc ça reste vraiment une impression) que le soufflet <abbr title="Ruby on Rails">RoR</abbr> est en train de retomber et s'il doit y avoir une date clé à cette inversion de tendance, c'est celle-ci.</p>


<p>La documentation si vous connaissez Django est <a href="http://code.google.com/appengine/articles/django.html">très claire</a> et <a href="http://code.google.com/appengine/articles/djangoforms.html">détaillée</a>, prise en main immédiate et vous pouvez même installer la dernière version de Django. Rien à redire à ce niveau. Il est à noter que le système de stockage de données est différents donc les applications existantes (notamment l'administration) ne fonctionneront pas sans de sérieuses modifications.</p>


<h3>Python</h3>


<p>Avec l'<a href="http://groups.google.com/group/comp.lang.python/browse_frm/thread/32dc95bd671542f3/">arrivée de Guido chez Google</a> il y a quelques temps, on pouvait s'attendre à quelque chose. Mais là l'impact est vraiment fort&nbsp;: on ne propose que Python (pour l'instant) car on croit en ce langage que l'on utilise. Sous-entendu&nbsp;: si vous apprenez Python on va probablement bien s'entendre... c'est un énorme coup de pouce&nbsp;!</p>


<p>Il faut bien sûr pondérer l'ensemble des commentaires négatifs que l'on peut lire un peu partout avec le nombre de développeurs web qui ont aujourd'hui entrepris de <a href="https://larlet.fr/david/biologeek/archives/20070212-bien-debuter-avec-django-le-framework-web-python-pour-les-perfectionnistes-presses/">se mettre à Django</a>, et <a href="https://larlet.fr/david/biologeek/archives/20060505-pourquoi-programmer-en-python/">par extension à Python</a>.</p>


<h3>REST</h3>


<p>Vous ne pouvez <a href="http://code.google.com/appengine/docs/urlfetch/overview.html">communiquer avec l'extérieur</a> qu'à travers une API <a href="https://larlet.fr/david/biologeek/archives/20070413-pour-ne-plus-etre-en-rest-comprendre-cette-architecture/">REST</a> et la base de donnée BigTable est accessible en REST aussi, du moins c'est ce que le nom des fonctions laisse présager.</p>


<h3>Les <del>microprojets</del> vaporwares</h3>


<p>Vous voulez faire un twitter en une nuit&nbsp;? Maintenant ça ne prend plus que quelques heures, de l'idée à la mise en ligne.</p>


<h2>C'est un jour noir pour...</h2>


<h3>Les petits hébergeurs</h3>


<p>Qui misaient sur Django et qui vont devoir revoir leurs choix et leur tarification. Google App Engine va devenir la page perso de Free sur laquelle chacun s'est essayé à PHP, pour survivre il va falloir se diversifier et offrir des services plus intéressants (App Engine reste quand même assez restrictif).</p>


<h3>OpenID</h3>


<p>C'est prévisible, <a href="https://larlet.fr/david/biologeek/archives/20070104-comment-utiliser-openid-la-solution-d-identification-tant-attendue/">OpenID</a> est loin d'être la priorité d'une entreprise dont le business model est l'information et même si <a href="http://openid-provider.appspot.com/">une application</a> est apparue très rapidement pour palier à ce manque, cet «&nbsp;oubli » est un choix délibéré, que l'on ne s'y trompe pas. L'alternative c'est d'utiliser <a href="http://code.google.com/appengine/docs/users/">les comptes Google</a>, on ne fait pas mieux en termes de décentralisation.</p>


<h3>La confidentialité de vos données</h3>


<p>J'ai déjà parlé du <a href="https://larlet.fr/david/biologeek/archives/20071202-gweb-peut-on-encore-rever-d-un-web-libre/">grand complot mondial</a>, tout ça, mais il faut quand même garder à l'esprit&nbsp;:</p>

<ul>
<li>que vous pouvez maintenant saisir des informations sur un site tiers qui sont ensuite stockées chez Google&nbsp;;</li>
<li>que Google est une entreprise devant se plier à la loi américaine en ce qui concerne la confidentialité des données&nbsp;;</li>
<li>que vous fournissez le code source de vos applications à Google, imaginez si Facebook était hébergé sur App Engine :-).</li>
</ul>

<p>Au final, <strong>je n'arrive pas du tout à cerner la cible de ce service</strong>. Les sites qui atteindraient la limite du paiement ont besoin d'avoir davantage de liberté au niveau de l'infrastructure et Google n'a pas (encore) assez de services pour être exhaustif à ce niveau. 95% des titulaires d'un compte ne vont pas aller plus loin qu'un «&nbsp;Hello world! ». Restent donc les idées rapidement mises en ligne sur App Engine (plus Concept que App finalement) et qui se retrouvent «&nbsp;piégées » lorsqu'elles atteignent une popularité financièrement intéressante pour Google (aucune mention de backup évoquée dans la documentation que j'ai lu). Ça fait léger.</p>


<p><strong>Je trouve la stratégie (apparente) de Google de plus en plus désordonnée avec une multitude de services isolés alors qu'il y aurait vraiment des choses intéressantes à faire en termes de cohérence utile à l'utilisateur final vu la masse d'information qu'ils brassent</strong>. Auraient-ils atteint la taille critique qui transforme chaque <a href="http://fr.wikipedia.org/wiki/300_(film)">Leonidas en Xerxès</a>&nbsp;?</p>


<p><strong>[edit du lendemain]</strong>&nbsp;: ça n'a pas traîné, Yoan a déjà codé une <a href="http://yoan.dosimple.ch/blog/2008/04/09/">alternative à App Engine reposant sur CouchDB</a>. Très fort.</p>


<p><strong>[edit du lundi]</strong>&nbsp;: la meilleure analyse que j'ai pu trouvé (en anglais)&nbsp;: <a href="http://www.dougma.com/archives/81">Google App Engine: The good, the bad, and the ugly?</a> (ironiquement c'est le titre que j'avais choisi pour ce billet au début :-)).</p>
