Intelligence artificielle 

Accélérez votre productivité. Catalyseur d’innovation. Collaborateur créatif. Quelle que soit votre vision de l’IA, Unisys fournit les solutions, l’expertise et les outils pour réaliser le plein potentiel commercial de votre entreprise.
Explorez

Cybersécurité

Unisys fournit des solutions commerciales avec une sécurité intégrée pour défendre vos actifs numériques, lutter contre les menaces, gagner la confiance des clients et répondre aux normes de conformité.
En savoir plus

Conseils

La nature du travail change. Faisons évoluer votre entreprise ensemble. Pérennisez votre entreprise avec les services de conseil d’Unisys et progressez en tant qu’entité axée sur le numérique.
Explorez

Témoignages clients

Découvrez des vidéos et des témoignages expliquant comment Unisys a aidé les entreprises et les gouvernements à améliorer la vie de leurs clients et de leurs citoyens.
Explorez

Recherche

Embarquez vers un avenir résilient grâce à l’accès à la recherche complète d’Unisys, développée en collaboration avec les meilleurs analystes et cabinets de recherche du secteur.
Explorez

Centre de ressources

Trouvez, partagez et explorez des ressources pour soutenir vos objectifs opérationnels clés.
Explorez

Carrières

Curiosité, créativité et un désir constant de s’améliorer. Nos collaborateurs façonnent l’avenir en allant au-delà de l’expertise pour donner vie à des solutions.
Explorez

Relations avec les investisseurs

Nous sommes une entreprise mondiale de solutions technologiques qui s’engage à faire progresser les plus grandes organisations du monde.
Explorez

Partenaires

Nous travaillons avec un réseau de partenaires pour fournir à nos clients des produits et services de pointe dans de nombreux secteurs parmi les plus importants au monde.
Explorez

Sélection de la langue

Le langage choisi actuellement est:

Française
15 Min Read

Microservices pour l’entreprise : Conception, développement et déploiement

février 28, 2022 / Unisys Corporation

Vous manquez de temps ? Découvrez les points clés à retenir :

  • Lors de la conception d’une architecture de microservices, il est important de :
    • Décomposer l’application en capacités métier.
    • Construire les services avec les outils et techniques appropriés.
    • Concevoir l’architecture pour exposer les parties nécessaires des services.
    • Utilisez les protocoles appropriés pour la communication.
    • Décentraliser l’architecture.
    • Déployer les services avec des contrats orientés consommateurs.
  • Les outils et cadres utilisés pour implémenter les microservices incluent REST, Consul, Oracle Helidon et Kubernetes.
  • Les avantages des microservices incluent une flexibilité, une évolutivité et une maintenabilité améliorées.
  • Les défis des microservices peuvent inclure une complexité accrue et des difficultés de débogage et de test.
  • Pour mettre en œuvre avec succès les microservices, il est important d’avoir une stratégie commerciale claire et des protocoles de communication bien définis.
  • Il est également important d’avoir les bons outils et les bonnes technologies, ainsi qu’une équipe de développement compétente et expérimentée.

Les microservices sont de plus en plus courants, en particulier dans le développement d’applications natives du cloud.

Il est apparu comme un modèle architectural populaire car il permet de construire de grandes applications sous la forme d’une suite de petits services indépendants qui communiquent entre eux sur un réseau. Cette approche facilite la conception, le développement et le déploiement de systèmes logiciels complexes, car vous pouvez mettre à jour et modifier des services individuels sans affecter l’ensemble du système, ce qui le rend plus flexible et évolutif que les méthodes traditionnelles.

Les microservices peuvent être mis en œuvre à l’aide de diverses approches et technologies. Il peut s’agir de conceptions axées sur le domaine, de livraison continue, de plateformes évolutives, d’automatisation de l’infrastructure et d’utilisation de différents langages de programmation. Les microservices reflètent la manière dont les chefs d’entreprise veulent organiser leurs équipes et leurs processus de développement d’applications.

Premiers pas avec l’architecture des microservices

Lors de la conception de l’architecture des microservices, il n'y a pas d’ensemble définitif de principes standards. Cependant, il existe certains thèmes et techniques de conception utilisés par diverses entreprises pour commencer les premières étapes de la construction d’une architecture de microservices efficace.

Désassemblage

