Avec des délais de réservation pouvant aller jusqu’à 5 minutes, Ryanair s’était retrouvée, en 2014, en avant dernière position dans l’étude de Siegel+Gale sur la satisfaction client ! A l’origine, d’importants problèmes en terme de performances et d’expérience utilisateur sur base de l’architecture mobile REST traditionnelle. En cause, la connectivité réseau intermittente couplée avec des problèmes de scalabilité… Un problème d’autant plus grave que le site de la compagnie attire plus de 3 millions d’utilisateurs mobiles !
«Nous avions de nombreux problèmes avec le site web et les apps mobiles, reconnaît Vladimir Atanasov, Lead Developer Android Team, Ryanair. Des problèmes de montée en charge, de temps de réponse et d’expérience utilisateur parce que nos apps mobiles ne fonctionnaient pas sans connectivité.» Un comble pour une entreprise qui vend 100% de ses billets en ligne !
En janvier 2015, Ryanair s’est même vue condamnée à une amende de 550 000 EUR par l’AGCM, l’autorité de la concurrence en Italie, parce que son service de support en ligne était excessivement cher pour n’apporter, au final, aucune solution aux usagers qui y avaient recours.
Seule approche possible : repenser entièrement sa stratégie web et mobile. Concrètement : adopter une approche centrée sur le mobile et réécrire intégralement les applications mobiles pour permettre de réaliser certaines opérations clés même en cas de perte de connectivité. «Les développeurs mobiles tendent à trop considérer la connexion Internet comme un bien acquis. Dans les faits, la connectivité est une chose très aléatoire; elle disparaît aussi rapidement qu’elle peut réapparaître. Or, la plupart des applications mobiles, et c’était clairement le cas des nôtres, ont des comportements erratiques lorsque la connexion disparaît ou ralentit significativement…»
Du NoSQL pour s’adapter au plus vite
Pour résoudre sa problématique, l’entreprise a cherché des solutions permettant un développement mobile plus agile et offrant des outils de synchronisation simples à mettre en œuvre pour résoudre les situations de perte de connectivité. Et de partir sur du NoSQL. «Nous n’avons plus à se soucier des schémas des bases, poursuit Vladimir Atanasov. Dans un environnement aussi dynamique, où le business impose parfois de tout repenser du jour au lendemain, les schémas sont un frein à l’agilité. Il faudrait sans cesse les modifier et gérer les migrations. Avec une base NoSQL, on se contente simplement de sortir de nouvelles versions des applications sans se laisser freiner par des schémas de base à l’ancienne. On peut tout stocker dans des documents JSON et les faire évoluer à volonté. On ne connait plus aucun des problèmes intimement liés aux bases de données relationnelles, on n’a plus de migration de bases à faire, etc.»
Le choix de Couchbase
Le choix NoSQL acté, il restait encore à faire le tri dans les solutions du marché. «Le fait que Ryanair ait décidé de jouer à fond la carte de la mobilité a fait pencher la balance pour Couchbase, reconnaît Vladimir Atanasov. Dans l’univers NoSQL, les acteurs à offrir une base mobile ne sont pas très nombreux. Couchbase est rapide et a une API simple à maîtriser qui existe à la fois en Java et Swift afin de couvrir Android et iOS. Outre la gestion des données en ligne et le stockage sur le device, sa passerelle de synchronisation nous permettait d’avoir le degré d’intégration entre les serveurs et les mobiles que nous recherchions. Couchbase possède une ‘sync gateway’ qui crée une copie locale de la base sur le device. Elle ajoute automatiquement des métadatas afin de gérer la synchronisation des documents lorsque la connexion Internet fonctionne et les conserver en cache local lorsque ce n’est pas le cas. La passerelle détecte automatiquement les conflits et fournit une API pour les gérer ».
Une adaptation rapide
L’approche NoSQL en matière de gestion des données a beau être très orientée développeur (en reportant l’essentiel de l’intelligence au niveau de l’application et non plus de la base elle-même), elle impose un changement de pratiques et d’appréhension du stockage. «Très vite, nous avons commencé à utiliser intensivement Couchbase dans nos développements mobiles. Ça a été la bonne décision», affirme Vladimir Atanasov.
L’adoption de Couchbase a non seulement permis à Ryanair de redévelopper très rapidement son application, mais aussi de réaliser une application beaucoup plus réactive et plus agréable à l’usage. Pour l’utilisateur, toute l’expérience de réservation du billet s’est accélérée passant de cinq minutes à moins de deux minutes. L’application est plus rapide, plus réactive, fournit des fonctionnalités hors ligne et économise le forfait data de l’utilisateur : «Grâce à Couchbase, nous économisons 80 Go par jour de transferts entre les mobiles et notre réseau», explique Vladimir Atanasov.