Comment construire un microservice en Python

La conception d’un logiciel est une phase essentielle de son développement. L’approche de la conception peut affecter l’ensemble du projet et la façon dont vous traitez les différentes exigences.

Les développeurs ont souvent utilisé une architecture monolithique, regroupant tous les composants logiciels dans un seul module. Toutefois, cette approche peut s’avérer inefficace, en particulier pour les applications de grande envergure.

Les microservices visent à remédier à ces limitations. Un microservice est une petite application modulaire qui exécute des fonctions spécifiques. Contrairement aux applications monolithiques, les microservices permettent un déploiement et une mise à l’échelle indépendants. Par conséquent, ils sont plus flexibles et plus faciles à maintenir.

L’architecture des microservices

L’architecture microservice est une approche de conception logicielle qui décompose une grande application en services indépendants, chaque service étant conçu pour répondre à une exigence métier spécifique.

Ces services s’exécutent sur des ressources dédiées, notamment des instances de base de données et une puissance de calcul distinctes. Contrairement aux systèmes monolithiques, les applications microservices sont faiblement couplées, ce qui permet une plus grande flexibilité.

Dans un système distribué, les nœuds de serveurs déploient et exécutent les applications de microservices en tant que processus distincts, communiquant entre eux à l’aide de protocoles de communication tels que HTTP ou via des courtiers de messages tels que RabbitMQ.

Cette approche architecturale permet essentiellement aux services de conserver leur indépendance les uns par rapport aux autres tout en fonctionnant efficacement au sein du système logiciel.

Dans ce tutoriel, nous allons vous guider dans la mise en œuvre d’un microservice utilisateur simple qui gère les données utilisateur à l’aide de Flask et PostgreSQL

Mise en place d’une base de données PostgreSQL

Pour commencer, installez PostgreSQL. Si PostgreSQL n’est pas installé, vous pouvez découvrir comment installer PostgreSQL sur Windows ou comment installer PostgreSQL sur macOS.

Vous pouvez également configurer une instance de base de données PostgreSQL distante.

Ce guide utilisera le niveau gratuit de Render pour configurer une base de données PostgreSQL. Suivez ces instructions pour démarrer une instance de base de données PostgreSQL sur Render :

  1. Rendez-vous sur le site web de Render, créez un compte, et connectez-vous à votre compte tableau de bord page.
  2. Sur la page de votre tableau de bord, dans la liste des services affichés, sélectionnez le service PostgreSQL.
  3. Sur la page des paramètres de la base de données, remplissez les détails requis et assurez-vous de sélectionner le service PostgreSQL. niveau gratuit et enfin cliquez sur Créer une base de données.
Voir aussi :  Comment gérer les scores dans un jeu avec la bibliothèque Arcade de Python

Vous pouvez trouver le code de ce projet dans ce dépôt GitHub.

Créer un microservice Flask

  1. Dans votre terminal, créez un nouveau répertoire et changez-y :
  2. Ensuite, installez virtualenv pour créer un environnement de développement virtuel isolé.
  3. Créez un environnement virtuel dans votre projet :
  4. Enfin, activez l’environnement virtuel.

Installer les paquets requis

  1. Créez un nouveau requirements.txt dans le répertoire racine et ajoutez ces paquets :
  2. Ensuite, installez les paquets.

Créer un serveur Flask

Dans le répertoire racine, créez un nouveau fichier : service.py et le code suivant :

  1. Effectuez les importations suivantes :
  2. Créez l’instance Flask et configurez la connexion à la base de données. Copiez le fichier URL de la base de données externe sur la page des paramètres de la base de données de Render. Nous utiliserons l’URL SQLAlchemy create_engine et la méthode Psycopg2 pour configurer la connexion à la base de données. Veillez à mettre à jour et à remplacer l’URL de la base de données dans le code ci-dessus par l’URL de votre propre instance PostgreSQL qui correspond au format spécifié ci-dessus. Si le format de l’URL est incorrect, le code génère une erreur.
  3. Créer un modèle SQLAlchemy pour la base de données. Le code définit un modèle de données pour la table des utilisateurs. Après avoir défini le modèle, il crée la table à l’aide de la fonction SQLAlchemy create_all qui prend la base de données l’objet moteur de connexion comme paramètre. Enfin, elle crée une instance de l’objet créateur de session en utilisant le même objet moteur pour permettre les interactions avec la base de données.
  4. Enfin, définissez les routes API pour le microservice.