Tout d’abord, l’identification des capacités commerciales des applications aidera les équipes à construire des services en conséquence. Une fois les capacités identifiées, les équipes peuvent décider sur quel service elles souhaitent travailler et commencer à construire en fonction de leurs besoins commerciaux. Chaque équipe peut devenir experte dans le domaine sur lequel elle travaille et trouver les techniques et stratégies les mieux adaptées à l’application.

Bâtiment

Après avoir identifié les capacités commerciales, les équipes peuvent affiner les outils, les techniques, les plateformes et les approches nécessaires pour construire les services. Des approches telles que Java avec MySQL et Scala/Spark peuvent être utilisées en fonction de l’expertise de l’équipe et des exigences de l’application.

Conception :

Lors de la conception de l’architecture microservices, il est impératif d’analyser les parties des services qui doivent être exposées et les protocoles qui doivent être utilisés pour communiquer avec les services donnés. Des détails inutiles et lourds entraîneront une confusion et une perte de flexibilité dans les services.

Décentralisation

L’architecture peut être décentralisée par des équipes travaillant sur des services spécifiques. Un modèle source interne permettra aux développeurs d’apporter les modifications nécessaires au code et d’aller de l’avant sans s’appuyer sur le propriétaire du service pour rectifier les erreurs. Un modèle de service détaillé simplifiera le processus pour les développeurs, ce qui se traduira par de meilleures performances et un meilleur développement.

Déploiement :

Un contrat détaillé axé sur le consommateur aidera chaque API consommateur à capturer les exigences de l’application. Ces contrats sont partagés avec les prestataires pour les aider à répondre aux besoins de chaque client. Il est essentiel de conclure des accords axés sur les consommateurs avant de déployer les services afin d’aider les fournisseurs à comprendre l’interdépendance des services.

Quelques outils et cadres de mise en œuvre des microservices

RESTANT

Le transfert d’état représentatif (REST) est un outil efficace qui permet aux microservices de communiquer directement via HTTP et est utilisé pour construire des API RESTful. Les requêtes et réponses sont traitées à l’aide de formats standard tels que XML, HTML et JSON.

Consul

Technologie de découverte de services, Consul prend en charge les API HTTP REST et DNS. Ce cadre permet aux développeurs de générer automatiquement une configuration dans des fichiers à l’aide d’un modèle Consul. Il effectue également des contrôles de santé et exclut certains microservices de la découverte de services en cas d’échec des contrôles de santé.

Oracle hélidon

Helidon est un cadre de microservices développé et lancé par Oracle. Il s’agit d’un référentiel de bibliothèques Java que les développeurs peuvent utiliser pour construire une architecture de microservices. L’Helidon est disponible en deux variantes, l’Helidon MP et l’Helidon SE. Le premier est un choix viable pour les développeurs Java car il s’agit d’une implémentation des spécifications MicroProfile. Ce dernier sert de boîte à outils qui prend en charge les fonctionnalités Java SE et les API fluides.

Manchon à ressort

Un autre cadre Java, Spring Boot, propose des composants collaboratifs et permet de construire des systèmes à grande échelle à l’aide d’architectures simples. Spring Boot est facile à intégrer avec d’autres structures grâce à l’inversion du contrôle.

Examinons quelques options de déploiement :

Pour le déploiement des microservices, les développeurs peuvent choisir parmi ces modèles couramment utilisés :

Instances multiservices par hôte

En utilisant les multiples instances de service par modèle d’hôte, les développeurs peuvent positionner un ou plusieurs hôtes physiques ou virtuels pour exécuter plusieurs instances de service. Chaque service fonctionne sur un port bien connu sur un ou plusieurs ports.

Il existe deux variantes de ce modèle. Tout d’abord, chaque instance de service est un processus ou un groupe de processus. Les développeurs peuvent déployer une instance de service Java en tant qu’application Web sur un serveur Apache Tomcat. L’autre variante consiste à exécuter plusieurs instances de service dans le même processus ou groupe de processus, par exemple en déployant plusieurs applications Web Java sur le même serveur Apache Tomcat ou en exécutant plusieurs bundles OSGi dans le même conteneur.

Ce modèle présente de nombreux avantages, comme une utilisation efficace des ressources. Cette efficacité provient du processus ou du groupe de processus exécutant plusieurs instances de service, comme plusieurs applications Web partageant le même serveur Apache Tomcat et JVM.

