Post on 02-Aug-2015
#backdaybyxebia
Alexandre Godet, Alexis Kinsella
Construire le SI de demain
Secrets de conception d’une application innovante au service des voyageurs
#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.
#backdaybyxebia
VSC TECHNOLOGIES, PÔLE D’EXCELLENCE TECHNOLOGIQUE DE VOYAGES-SNCF.COM
250COLLABORATEURS SERVEURS
14623 Sites
▼▼
▼PARIS, LILLE & NANTES UN PRA À SAINT DENIS
Présentation VSCT
#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
#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 Estimate
Quelques principes :
#backdaybyxebia
Composition de l’Equipe
1 ProductOwner1 ScrumMaster3 iOS3 Android5 Back2 Designers1 UX
#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 ?
#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,
...)
#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
● Amortissement des coûts d’exploitation via la
réutilisation des infrastructures internes
Pourquoi ré-internaliser un projet Cloud ?
#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
#backdaybyxebia
Architecture
Realtime
Account
Notification
Station Infos
ItineraryPlacesRef
Gux Events
Train Context
Train Events
Ter Events
Frequent Travel Events
#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
#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
#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 volatiles
● Répliquées pour une meilleure disponibilité
#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 l’application sur les stores
Choix du sous-domaine et création de l’environnement
#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)