20120402 nantes gtug - app engine
TRANSCRIPT
Booster votre startup avec Google AppEngine
Jerome [email protected]@snapengage.com
Un peu d’histoire, IaaS, PaaS et AppEngine
Présentation de la plateforme, les API et services
Bonnes pratiques
Bye bye les aprioris
Agenda
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
Dimensionner est difficile
Dimensionner est difficile
Dimensionner est difficile
Dimensionner est difficile
Dimensionner est difficileLoad balancer
Dimensionner est difficileLoad balancer
Google AppEngine: une APaaS
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
Services spécialisés
Java runtime
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
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
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
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
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
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);
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
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
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
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
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
Dimensionnement automatique (scalability) sans effort
Permet a votre startup de se concentrer sur ce qui est important
Plateforme AppEngine est maintenant robuste
Conclusion
Démo rapide du dashboard AppEngine
Démo rapide de la API Console
Petit tour dans Eclipse et le GAE plugin
Questions?