PHP, MySQL, Symfony, Assurance, Assurance santé animal, Développeur, BackEnd, Lyon, Support
Jese Leos

Micro-Services : Déportation de Code PHP en Python sous AWS

Introduction

Les micro-services sont devenus une architecture clé pour moderniser et déployer des applications. Dans le cadre de notre projet, ils ont été mis en place pour déporter du code PHP vers Python en utilisant les services cloud d'AWS. Cette approche permet de créer un code plus épuré et plus facile à maintenir, chaque micro-service étant décomposé en différentes step-functions qui effectuent des actions bien précises.

Exemple de Micro-Service

Un exemple concret de micro-service que nous avons implémenté est la génération de fichiers XML contenant des données pour les envoyer via une API afin de créer des fichiers (mail ou papier). Ce processus est divisé en plusieurs step-functions :

  • Récupération des Variables : La première step-function récupère toutes les variables nécessaires, certaines via des requêtes SQL et d'autres calculées en Python.
  • Conversion des Données : La deuxième step-function prend les variables fournies par la première, et les convertit dans un format précis, XML dans notre cas.
  • Envoi via Gateway : La troisième step-function s'occupe d'envoyer les données présentes en XML au logiciel final via une gateway.

Difficultés Rencontrées

Le développement de ces micro-services a présenté plusieurs défis :

  • Maîtrise des Environnements AWS : La montée en compétence sur la partie AWS a été nécessaire, incluant l'apprentissage de services comme Lambda, S3, et Step Functions. Une formation gratuite sur la plateforme a été suivie pour se familiariser avec ces outils.
  • Utilisation d'une CI/CD : L'intégration et le déploiement continus (CI/CD) pour les développements de micro-services ont également requis des compétences supplémentaires pour comprendre et maîtriser les pipelines de déploiement.

Conclusion

Travailler sur les micro-services pour déporter du code PHP en Python sous AWS a été une expérience très enrichissante. Cela m'a permis d'apprendre et de travailler avec des technologies modernes telles qu'AWS, CI/CD et Python. La modularité apportée par les step-functions facilite non seulement le développement, mais aussi la maintenance et l'évolution des applications, rendant le processus de déploiement plus agile et efficace.