Aller au contenu
Tous les projets
Projet universitaire · 2024

Application e-commerce conteneurisée

Plateforme e-commerce en microservices pour une société cliente fictive : j'ai développé en Python les services de clients, de catalogue, de panier, de commande et d'expédition, puis connecté l'ensemble avec Docker.

Année
2024
Cadre
Projet de groupe, fin de BUT R&T
Mon rôle
Développement des services Python, tests unitaires et Docker
Technologies
  • Python
  • Flask
  • Kubernetes
  • Docker
  • OpenStack
  • NATS
Affiche du projet : un panier sur un motif d'hexagones

01 · Contexte

Le défi

SAÉ de troisième année de BUT Réseaux et Télécommunications, parcours Développement Système et Cloud : bâtir une plateforme e-commerce pour une société cliente fictive, RapidTrade Co., capable de grandir et d'absorber les pics d'activité de Noël ou du Black Friday. L'application compte onze microservices, qui communiquent en REST ou par messages NATS (partie d'une image Docker officielle de NATS, que l'équipe a configurée sans la redévelopper). Le portail Web, l'authentification, le paiement et l'envoi des courriels étaient fournis sous forme de conteneurs. Le reste était à développer : j'ai conçu en Python tous les services demandés, c'est-à-dire les clients, le catalogue de produits, le panier, la commande et l'expédition, je les ai connectés entre eux en local avec Docker, et j'ai écrit leurs tests unitaires. Le service de commande orchestre l'ensemble : il récupère le panier et le client, interroge le catalogue pour calculer le total, demande le paiement, puis publie la commande sur NATS pour que les courriels et l'expédition suivent, et vide le panier. Le déploiement sur un cluster Kubernetes de trois nœuds, installé sur des instances OpenStack derrière un pare-feu OPNsense, a été pris en charge par d'autres membres de l'équipe, qui travaillait en méthode agile, par sprints, avec un tableau de tâches GitLab.

02 · Architecture

Comment c'est construit

Schéma de la plateforme : les clients, le pare-feu OPNsense qui répartit la charge, le cluster Kubernetes avec sa passerelle, les services REST, leurs bases Postgres et Redis, et NATS qui relie la commande à l'expédition et aux courriels, avec le poste d'administration, le tout sur OpenStack
La plateforme : le pare-feu OPNsense, le cluster Kubernetes sur OpenStack, les microservices et NATS

Les points clés

  • Cinq microservices Python développés par mes soins : clients, catalogue, panier, commande, expédition
  • Services conformes à une spécification précise : API REST sécurisées par clé, métriques, variables d'environnement
  • Communication asynchrone par NATS (image officielle configurée) entre la commande, les courriels et l'expédition
  • Tests unitaires de chaque service, conteneurisation et assemblage local avec Docker
  • Déploiement par l'équipe sur Kubernetes, avec des instances OpenStack et un pare-feu OPNsense
  • Travail en équipe, en méthode agile

03 · En images

Galerie

Cliquer sur une image l'ouvre en plein écran, avec navigation entre les captures.

04 · Bilan

Ce que j'en retire

Le projet le plus complet de mon BUT : il a mis en pratique tout ce que j'avais appris en trois ans.