Voir aussi :  Introduction à la programmation événementielle en Node.js

Tester le microservice

Le code ci-dessus démontre un microservice simple de données utilisateur qui ajoute et récupère des données à partir d’une base de données PostgreSQL. Idéalement, les microservices reflètent l’architecture de l’API REST car elle permet une approche flexible de la construction de services web – cette architecture correspond bien au modèle de conception des microservices.

Cependant, il est important de noter que les microservices peuvent utiliser d’autres types d’approches de conception et de protocoles de communication, en fonction des besoins spécifiques du système.

Pour tester le service, démarrez le serveur de développement et dirigez-vous vers Postman pour effectuer des requêtes HTTP vers les points d’extrémité définis.

Dans Postman, faites une requête POST pour ajouter des données utilisateur.

Conteneurisation des microservices avec Docker

Docker regroupe les applications et leurs dépendances dans des conteneurs. Cette approche rationalise le développement, le déploiement et la gestion des microservices dans un environnement de production puisque chaque service peut fonctionner indépendamment et communiquer avec d’autres services à l’aide du protocole de communication configuré.

Avant de commencer, vous devez d’abord installer Docker en suivant les étapes indiquées sur la page site web de Docker. Ensuite, construisez une image Docker à partir d’un fichier Dockerfile qui contient les instructions nécessaires pour configurer les dépendances requises afin d’exécuter l’application dans un conteneur.

  1. Créez un fichier Docker dans le répertoire racine de votre dossier de projet et ajoutez ces instructions :
  2. Exécutez la commande ci-dessous pour construire l’image Docker.
  3. Enfin, exécutez le conteneur Docker.

Cela démarrera un conteneur Docker exécutant le microservice Flask et exposera le port 5000 sur le conteneur au port 8000 sur la machine hôte, ce qui vous permettra d’effectuer des requêtes HTTP à partir de votre navigateur Web ou de Postman à l’aide de l’URL. http://localhost:5000.

Voir aussi :  Qu'est-ce que la table ASCII et comment l'utiliser ?

Adoption de l’architecture microservice

L’architecture microservices est devenue une approche populaire pour le développement d’applications logicielles évolutives et robustes. En divisant l’application en petits services déployables de manière indépendante, l’architecture microservices facilite la maintenance et l’évolution du système.

Bien que cette architecture présente des avantages potentiels, elle ne convient pas à tous les cas d’utilisation. Dans tous les cas, les exigences commerciales spécifiques du projet devraient principalement influencer l’approche de conception adoptée.

S’abonner à notre lettre d’information

Peut-on construire un microservice avec Python ?

Les développeurs ont découvert de nombreuses raisons de créer des microservices en Python, qu’il s’agisse de son fondement sur la programmation orientée objet, de sa capacité à gérer les API REST ou de son support prêt à l’emploi pour le prototypage d’applications.

Comment créer un microservice étape par étape ?

Voici les points clés auxquels il faut penser à ce moment-là.

  • Gardez la communication entre les services simple avec une API RESTful.
  • Diviser les données en contextes délimités ou domaines de données.
  • Construisez votre architecture de microservices pour l’échec.
  • Mettez l’accent sur la surveillance pour faciliter les tests des microservices.

Python est-il un bon langage pour les microservices ?

Microservices Python assure la compatibilité avec les langages hérités comme ASP et PHP, ce qui vous permet de créer des frontaux de services web pour héberger des microservices. Avec tous ces avantages, Microservices Python est considéré comme ayant un avantage sur les autres langages.

FastAPI est-il un microservice ?

FastAPI est récemment devenu l’un des frameworks web les plus populaires utilisés pour développer des microservices en Python. FastAPI est beaucoup plus rapide que Flask (un framework web couramment utilisé en Python) parce qu’il est construit sur une interface de passerelle de serveur asynchrone (ASGI) au lieu d’une interface de passerelle de serveur web (WSGI).

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *