20120402 nantes gtug - app engine

26
Booster votre startup avec Google AppEngine Jerome Mouton @jlmouton [email protected]

Transcript of 20120402 nantes gtug - app engine

Page 1: 20120402   nantes gtug - app engine

Booster votre startup avec Google AppEngine

Jerome [email protected]@snapengage.com

Page 2: 20120402   nantes gtug - app engine

Un peu d’histoire, IaaS, PaaS et AppEngine

Présentation de la plateforme, les API et services

Bonnes pratiques

Bye bye les aprioris

Agenda

Page 3: 20120402   nantes gtug - app engine

Serveurs dans co-location◦ Gestion du matériel◦ Administration système◦ Dimensionnement?

Plus de cables…

Virtual private servers (VPS)◦ Plus de matériel à gérer◦ Administration système◦ Dimensionnement complexe

Avant Google App Engine

virtual servers

Page 4: 20120402   nantes gtug - app engine

Dimensionner est difficile

Page 5: 20120402   nantes gtug - app engine

Dimensionner est difficile

Page 6: 20120402   nantes gtug - app engine

Dimensionner est difficile

Page 7: 20120402   nantes gtug - app engine

Dimensionner est difficile

Page 8: 20120402   nantes gtug - app engine

Dimensionner est difficileLoad balancer

Page 9: 20120402   nantes gtug - app engine

Dimensionner est difficileLoad balancer

Page 10: 20120402   nantes gtug - app engine

Google AppEngine: une APaaS

Page 11: 20120402   nantes gtug - app engine

Une boite pour le dev. cloud 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

Page 12: 20120402   nantes gtug - app engine

Services spécialisés

Page 13: 20120402   nantes gtug - app engine

Java runtime

Page 14: 20120402   nantes gtug - app engine

Datastore 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

Page 15: 20120402   nantes gtug - app engine

Taskqueues 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

Page 16: 20120402   nantes gtug - app engine

GWT 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

Page 17: 20120402   nantes gtug - app engine

Real time communication 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

Page 18: 20120402   nantes gtug - app engine

Nouvelles fonctionnalités 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

Page 19: 20120402   nantes gtug - app engine

Requêtes par ID de l’objet

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

Bonnes pratiques: Datastore

Chat currentChat = pm.getObjectById(Chat.class, chatKey);

Page 20: 20120402   nantes gtug - app engine

Gérer les exceptions AppEngine API◦ Datastore◦ Memcache◦ Xmpp◦ Etc.

Gérer les exceptions de la plateforme◦ DeadlineExceededException – error/retry◦ CapabilityDisabledException – maintenance

Bonnes pratiques: exceptions

Page 21: 20120402   nantes gtug - app engine

Utiliser services externes quand intéressant

Les services non-Google utilisés SnapEngage:◦ SendGrid - email◦ MaxMind - geo◦ ReportGrid / Precog - visualisation◦ Twilio - telephonie

Bonnes pratiques: API externes

Page 22: 20120402   nantes gtug - app engine

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

Bonnes pratiques: Support

Page 23: 20120402   nantes gtug - app engine

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

Mythe: Lock-in

Page 24: 20120402   nantes gtug - app engine

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

Mythe: Cout

Page 25: 20120402   nantes gtug - app engine

Dimensionnement automatique (scalability) sans effort

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

Plateforme AppEngine est maintenant robuste

Conclusion

Page 26: 20120402   nantes gtug - app engine

Démo rapide du dashboard AppEngine

Démo rapide de la API Console

Petit tour dans Eclipse et le GAE plugin

Questions?