Développement et déploiement d'une application conteneurisée

De quoi s'agit-il ?

Nous avons fait un projet en jeu de rôle.

Nous reprenions le projet d'une ancienne équipe de dev et devenions les nouveaux prestataires pour la société RapidTrade.

Cette application présentait déjà quelques services, comme le frontend et quelques APIs intermédiaires.

Il nous était demandé de finir cette application suivant une architecture de micro-services et de la déployer sur un cluster kubernetes en High Availability.

Pour ce faire, nous avons développés les micro-services manquants en python (des accès à des bases de données redis/pgsql, des appels d'APIs RESTful, de la communication via NATS), conteneurisés, déployés sur une infrastructure virtualisée OpenStack des machines virtuelles servant de noeuds k8s, un pare-feu OPNSense, un service-mesh pour relier le tout, la génération de certificats LetsEncrypt pour l'accès https gérés via CertManager ou l'OPNSense, des bases de données... Finalement, toute l'infrastructure et le code nécessaire pour finir cette application.

Nous avons déployés l'application via kustomize, mais il aurait été plus judicieux de passer par des charts helm.

Ce projet était fort enrichissant, on a enfin pu mettre en pratique la philosophie de conteneurisation et de HA dans un projet concret.

Il a été ensuite complété par le projet suivant d'intégration continue.

Ce que j'ai appris

  • La gestion d'une infrastructure kubernetes complète à la main
  • La mise en service d'applications conteneurisées dans un contexte réel
  • L'utilisation de bases de données Redis/Valkey
  • Une meilleure appréhension de la gestion de projets via kanban et forge git