Publié le 21 avril 2020, mis à jour le 7 avril 2022.
L’économie subit de plein fouet la crise liée à l’épidémie Covid-19. Pour soutenir les entreprises, le Président Emmanuel Macron annonce le déblocage par l’État de 300 milliards d’euros de prêt. Le vendredi 20 mars, c’est Bpifrance qui est chargée de la mise en place du dispositif de Prêt garanti par l’État, et donc de la construction de sa plateforme en ligne. Elle doit être prête le mercredi 25 mars… 5 jours.
Pour relever ce défi Bpifrance fait appel à 3 entreprises du groupe Theodo : Padok pour l’infrastructure, Sipios pour les développements et BAM pour l’UX-Design.
Récit d’une aventure folle, et de la manière dont Padok a construit en 5 jours l’infrastructure d’une plateforme qui peut tenir 500 000 demandes de prêts par heure !
Les enjeux de l’infrastructure
L’application web de Prêt garanti par l'État est la réponse du gouvernement à la crise économique qui frappe les entreprises françaises. Par conséquent :
- Elle ne doit jamais être indisponible et soutenir 500 000 demandes de prêts par heure. Les entrepreneurs français sont dans une situation difficile et les démarches pour leur permettre de tenir le coup doivent être facilitées au maximum. Cela signifie encaisser des pics de trafic de 3 millions de vues en 5 min sur le frontend et de 50 000 requêtes en 1 min pour le backend.
- Elle doit être imperméable et totalement sécurisée. Dès son lancement l’application bénéficie d’une intense campagne de communication de la part du gouvernement et de promotion dans les médias. Son rôle clé et sa visibilité en font une cible privilégiée pour les cyber-attaques*.
Il ya 5 contraintes à respecter :
- Timing : 5 jours pour livrer l’infrastructure ;
- Télé-travail : le respect du confinement passe avant tout, l’équipe a travaillé en remote ;
- Souveraineté : toutes les données doivent être hébergées en France ;
- Confidentialité : secret absolu en dehors de l’équipe projet ;
- 9 développeurs : Sipios et Theodo développent des fonctionnalités en parallèle, ils ne doivent en aucun cas être ralentis par l’infrastructure et doivent obtenir des réponses à leurs demandes en temps réel.
Notre stratégie
Pour réussir un tel projet, il faut 4 ingrédients : les bonnes personnes, les bonnes technologies, la bonne organisation et les bons partenaires.
La bonne équipe
Nous avons constitué notre équipe d’ops, Rémi, Emmanuel et moi-même, selon les critères suivants :
- Une équipe resserrée, pas plus de 3 personnes ;
- Uniquement des séniors, experts AWS et Kubernetes ;
- Rassemblant les 3 spécialisations indispensables : CI/CD, sécurité, tests de montée charge ;
- Avec des caractères complémentaires : un Ops qui prend naturellement beaucoup de recul pour voir le projet dans sa globalité et un Ops “fonceur” capable de faire des choix rapides.
Lucas, coach agile chez Padok, complète la team pour l'aider à gérer la pression.
La bonne stack
Pour ce projet, la bonne stack techno est celle qui permet d’aller vite, de tenir la charge attendue le jour J et de mettre les développeurs dans les meilleurs conditions :
- Aller vite, très vite :
- Ne pas réinventer la roue et utiliser des services managés d’AWS, le cloud provider de Bpifrance, par exemple : Cognito et SES ont permis aux développeurs de ne pas avoir à coder un système d’authentification ;
- Utiliser nos ressources internes, par exemple les modules et des layers Terraform réutilisables issus de la bibliothèque Padok.
- S’appuyer sur les meilleures technologies du marché :
- Kubernetes (EKS) côté backend pour encaisser les pics de trafic, sans oublier la diminution du nombre de serveurs lors des décrues ;
- Un CDN (Cloudfront) côté frontend afin d’avoir une performance maximale
- Le framework Gatling pour écrire et réaliser des tests de montée en charge sur l’ensemble de l’application web.
- Aider les développeurs à produire vite:
- Déploiement en un clic et en moins de 5 minutes avec Gitlab pour recetter chaque changement de code rapidement ;
- Diagnostic rapide de l’origine d’un bug grâce au requêtage des logs dans des dashboards Datadog ;
- Validation des entrées en base grâce à un outil de BI.
La bonne organisation
Prioriser les bonnes tâches techniques et se donner de la visibilité en temps réel sur les blocages rencontrés... voilà la clé du succès.
- Priorisation des “macros”, 2 exemples :
- Les tests d’intrusion doivent être effectués idéalement sur un environnement de production : nous avons donc construit cet environnement en premier pour démarrer les pentests dès le lundi matin. Le staging a été déployé dans un second temps, une fois l’environnement de production éprouvé.
- Les tests de montée en charge doivent être réalisés aussi tôt que possible car ils peuvent entraîner des changements applicatifs et des modifications d’infrastructure. Ainsi, la première route API codée est représentative de l’application et fait une insertion dans la base de données. Si l’application tient la charge attendue sur cette requête nous sommes alors confiant sur la scalabilité de l’application au global. Grâce à cela, le scaling de la plateforme est validé dès le samedi soir.
- Organisation à la journée millimétrée :
- Un point d’avancée avec un membre de l’équipe de développement a lieu tous les jours à 10h, 14h, et 18h
- Un channel vocal est ouvert sans interruption de 8h à 21h pour échanger sur n’importe quel sujet technique et ainsi simuler un open space ;
- Un Kanban est piloté à l’heure pour le suivi des tâches. Il permet de “sortir la tête de l’eau” et de se faire aider au plus vite à chaque problème.
Les bons partenaires
Impliquer les bons partenaires évite le rework et permet de bénéficier de leurs compétences :
- Le pôle digital Bpifrance : toutes les décisions projets (stratégies techniques, priorisation) sont documentées, et validées en temps réel par la direction du digital ;
- L’Agence Nationale de la Sécurité des Systèmes d’Information (ANSSI) : L’ANSSI réalise un audit de la plateforme et des tests d’intrusion ;
- Amazon Web Services (AWS) : AWS met à disposition un expert dédié au projet disponible soir et week-end afin de répondre à toutes les questions que l’équipe Padok peut avoir et ainsi nous permettre d’aller le plus vite possible.
Lancement de la plateforme
Le mercredi 25 mars (et après quelques nocturnes !) la plateforme de Prêt garanti par l'État est prête dans les délais et Bruno Le Maire peut en annoncer le lancement via son compte LinkedIn et dans les médias :
Dans le même temps, une campagne de publicité est diffusée à la télévision et à la radio pour prévenir les entreprises de la mise en place du dispositif :
Voilà maintenant 3 semaines que l’application web a été lancée, et avec un peu de recul, nous sommes très fiers de constater que :
- Aucun downtime n'a eu lieu depuis le lancement ;
- Dès le premier jour, 1 milliard d’euros de Prêt garanti par l’État ont été demandés ;
- Aucune vulnérabilité n’a été détectée par l’ANSSI ;
- Un mois après le lancement, 250 000 entreprises avaient reçu un pré-accord de prêt, pour un montant total de 38 milliards d’euros.
Nicolas Dufourcq, DG de Bpifrance déclarait le 15 avril“La montée en puissance du dispositif est très forte et extrêmement rapide”. La mission a donc été accomplie avec succès, et à son échelle Padok a pu contribuer à aider des milliers d’entreprises françaises à tenir le choc. Nous en sommes très heureux.
Merci à tous ceux qui ont rendu possible cette grande réussite :
- À Sébastien Monchamps et Matthieu Heslouin, de Bpifrance, pour nous avoir fait confiance pour ce projet et nous avoir accompagnés à chaque instant de ces 5 jours épiques ;
- À l’équipe Cloud Center of Excellence Bpifrance dirigée par Alain Duval pour l’accostage au sein du SI Bpifrance ;
- A nos partenaires Sipios et Theodo pour le développement web, et BAM pour l'UX-Design ;
- À Fabien Schvartz, Lotfi Mouhib et Cyril Parisot d’AWS, pour leur accompagnement sur mesure et leur réactivité, y compris le soir et le week-end !
*Dans un souci de sécurité et de confidentialité évident, aucune information plus précise liée au dispositif de sécurité ne peut être communiquée dans cet article