Popafood

Popafood

Popafood est une startup créée en 2021 qui oeuvre dans le domaine de la FoodTech. Elle propose des boxes de cuisine équipés et connectés qu’elle loue clé en main à des restaurateurs professionnels.

Besoin

Si l’offre proposée par Popafood intègre bien évidemment une composante matérielle, elle inclut également un package logiciel conséquent. En effet, au cœur du dispositif se trouve une tablette Android qui permet à chaque restaurateur de recevoir en temps réel et de manière agrégée ses commandes et cela quelque soit le canal depuis lequel elles ont été passées : Uber Eats, Deliveroo, bornes et application mobile Popafood.

Un flux de travail (workflow) d’une précision millimétrique pilote les interactions entre les différentes parties prenantes (cuisiniers, livreurs, runners, consommateurs…). Ainsi, le processus démarre lorsqu’un client passe commande sur une borne ou sur son mobile. Le paiement de cette commande, par carte Visa, Mastercard (physique ou virtuelle) ou titre restaurant, déclenche sa visibilité en cuisine. Ensuite, le cuisinier dispose de quelques minutes pour vérifier la présence des ingrédients et accepter sa mission, dans le cas contraire le rejet de la commande aboutit à son remboursement immédiat. Une fois le plat confectionné, c’est au tour des livreurs et runners d’entrer en scène ; jusqu’à la livraison finale, les consommateurs peuvent suivre en temps réel l’évolution des préparatifs.

C’est sur la base de ces « user stories » que nous sommes intervenus sur le projet pour concevoir et développer l’intégralité de la plateforme logicielle.

Solution

Nous avons dans un premier temps construit la partie back à l’aide de plusieurs microservices, implémentés en Java 17 avec le framework Quarkus. Ceux-ci exposent assez classiquement une API REST et/ou communiquent en asynchrone au travers d’un cluster Kafka. La particularité, et une des sources de complexité de la plateforme, est représentée par les nombreuses connexions à des systèmes externes : flottes de coursiers partenaires, plateformes de paiement, Uber Eats, Deliveroo…

L’éventualité qu’un des appels à ces services échoue doit bien évidemment être prise en compte, le système se doit d’être résilient et tolérant aux pannes. Heureusement Quarkus dispose de fonctionnalités à ce niveau là, notamment via une implementation d’Eclipse MicroProfile Fault Tolerance. La garantie « at least once » que Kafka est en mesure d’offrir nous a également été très utile.

Côté front, les challenges techniques étaient également bien présents. Un sujet qui nous a accaparé beaucoup de temps a été la capacité des applications front à réagir avec un minimum de latence possible. Comme expliqué plus haut, différents profils d’utilisateur se livrent à un ping-pong où les actions des uns doivent être notifiées aux autres afin qu’ils agissent en conséquence. Pour remplir cette exigence nous avons développé une solution autour des technos SSE (Server-Sent Events), Firebase Cloud Messaging et toujours notre cluster Kafka pour faire circuler les informations entre les microservices.

En conclusion, l’architecture de Popafood est résolument moderne : grande hétérogénéité des technologies employées, redondante et réactive.

Transgourmet

Transgourmet

Leader sur le secteur des grossistes alimentaires, le groupe Transgourmet France est unique de par son offre étendue couvrant les besoins en produits ambiants, frais, surgelés et produits d’hygiène.

Besoin

Le groupe Transgourmet met à la disposition des ses clients l’extranet e-commerce « e-Gourmet« . Ce dernier leur propose l’ensemble du catalogue produits en commande en ligne.

Cet extranet s’appuie sur le moteur de recherche et d’indexation Elasticsearch déployé en cluster.

L’objectif était de réaliser un audit et une expertise du cluster au niveau de sa configuration afin d’en optimiser son administration et exploitation ainsi que les performances des requêtes proposées aux clients de la plateforme e-commerce.

Solution

Notre expertise a démarré par une étude de l’existant, avec une analyse fouillée du paramétrage des clusters, index, machines virtuelles et logs.

Cette analyse approfondie nous ayant permis de réaliser un diagnostic clair, aussi bien au niveau logiciels que systèmes, nous avons ensuite proposé un ensemble de recommandations et préconisations pour l’amélioration de la configuration et de l’exploitation des clusters Elasticsearch.

Ainsi le contexte technique était le suivant: Elasticsearch, Kibana, ILM, Cerebro, Analyzers, function_score, Docker, Red Hat Enterprise Linux, VMWare…

Newrest

Newrest

Avec 29 500 collaborateurs répartis dans 57 pays, le groupe Newrest est un des leaders mondiaux du catering multi secteurs. Les spécificités des métiers du groupe conduisent sa DSI à développer et à déployer ses propres solutions métier. L’une d’entre elles a été baptisée Winrest, il s’agit d’une solution de gestion de restauration collective aujourd’hui déployée à travers le monde.

Besoin

Le besoin initial était de participer aux nouveaux développements de la solution Winrest avec notamment le développement d’une nouvelle application ayant pour objectif de doter les compagnies aériennes d’un système de vente à bord.

L’objectif était donc de participer à chacune des phases de ce nouveau projet : conception, développement et mise en production sur site(s).

Solution

Lors de notre intervention, nous nous sommes beaucoup impliqués dans l’analyse fonctionnelle auprès des chefs de projets. Une fois le périmètre fonctionnelle bien identifié ensemble, une grande latitude nous a été laissée pour son implémentation, aussi bien côté back-end que front-end.
Les choix technologiques ont été faits en collaboration avec les architectes de Newrest afin de rester cohérent avec leurs bonnes pratiques.
Ainsi le contexte technique était le suivant:

  • pour la partie back-end : C#, .NET, SQL Serveur, JWT, Entity Framework, ASP.NET,
  • pour la partie front-end : Blazor, Javascript, jQuery et Bootstrap
  • pour la forge logicielle : DevOps / TFS, Azure