#backdaybyxebia
Alexandre Godet, Alexis Kinsella
Construire le SI de demain
Secrets de conception d’une application
innova...
#backdaybyxebia
ALEXANDRE GODET
ALEXIS KINSELLA
En 2005, Alexandre Godet intègre le groupe Voyages-Sncf.com. En 2009, il
d...
#backdaybyxebia
Le projet
#backdaybyxebia
Application
officielle de la
SNCF
#backdaybyxebia
Réalisée par les
équipes
Voyages-Sncf
Projet
#backdaybyxebia
VSC TECHNOLOGIES, PÔLE D’EXCELLENCE
TECHNOLOGIQUE DE VOYAGES-SNCF.COM
250
COLLABORATEURS SERVEURS
14623 Si...
#backdaybyxebia
Présentation VSCT
VSC TECHNOLOGIES, DEUX MISSIONS COMPLÉMENTAIRES
GÉRER LES SYSTÈMES D’INFORMATION DE
VOYA...
#backdaybyxebia
Projet
Mise en production en février 2015
300 000 comptes utilisateurs
10 000 utilisateurs quotidien
#backdaybyxebia
Mode de fonctionnement
Equipe multi-compétente
Sprints de 2 semaines
Fonctionnement en Feature Team
No Est...
#backdaybyxebia
Composition de l’Equipe
1 ProductOwner
1 ScrumMaster
3 iOS
3 Android
5 Back
2 Designers
1 UX
#backdaybyxebia
Mode de fonctionnement
Mise en production
toutes les 2 semaines
#backdaybyxebia
Hosting
#backdaybyxebia
#backdaybyxebia
● Délais compatibles avec le planning du projet
● Provisionning à la demande des
environnements
● Concepti...
#backdaybyxebia
Hébergement sur le Cloud
Pros Cons
● Suivi et maîtrise des coûts
● IaaS éprouvé mondialement
● Disponibili...
#backdaybyxebia
La partie Ops gérée jusqu’à la production par l’
équipe de développement
DevOps
#backdaybyxebia
La ré-internalisation d’un projet mis
en production dans le Cloud est
possible
Légende urbaine
#backdaybyxebia
● Alignement avec la stratégie de sécurité VSCT
● Support des équipes de supervision et d’exploitation
● A...
#backdaybyxebia
Provisionning des
environnements par
images & scripting
Provisionning
#backdaybyxebia
Environnement technique
#backdaybyxebia
Polyglot Programming
+
+
#backdaybyxebia
Microservices
#backdaybyxebia
Microservices
Pros Cons
● Bases de code réduites
● Chaque composant à un rôle unique
● Meilleur séparation...
#backdaybyxebia
Architecture
Realtime
Account
Notification
Station Infos
ItineraryPlacesRef
Gux Events
Train Context
Train...
#backdaybyxebia
Continuous Delivery
+
#backdaybyxebia
Protocoles & sécurité
#backdaybyxebia
Protocoles
Realtime
HTTPS
WSS
HTTP
WS
#backdaybyxebia
Protocoles
Utilisation de bcrypt
Implémentation d’un dérivé
du protocole Hawk
#backdaybyxebia
Communication
#backdaybyxebia
Load Balancing
Une stratégie
adaptée à
chaque besoin
#backdaybyxebia
Load Balancing HTTP public
#backdaybyxebia
Pour et contre des ELB
Pros Cons
● Scalabilité infinie
● Support des terminaisons SSL
● Coût limité
● Moni...
#backdaybyxebia
Pour et contre des HAProxy
Pros Cons
● Très bon support des WebSockets
● Support des Healthchecks
● Monito...
#backdaybyxebia
Load balancing HTTP interne
AWS - Elastic Load Balancer
#backdaybyxebia
Dispatching de messages
Working
Queues
Broadcast
#backdaybyxebia
Les bases de données
#backdaybyxebia
1 base de données adaptée à
chaque besoin
Pas de base fourre-tout
Données
#backdaybyxebia
Bases de données
#backdaybyxebia
Bases de données
● Base de données shardée
● Commune à tous les environnements de production
#backdaybyxebia
Bases de données & Messaging
● Durée de vie des données liée à un environnement
● Données complètement vol...
#backdaybyxebia
+
Métriques
#backdaybyxebia
#backdaybyxebia
#backdaybyxebia
Gestion des versions
#backdaybyxebia
Une application n’est livrée qu’une
fois en production pour une
version donnée
Environnements
#backdaybyxebia
Environnements
Un environnement
unique du
développement à la
production
App
Goku
Sprint 31
Publication de ...
#backdaybyxebia
DNS & Versions
Goku (n) Trunk (n-1) Cell (n-2)
App Goku App CellApp Trunk
#backdaybyxebia
DNS & Rétro-compatibilité
Goku (n) Trunk (n-1) Cell (n-2)
App Goku App CellApp Trunk
#backdaybyxebia
Blacklisting
Goku (n) Trunk (n-1) Cell (n-2)
App Goku App CellApp Trunk
...
App Vegeta
...
(n-x
#backdaybyxebia
Monitoring & Alerting
#backdaybyxebia
#backdaybyxebia
Barking at daemons
MONIT
+
#backdaybyxebia
Monitoring des composants
#backdaybyxebia
Monitoring des middlewares & services tiers
#backdaybyxebia
Outils de test
#backdaybyxebia
Comment améliorer l’
architecture ?
#backdaybyxebia
Alternatives
+
#backdaybyxebia
Questions ?
Prochain SlideShare
Chargement dans…5
×

Back day - REX vsct - Secrets de conception d’une application innovante au service des voyageurs

766 vues

Publié le

Découvrez les dessous de la nouvelle application mobile SNCF. Quelles sont les solutions pour unifier des sources d’informations ? Comment donner à une équipe l’autonomie pour construire un produit, du besoin à sa mise en production ? Comment construire une architecture applicative qui répond à des exigences de scalabilité et de disponibilité ?

Nous proposerons de découvrir un retour d'expérience de mise en oeuvre sur Amazon Web Services d'une architecture à base de microservices reposant sur la JVM, Node.js et bien d'autres technologies telles qu'InfluxDB, Redis, MongoDB, RabbitMQ ou bien encore Elasticsearch. Mais également comment nous avons résolu des problématiques telles que le rolling update, la gestion de version et de rétro-compatibilité des API ou bien encore la redescende d'informations à l'initiative des serveurs grâce aux WebSockets.

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
766
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Back day - REX vsct - Secrets de conception d’une application innovante au service des voyageurs

  1. 1. #backdaybyxebia Alexandre Godet, Alexis Kinsella Construire le SI de demain Secrets de conception d’une application innovante au service des voyageurs
  2. 2. #backdaybyxebia ALEXANDRE GODET ALEXIS KINSELLA En 2005, Alexandre Godet intègre le groupe Voyages-Sncf.com. En 2009, il devient leader technique et assure la conception du site web grand public. Aujourd’hui passionné par l’agilité, il assure le rôle de Scrum Master dans une équipe aux compétences back et mobile. Alexis Kinsella est un consultant Xebia passionné aussi bien par les problématiques Front-end (web et mobile) que Back-end. Après de longues années passées sur les technologies Java, Alexis a fait d'iOS et Node.js ses nouveaux terrains d'expérimentation lui permettant d'explorer les architectures mobiles et ses problématiques associées.
  3. 3. #backdaybyxebia Le projet
  4. 4. #backdaybyxebia Application officielle de la SNCF
  5. 5. #backdaybyxebia Réalisée par les équipes Voyages-Sncf Projet
  6. 6. #backdaybyxebia VSC TECHNOLOGIES, PÔLE D’EXCELLENCE TECHNOLOGIQUE DE VOYAGES-SNCF.COM 250 COLLABORATEURS SERVEURS 14623 Sites ▼ ▼ ▼ PARIS, LILLE & NANTES UN PRA À SAINT DENIS Présentation VSCT
  7. 7. #backdaybyxebia Présentation VSCT VSC TECHNOLOGIES, DEUX MISSIONS COMPLÉMENTAIRES GÉRER LES SYSTÈMES D’INFORMATION DE VOYAGES-SNCF.COM MAINTENANCE DÉVELOPPEMENT DU SITE INTERNET ET DES APPLICATIONS ET OUTILS MOBILES PROPOSER SON EXPERTISE DE DISTRIBUTION DIGITALE FOURNIR DES SOLUTIONS TECHNOLOGIQUES MULTINET, WEB & MOBILE AU GROUPE SNCF (SNCF DIRECT, SNCF. COM, CARTES COMMERCIALES, CARTES DE FIDÉLITÉ, JUNIOR & COMPAGNIE, FIDELITE TER, etc.) VOYAGEUR
  8. 8. #backdaybyxebia Projet Mise en production en février 2015 300 000 comptes utilisateurs 10 000 utilisateurs quotidien
  9. 9. #backdaybyxebia Mode de fonctionnement Equipe multi-compétente Sprints de 2 semaines Fonctionnement en Feature Team No Estimate Quelques principes :
  10. 10. #backdaybyxebia Composition de l’Equipe 1 ProductOwner 1 ScrumMaster 3 iOS 3 Android 5 Back 2 Designers 1 UX
  11. 11. #backdaybyxebia Mode de fonctionnement Mise en production toutes les 2 semaines
  12. 12. #backdaybyxebia Hosting
  13. 13. #backdaybyxebia
  14. 14. #backdaybyxebia ● Délais compatibles avec le planning du projet ● Provisionning à la demande des environnements ● Conception d’environnements sur mesure pour répondre aux besoins du projet Pourquoi AWS ?
  15. 15. #backdaybyxebia Hébergement sur le Cloud Pros Cons ● Suivi et maîtrise des coûts ● IaaS éprouvé mondialement ● Disponibilité quasi sans faille ● Bonnes pratiques établies et connues ● Facilité de prise en main ● Facilité de trouver des ressources ayant déjà travaillé avec AWS ● Montée en compétence des équipes ● Pratiques de sécurité à connaître ● Public plus ou moins par défaut ● Complexité de mise en place d’ architectures avancées (Bastion, NAT, VPN et intégration avec le SI, ...)
  16. 16. #backdaybyxebia La partie Ops gérée jusqu’à la production par l’ équipe de développement DevOps
  17. 17. #backdaybyxebia La ré-internalisation d’un projet mis en production dans le Cloud est possible Légende urbaine
  18. 18. #backdaybyxebia ● Alignement avec la stratégie de sécurité VSCT ● Support des équipes de supervision et d’exploitation ● Amortissement des coûts d’exploitation via la réutilisation des infrastructures internes Pourquoi ré-internaliser un projet Cloud ?
  19. 19. #backdaybyxebia Provisionning des environnements par images & scripting Provisionning
  20. 20. #backdaybyxebia Environnement technique
  21. 21. #backdaybyxebia Polyglot Programming + +
  22. 22. #backdaybyxebia Microservices
  23. 23. #backdaybyxebia Microservices Pros Cons ● Bases de code réduites ● Chaque composant à un rôle unique ● Meilleur séparation des responsabilités ● Utilisation du langage approprié pour différents besoins ● Granularité de l’allocation de ressource ● Gestion facilité de la dette ● Complexification de l’architecture ● Déploiement manuel impossible (Un défaut ?) ● Aspect polyglotte des développements
  24. 24. #backdaybyxebia Architecture Realtime Account Notification Station Infos ItineraryPlacesRef Gux Events Train Context Train Events Ter Events Frequent Travel Events
  25. 25. #backdaybyxebia Continuous Delivery +
  26. 26. #backdaybyxebia Protocoles & sécurité
  27. 27. #backdaybyxebia Protocoles Realtime HTTPS WSS HTTP WS
  28. 28. #backdaybyxebia Protocoles Utilisation de bcrypt Implémentation d’un dérivé du protocole Hawk
  29. 29. #backdaybyxebia Communication
  30. 30. #backdaybyxebia Load Balancing Une stratégie adaptée à chaque besoin
  31. 31. #backdaybyxebia Load Balancing HTTP public
  32. 32. #backdaybyxebia Pour et contre des ELB Pros Cons ● Scalabilité infinie ● Support des terminaisons SSL ● Coût limité ● Monitoring ● Gestion des Healthchecks ● Configuration par console ● Warm up par ticket ● Mauvais support des WebSockets
  33. 33. #backdaybyxebia Pour et contre des HAProxy Pros Cons ● Très bon support des WebSockets ● Support des Healthchecks ● Monitoring & Alerting ● Commandes d’administration scriptables ● Gestion du serveur ● Pas d’auto-scaling automatique ● RoundRobin DNS
  34. 34. #backdaybyxebia Load balancing HTTP interne AWS - Elastic Load Balancer
  35. 35. #backdaybyxebia Dispatching de messages Working Queues Broadcast
  36. 36. #backdaybyxebia Les bases de données
  37. 37. #backdaybyxebia 1 base de données adaptée à chaque besoin Pas de base fourre-tout Données
  38. 38. #backdaybyxebia Bases de données
  39. 39. #backdaybyxebia Bases de données ● Base de données shardée ● Commune à tous les environnements de production
  40. 40. #backdaybyxebia Bases de données & Messaging ● Durée de vie des données liée à un environnement ● Données complètement volatiles ● Répliquées pour une meilleure disponibilité
  41. 41. #backdaybyxebia + Métriques
  42. 42. #backdaybyxebia
  43. 43. #backdaybyxebia
  44. 44. #backdaybyxebia Gestion des versions
  45. 45. #backdaybyxebia Une application n’est livrée qu’une fois en production pour une version donnée Environnements
  46. 46. #backdaybyxebia Environnements Un environnement unique du développement à la production App Goku Sprint 31 Publication de l’application sur les stores Choix du sous-domaine et création de l’environnement
  47. 47. #backdaybyxebia DNS & Versions Goku (n) Trunk (n-1) Cell (n-2) App Goku App CellApp Trunk
  48. 48. #backdaybyxebia DNS & Rétro-compatibilité Goku (n) Trunk (n-1) Cell (n-2) App Goku App CellApp Trunk
  49. 49. #backdaybyxebia Blacklisting Goku (n) Trunk (n-1) Cell (n-2) App Goku App CellApp Trunk ... App Vegeta ... (n-x
  50. 50. #backdaybyxebia Monitoring & Alerting
  51. 51. #backdaybyxebia
  52. 52. #backdaybyxebia Barking at daemons MONIT +
  53. 53. #backdaybyxebia Monitoring des composants
  54. 54. #backdaybyxebia Monitoring des middlewares & services tiers
  55. 55. #backdaybyxebia Outils de test
  56. 56. #backdaybyxebia Comment améliorer l’ architecture ?
  57. 57. #backdaybyxebia Alternatives +
  58. 58. #backdaybyxebia Questions ?

×