Instance de service par modèle d’hôte

Ce modèle permet aux développeurs d’exécuter chaque service isolément sur son hôte personnel. Il existe deux spécialisations dans cette approche :

- Instance de service par machine virtuelle
- Instance de service par conteneur

Instance de service par modèle de machine virtuelle

Cette approche implique d’emballer chaque service sous forme d’image de machine virtuelle (VM), comme une AMI Amazon EC2. Un bon exemple est Netflix, car ils ont utilisé cette approche pour déployer leur service de streaming vidéo en emballant chaque service en tant qu’AMI EC2 à l’aide d’Aminator et en déployant chaque service en tant qu’instance EC2.

De nombreux outils sont disponibles pour construire des machines virtuelles, comme Aminator, Jenkins et Packer.io. Aminator regroupe les services en tant qu’AMI EC2, tandis que Packer.io automatise la création d’images VM et prend en charge les technologies de virtualisation telles que DigitalOcean, VirtualBox, VMware et EC2.

En utilisant l’instance de service par modèle de machine virtuelle, les équipes peuvent profiter des avantages d’une infrastructure cloud mature et ne pas s’inquiéter de l’épuisement des ressources et de la mémoire CPU, car les services fonctionnent de manière isolée, ce qui rend le déploiement plus simple et plus fiable.

Instance de serveur par modèle de conteneur

Comme son nom l’indique, ce modèle implique le déploiement d’instances de service sur leurs conteneurs. Les conteneurs disposent d’un système de fichiers racine dédié et d’un espace de noms de ports, ce qui permet aux équipes de limiter la mémoire et les ressources CPU d’un conteneur. Exemples de technologies de conteneurs : Solaris Zones et Docker. Les équipes peuvent également utiliser Kubernetes et Marathon pour gérer le placement des conteneurs en fonction des ressources requises et des ressources disponibles sur chaque hôte.

Les avantages des conteneurs sont similaires à ceux des machines virtuelles, car les deux approches impliquent l’isolation des services et permettent de surveiller les ressources consommées par chaque conteneur. Les conteneurs sont légers et plus faciles à construire, car il n’existe pas de mécanismes d’amorçage de système d’exploitation lourds.

Déploiement sans serveur

AWS Lambda est un excellent exemple de modèle de déploiement sans serveur. La technologie prend en charge les services Node.js, Java et Python. Les équipes peuvent packager les microservices dans un fichier ZIP et le télécharger sur AWS Lambda pour exécuter automatiquement les instances et traiter les demandes.

Il existe quatre façons d’implémenter la fonction AWS Lambda :

  • Invoquer la fonction directement en utilisant une demande de service Web
  • Mise en œuvre automatique en réponse aux événements générés par les services AWS, y compris DynamoDB, Kinesis, S3 ou Simple Email Service
  • Utilisation de la passerelle API AWS pour gérer les requêtes HTTP des clients de l’application
  • Suivre périodiquement un calendrier semblable à celui d’une cron

AWS Lambda est l’un des moyens les plus pratiques de déployer des microservices. Il offre l’avantage d’une tarification à la demande qui permet aux entreprises de payer pour le monde que les services fournissent, ce qui permet aux équipes de se concentrer davantage sur le développement de l’application plutôt que sur l’infrastructure informatique.

Conclusion

Le succès est une cible mobile, et lorsqu’il s’agit de faire évoluer la technologie, il n'y a pas de bullet silver. Les microservices sont une approche relativement nouvelle, mais ils montrent des résultats incomparables lorsqu’ils sont exécutés correctement. Les microservices aident à diviser les applications plus importantes en petits éléments plus faciles à gérer. Le processus permet également à la culture d’une entreprise d’être plus ouverte et adaptable aux changements et aux améliorations.

Les acteurs mondiaux, dont Coca-Cola, Netflix, Amazon et Etsy, ont résolu leurs problèmes les plus compliqués liés à l’évolutivité et à l’expansion en utilisant l’architecture des microservices. Ce changement a permis à ces entreprises et à d’autres de gagner en flexibilité, en durabilité et en engagement au sein des équipes.

Grâce aux microservices, les entreprises plus jeunes peuvent exploiter la puissance des logiciels hérités et des technologies modernes et simplifier la courbe d’apprentissage pour les équipes et la prochaine génération de développeurs, en les guidant vers la transformation numérique.