Construction · Belgique
Site d'une entreprise générale du bâtiment
En productionSoftware Engineering · DevSecOps
Contexte
Une entreprise générale du bâtiment en Belgique veut un site multilingue qui génère des demandes : formulaire de contact, prise de rendez-vous et réponses immédiates aux questions courantes.
Problème et contraintes
- Des formulaires et un assistant qui doivent fonctionner en continu : chaque panne coûte des prospects.
- Des incidents répétés liés à la base de données hébergée chez un fournisseur tiers.
- Un client qui veut garder la maîtrise de ses données et de ses coûts.
Décisions d'architecture et compromis
- Assistant conversationnel intégré au site, puis basculé vers un LLM auto-hébergé : souveraineté des données et coût maîtrisé, au prix d'un service supplémentaire à opérer.
- Envoi d'e-mails par SMTP plutôt que par un fournisseur SaaS, avec sa propre décision d'architecture.
- Schéma de base de données versionné : 12 migrations, avec règles d'accès au niveau des lignes (RLS) et triggers.
- Chaque incident est tracé dans un backlog (plus de 50 entrées) et relié à la décision qu'il a provoquée.
Sécurité et livraison
- Pipeline Jenkins : gates qualité, build et push d'image, ouverture ou mise à jour automatique de la PR, resynchronisation avec la branche principale et nouvelle vérification avant merge.
- Le déploiement en production attend une approbation humaine explicite.
- Versionnage SemVer : 11 versions taguées, la dernière en v2.4.0.
Résultats et état actuel
- En production, assistant conversationnel compris.
- Une suite de 12 tests de bout en bout exécutée contre le site en production ; 24 fichiers de tests (Vitest, Playwright).