Lire [Microservice Design] (1) Introduction aux microservices

1. Que sont les microservices ?

sont de petits services autonomes qui travaillent ensemble.

2. Pourquoi existe-t-il une architecture de microservice ?

Les lacunes de l'architecture d'application monolithique traditionnelle sont importantes et sérieuses lors du développement de projets à grande échelle :

  • Une énorme base de code, de sorte qu'il est difficile de savoir où modifier après un long moment
  • Des codes fonctionnels similaires peuvent être vus partout, ce qui rend encore plus difficile la correction des bogues
  • Graves problèmes de couplage, le code affecte tout le corps, et la modification (refactoring) de la structure du code est extrêmement coûteuse
  • Une petite modification nécessite un redéploiement de l'ensemble de l'application.Le coût élevé du déploiement en ligne rend le cycle en ligne long et il est difficile de synchroniser les besoins qui évoluent rapidement.
  • Charge mentale

3. Caractéristiques des microservices

- avantage

  • Divisez plusieurs services pour le déploiement en fonction des caractéristiques de l'entreprise, et les autorisations d'opération de ressource (DB-Table) entre les services sont isolées les unes des autres et conservent l'autonomie d'un seul service grâce à la communication réseau
  • Service unique, taille de code plus petite, développement/lancement rapide de nouvelles fonctionnalités et localisation de bugs
  • Un seul service s'exécute comme une seule application et fournit des services en exposant des API
  • Meilleure hétérogénéité technologique. Vous pouvez utiliser la technologie la plus adaptée au service dans différents services. Si une partie du système doit être améliorée, vous pouvez refactoriser cette partie avec une meilleure pile technologique. Par exemple, différentes parties utilisent différentes technologies de stockage.

- lacune

  • Besoin de gérer plus de services
  • Présentation des transactions distribuées

4. Élasticité

La défaillance d'un service ne doit pas entraîner la défaillance de l'ensemble du système.L'architecture de microservice introduit naturellement le facteur de défaillance du réseau, et une méthode raisonnable doit être utilisée pour gérer les exceptions.

5. Extension pratique

L'architecture de microservice peut facilement être étendue pour les services qui ont des goulots d'étranglement de performances dans le système.

6. Déploiement facile

Le déploiement de chaque service dans l'architecture de microservice est indépendant, de sorte que la granularité du déploiement et en ligne est réduite de l'ensemble du système à un sous-service, le coût de développement et de test est considérablement réduit et un déploiement rapide et en ligne peut être réalisé. Roulez ce service.

7. Correspondance avec la structure organisationnelle

Développer sur une énorme base de code brouillera les responsabilités et les autorisations des membres de l'équipe et réduira l'efficacité du développement ; lorsque l'équipe est répartie, le problème est plus évident.

L'architecture de microservices peut bien faire correspondre l'architecture à la structure organisationnelle, éviter une base de code trop volumineuse et clarifier les responsabilités des membres de l'équipe, ce qui facilite l'obtention de la taille et de la productivité idéales de l'équipe.

8. Réécriture pratique

Lors de l'utilisation de plusieurs services à petite échelle, il est relativement possible de réécrire un service ou de le supprimer directement.

Mais essayer de supprimer des centaines de lignes de code en une seule journée dans une application monolithique, et être sûr qu'il n'y aura pas de problèmes, est-ce peu probable ?

Plusieurs services dans un microservice sont de taille similaire, il n'y a donc guère d'obstacle à la réécriture ou à la suppression d'un ou plusieurs services.

9. SOA (architecture orientée services)

La SOA est une méthode de conception ou design thinking. L'architecture qu'il conçoit est composée de plusieurs services, qui communiquent via des appels réseau, et un service existe sous une forme indépendante.

La SOA peut être utilisée pour traiter des applications monolithiques gonflées et améliorer la réutilisation des logiciels.

Selon le livre, SOA est une très bonne idée, mais les gens ont beaucoup pratiqué et ne parviennent pas à un consensus sur cette question. Ces problèmes seront rencontrés lors de la mise en œuvre de la SOA : comment choisir le protocole de communication, comment déterminer la granularité du service, etc. ; il existe également des principes directeurs sur la manière de diviser le système, mais l'auteur a déclaré qu'ils étaient fondamentalement erronés.

L'architecture microservice est une solution architecturale spécifique pour la pratique de la SOA.

10. Bibliothèque partagée

Habituellement, il y aura un module nommé tel que util ou common dans l'application monolithique, qui est utilisé pour stocker le code couramment utilisé. Dans l'architecture des microservices, le code peut également être partagé sous forme de bibliothèques.

11. Il n'y a pas de solution miracle

L'auteur souligne : "Les microservices ne sont pas un repas gratuit, encore moins une solution miracle. Lorsque vous choisissez des microservices, vous devez faire face à la complexité de tous les systèmes distribués, y compris l'expansion, le déploiement, les tests, la surveillance, etc., et vous devrez souvent s'occuper de la distribution Ne soyez pas trop surpris si vous rencontrez des transactions formelles ou des problèmes liés à la PAC !

Chaque entreprise, organisation et système est différent. La question de savoir si les microservices vous conviennent ou dans quelle mesure vous pouvez choisir les microservices dépend de nombreux facteurs. Les chapitres ultérieurs du livre vous donneront des conseils et souligneront les pièges courants. Vous aider à développer un voie évolutive claire.

 

Lien douban réserver : cliquez ici

Guess you like

Origin blog.csdn.net/sc_lilei/article/details/106482363