Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12540|Répondre: 0

PayPal atteint des milliards de transactions par jour avec seulement 8 machines virtuelles

[Copié le lien]
Publié sur 25/09/2019 16:11:58 | | | |
Traditionnellement, un système qui gère un milliard de transactions par jour pourrait nécessiter des centaines de VM, PayPal le fait avec seulement 8 VM, et offre une réponse rapide à 90 % d’utilisation du CPU, une densité de transactions que PayPal n’a jamais atteinte auparavant, et le processus prend 1/10 du temps pour l’accomplir, aidant l’organisation à suivre la croissance sans avoir à développer son infrastructure informatique tout en réduisant les coûts. Comment cela fait-il ?



PayPal a migré son système en mode Acteur basé sur Akka. Dans l’article Squbs : PayPal adopte une nouvelle approche réactive pour la création d’applications (La connexion hyperlientérée est visible.PayPal explique tous les tenants et aboutissants du processus. Ils ont désormais rendu Squbs open source et l’ont publié sur GitHub (La connexion hyperlientérée est visible.)。

Lorsqu’un projet doit adopter une approche pratique, le modèle de service à états ne reçoit toujours pas assez d’attention. Pour en savoir plus sur les services avec état, nous recommandons de lire les raisons de continuer à développer des services évolutifs dès maintenant (La connexion hyperlientérée est visible.), cet article est basé sur un discours de Caitie McCaffrey. Si cet article ne vous convainc pas, il y a aussi WhatsApp qui utilise le concurrent d’Akka, Erlang, pour un débit extrêmement élevé : l’architecture WhatsApp de Facebook, qui s’élève à 19 milliards de dollars (La connexion hyperlientérée est visible.)。

La raison de la recommandation de l’article ci-dessus est que PayPal ne fournit pas d’introduction détaillée à l’architecture, mais consacre plutôt plus de temps aux raisons pour lesquelles ils ont choisi Akka et aux avantages de migrer vers Akka. Mais cet article offre tout de même un encouragement précieux et une démonstration pour la pratique de « sortir des sentiers battus ».

Qu’y a-t-il de mal à utiliser un grand nombre de machines virtuelles pour un service ?

  • Exécutez le service avec des machines virtuelles très faibles et extrêmement petites. Le plus grand avantage des systèmes réactifs basés sur les acteurs est qu’ils peuvent utiliser plus efficacement les ressources informatiques, ce qui peut réduire considérablement la taille du système et éviter l’auto-scaling « simple et grossier » des pratiques traditionnelles.
  • Cela met beaucoup de pression sur votre réseau et votre infrastructure de routage. Comme les services ont tendance à être plus interconnectés, les requêtes peuvent devoir passer par un grand nombre de sauts réseau, ce qui augmente la latence et dégrade l’expérience utilisateur.
  • Plus il est grand, plus il est cher. Les services avec des centaines de machines virtuelles ont des coûts inhérents élevés en termes de gestion, de surveillance et de mise en cache inefficace.
  • Plus il est petit, plus il est agile. Déploiement de services sur des centaines de machines virtuelles est un processus chronophage.
  • Tirez plus de profit d’un plus grand CPU sur chaque machine virtuelle. Comme les processeurs ne peuvent pas être accélérés davantage, l’infrastructure doit pouvoir utiliser plus efficacement le nombre de CPU sur chaque machine virtuelle.
  • Les microservices doivent être construits avec des NanoServices faiblement couplés, faciles à entretenir et rapides à développer. Personne ne veut gérer un système complexe avec beaucoup de couches, et il faut plus de visibilité sur le rôle des différents services sans avoir à approfondir les couches de code.


Avec ces facteurs en tête, PayPal voulait construire un système qui :

  • Évolutif, non seulement pour évoluer horizontalement à des centaines de nœuds, mais aussi pour étendre vers plus de processeurs afin d’atteindre l’objectif de traiter des milliards de requêtes par jour.
  • Faible latence et contrôlable avec une granularité extrêmement fine.
  • Soyez résilient face aux échecs.
  • Ajustement flexible des limites de service.
  • Promouvoir la scalabilité et la simplicité grâce à des modèles de programmation et à la culture, ainsi qu’à des mécanismes de gestion des pannes et des erreurs plus simples.


Il ne fait aucun doute que PayPal souhaite utiliser une pile plus « fine », et ils ne veulent pas que leur pile contienne beaucoup de technologies et de pièces mobiles à différents niveaux. En général, Akka et les systèmes basés sur les états sont bien adaptés à ce besoin, ce qui permet de « décomposer » l’ensemble de gros composants en une seule technologie. PayPal a choisi Akka plutôt qu’Erlang parce qu’ils ont plus d’expérience avec Java, qui fonctionne au-dessus de Java. Pour beaucoup, apprendre l’Erlang à partir de zéro n’est pas réaliste.

Avec Akka, ils peuvent :

  • Écrivez du code plus facile à expliquer
  • Écrire du code plus facile à tester
  • Les scénarios d’erreur et de défaillance sont traités plus naturellement que les modes traditionnels utilisant la JVM
  • Écrire un code plus rapide, plus résilient et plus simple pour gérer les erreurs plus fluidement et réduire le nombre de bugs


PayPal a immédiatement écrit son propre framework basé sur Akka, appelé Squbs, utilisé pour rimer avec « Cube ». Cela permet de créer une couche technologique modulaire pour la construction d’un NanoService appelée « Cube ». Les cubes sont symétriques, et les dépendances entre différents cubes sont également symétriques et lâches, exposant uniquement les interfaces de messages déjà fournies par Akka.

Il décrit également les difficultés auxquelles les programmeurs peuvent être confrontées lors de l’adoption du code AKKA, car il se peut aussi que vous ayez besoin d’engager quelqu’un formé à Akka/Scala.

Puisque la plupart des services ont des objectifs similaires : recevoir des requêtes, appeler, lire et écrire des bases de données, appeler d’autres services, appeler des moteurs de règles, obtenir des données des caches, écrire dans des caches... En conséquence, les services peuvent être abstraits via des motifs tels qu’Orchestrator Pattern et Perpetual Stream.

Squbs est devenu une pratique standard pour PayPal afin de créer des applications réactives basées sur Akka. Si votre équipe n’a pas encore envisagé les systèmes avec état, cela vaut probablement le coup d’essayer, car cela fonctionne bien chez PayPal, Facebook, Uber et Microsoft.







Précédent:Trois facteurs qui me poussent à déprécier Chrome
Prochain:vs Créer un dossier, et lors de la génération de la solution, il n’y a personne sous le fichier bin
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com