Des erreurs Docker à la mise en production : création d'un pipeline CI/CD de microservices PHP

DEV - 13/01
Introduction Avez-vous déjà eu l'impression que Docker Compose conspirait contre vous ? Ou que GitHub Actions avait un...

Introduction

Avez-vous déjà eu l'impression que Docker Compose conspirait contre vous ? Ou que GitHub Actions avait une vendetta personnelle ? J'y suis allé. C'est l'histoire de la façon dont j'ai transformé un enchevêtrement de microservices, de conflits de ports et de pannes CI/CD en un pipeline entièrement automatisé et prêt pour la production.

Ce qui a commencé comme un simple projet PHP s'est transformé en une plongée approfondie dans les pratiques DevOps, l'orchestration des conteneurs et l'automatisation. Voici mon parcours, complété par des extraits de code, des leçons douloureuses et des victoires durement gagnées.

Le projet : Architecture de microservices PHP

Objectif : créer une application de microservices PHP évolutive avec une automatisation complète CI/CD.

Empiler:

PHP 8.2 avec FPM pour les services backend Nginx comme proxy inverse et équilibreur de charge MySQL 8.0 et Redis pour la couche de données Docker Compose pour l'orchestration Actions GitHub pour CI/CD Prometheus + Grafana pour la surveillance Configuration des ports : 9000, 9001, 8081, 3000, 9090

Architecture:

Client → Nginx (8081) → API Gateway → Microservices ↓ Service utilisateur (9000) Service de commande de service produit ↓ Surveillance (9001, 9090, 3000)

*Les défis (alias « Ce...
[Courte citation de 8% de l'article original]

Loading...