Basé sur un cas réel dans la presse quotidienne régionale, cette présentation vous montrera quels sont les principes d'architecture à respecter pour concevoir et maintenir un parc d'applications mobiles natives iOS / Android / Windows Phone 8. Nous verrons les différentes étapes de la construction d'un socle commun et générique, résistant à la charge et évolutif. Nous parlerons également des solutions hybrides, de la gestion server-side, de la prise en compte du réseau mobile et des difficultés rencontrées.
2. Groupe Sud Ouest : 34 sociétés
• Groupe Sud Ouest
• Journaux du midi
3.
4. 90 millions de pages vues apps en septembre 2014
300 000
6 000 000
8 000 000
3 600 000
26 000 000
48 000 000
Sud Ouest
Midi Libre
La république des Pyrénées
L'indépendant
Charente Libre
Centre Presse Aveyron
Actu locale
Actu thématique
Journal en PDF
24. Les scénarios possibles
• Mettre l’actu du mondial pendant 1 mois
• Lien vers un formulaire de feedback en home
• Modifier la hiérarchie de l’information
• Retirer une fonctionnalité buggée
30. Approche REST
• pur REST : ❤️ en théorie
• Complexité et contraintes fortes
• Parc interne maîtrisé : on peut optimiser
31. Nos pratiques REST
• 99% de GET
• n° de version dans l’URL
• Clé d’API dans l’url
• Paramètres en GET plutôt que POST
• Parle HTTP : 200 / 304 / 403 / 404 / 500
33. Cache local
• Cache First / Offline
• Requête en arrière plan
• Refresh à la volée
• Importance du HTTP : 304 / E-Tag
34. Start de l’app
• On veut des utilisateurs à jour
• A chaque mise à jour, on vide le cache local et on
force le download des fichiers de base
• Fichier de config
• Assets
• Lors des autres lancements, 3 secondes en temps
limite (=> marche mieux sur iPhone)
36. Un reverse proxy ?
• Proxy : transmet les requêtes d’un client
• Proxy inverse : transmet les requêtes à un serveur
interne - peut être intelligent -
Apache
api.sudouest.frvarnish
GET /article/12345 cache miss GET /article/12345GET /article/12345 cache hit
37. Reverse Proxy
• 99% traffic anonyme : Exemple GET /home
Apache
500 500
max-age 60 : 1 par minute
e-tag : 304
varnish
500 1
max-age 60
e-tag
max-age 60
e-tag
• Dumb Server / 500 mbits - 1 Gbits / 32 - 64 Go
• Tout en RAM, Cluster
45. Charles dans la vie
• « Le serveur retourne bien les nouvelles
données »
• « L’Ad server retourne 200 / NO FILL »
• « je suis chez FREE » (Throttling Orange)
• Infrastructure KO
54. Fonctionnement
• Instrumente chaque appel réseau
• Instrumente le temps passé dans les activités
principales
• Ajoute son code au moment de la compilation du
projet
61. Build : processus
• JENKINS en post-commit sur GIT
• iOS : build inhouse (entreprise) et adhoc
• Tests à 90% sur la inhouse.
• Fin de recette sur adhoc (peu de devices)
• Mise en prod manuelle
• Android : 1 version build avec le certificat de
production. Si recette OK => publication
62. En conclusion
• Avoir le pouvoir depuis le serveur : « tirer un fil »
• Contenu responsive hybride et adaptatif
• Penser les futures extensions de l’app : o-auth,
webview, deeplink
• Monitoring actionnable
• Automatiser la génération