L'architecture microservices est une approche de la construction de systèmes logiciels où l'application se compose de petits services isolés, chacun étant responsable d'une tâche commerciale spécifique, développé et déployé indépendamment des autres.
Avantages :
Inconvénients :
Exemple de maquette REST d'un microservice en Python (Flask) :
from flask import Flask, jsonify app = Flask(__name__) @app.route('/user/<int:user_id>') def get_user(user_id): return jsonify({"user_id": user_id, "name": "Ivan"}) if __name__ == "__main__": app.run(port=5001)
Caractéristiques clés :
Les microservices peuvent-ils fonctionner sur une seule base de données ?
C'est acceptable lors de la migration depuis un monolithe, mais cela contredit l'idéologie, car chaque service doit stocker ses propres données séparément pour minimiser les dépendances et assurer l'indépendance de l'évolution.
Est-il obligatoire d'utiliser Docker pour l'architecture microservices ?
Non, Docker facilite le déploiement et l'isolation, mais les microservices peuvent être réalisés sans conteneurisation, en utilisant par exemple des machines virtuelles ou même des serveurs physiques distincts.
Que se passe-t-il si le contrat API entre les services est cassé, mais que tout est vert dans le pipeline CI/CD ?
Une défaillance dans le contrat API entraînera des erreurs d'interaction entre les services, qui ne peuvent être détectées que par des tests d'intégration. Un build vert dans CI/CD ne garantit pas que les différentes versions des services sont compatibles entre elles.