Sous le capot
Le catalogue, le panier et le paiement que vous utilisez ici tournent sur la pile décrite ci-dessous, sans rien cacher. PrestaShop, PrettyBlocks et les modules sont épinglés dans le dépôt, PHP et nginx suivent leur version mineure, et tout est reconstruit à chaque déploiement.
Cinq couches, une boutique.
Faites défiler : la boutique se démonte couche par couche, de l’infrastructure jusqu’à la page que vous lisez.
-
Infrastructure
OVHcloud Public Cloud, région 3-AZ de Paris : un cluster Kubernetes réparti sur trois zones de disponibilité.
-
Déploiement
Deux images, php et nginx, construites avec Kaniko. FluxCD met le cluster à jour dès qu’un nouveau tag paraît.
-
Données
MariaDB, pilotée par un opérateur Kubernetes, et des volumes persistants pour les images et les fichiers clients.
-
Application
PrestaShop 9.2.1, édition communautaire au cœur non modifié, sur PHP 8.5 en FPM avec OPcache.
-
Front
Hummingbird et son thème enfant, des pages composées en blocs PrettyBlocks, des web components sans framework.
La pile complète.
Chaque ligne correspond à un composant réellement utilisé.
- PrestaShop 9.2.1, édition communautaire
- PHP 8.5 en FPM, image Alpine
- OPcache, 192 Mo, sans revalidation des fichiers
- Symfony, socle du back-office et du cœur
- MariaDB, pilotée par un opérateur Kubernetes
- Volumes persistants pour les images et les fichiers clients
- Hummingbird en thème parent
- Un thème enfant écrit pour la boutique
- PrettyBlocks 3.2.1 pour les pages
- Web components, sans framework JS
- Vite pour le build
- Polices Phudu et Geist auto-hébergées
- Umami pour la mesure d’audience, sans cookie
- Tunnel de commande sur une page, celui de PrestaShop 9.2
- PayPlug pour la carte
- Virement bancaire
- Colissimo pour les expéditions
- OVHcloud Public Cloud, région 3-AZ de Paris
- Cluster Kubernetes réparti sur trois zones de disponibilité
- nginx 1.29 en image non privilégiée
- Deux images, php et nginx, construites avec Kaniko
- FluxCD pour le déploiement GitOps
- GitLab CI à chaque fusion
- PHP CS Fixer, règles PSR-12
- PHPStan niveau 3
- Playwright pour les parcours de bout en bout, lancés en local
Du commit à la boutique.
Personne ne se connecte au serveur pour modifier un fichier : tout passe par le dépôt.
-
1
GitLab Merge request
Ouverte en brouillon, relue et fusionnée par un humain.
-
2
CI Lint
PHP CS Fixer, PHPStan et build du thème.
-
3
Kaniko Images
Une image php, une image nginx, taguées d’un horodatage.
-
4
FluxCD Déploiement
Le cluster repère le nouveau tag et se met à jour.
-
5
Kubernetes Installation
Un Job rejoue les seeds et les mises à jour de modules.
Quatre décisions qui structurent le projet.
Le dépôt ne contient que le thème, les modules et l’outillage. Le cœur est épinglé dans le Dockerfile et n’est jamais modifié.
Accueil, fiches produit et cette page sont des blocs PrettyBlocks, modifiables dans le back-office sans développeur.
Catalogue, pages et réglages sont du code rejoué à chaque déploiement, sans écraser ce qui a été édité à la main.
Les clés de paiement, de base et d’envoi d’e-mails sont chiffrées avec SOPS et ne sont lues que par le cluster.
Ce qu’on nous demande sur la stack.
Où sont hébergées les données ?
En France, chez OVHcloud, sur la région 3-AZ de Paris : le cluster Kubernetes est réparti sur trois zones de disponibilité, distantes d’environ 30 km. L’application et la base de données y tournent chacune en une seule réplique.
Le thème de cette boutique est-il à vendre ?
Non : c’est un thème enfant de Hummingbird écrit pour cette boutique. Ses pages sont composées de blocs PrettyBlocks, modifiables dans le back-office.
Puis-je avoir la même chose sur ma boutique ?
Les modules et l’hébergement sont dans la boutique. Pour le reste, l’agence vous dit ce qui a du sens sur votre projet.