20120402 nantes gtug - app engine

Post on 25-May-2015

1.489 views 4 download

Transcript of 20120402 nantes gtug - app engine

Booster votre startup avec Google AppEngine

Jerome Mouton@jlmoutonjerome.mouton@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?