Augmenter la croissance d’une application est aujourd’hui un sujet vraiment intimidant. La plupart des ressources Internet et des articles de blog tournent autour de la mise à l'échelle des applications Ruby. Il est très intéressant de savoir quel est le plafond et combien Ruby on Rails peut réaliser pour la croissance rapide des applications.
La mise à l'échelle augmente non pas par la vitesse mais par le débit
Les hôtes évolutifs n'accélèrent les temps de réponse que lorsque les demandes passent beaucoup de temps à attendre d'être servies par les applications. S’il n’y a aucune demande existante en attente de service, la mise à l’échelle n’est qu’un gaspillage d’argent. Ruby on Rails fait évoluer correctement les applications de 1 à 1 000 requêtes par minute et ce que nous devons savoir sur ce processus de mise à l'échelle est la manière dont le routage HTTP et les serveurs d'applications fonctionnent réellement.
Comment les requêtes sont-elles acheminées vers les serveurs d’applications ?
Une décision importante à prendre en termes de mise à l'échelle d'une application Web avec Ruby est le type de serveur d'applications que vous devez choisir. La plupart des messages de mise à l'échelle de Ruby peuvent être obsolètes en raison du changement radical survenu au cours des 5 dernières années et du changement éclair de l'année dernière. Néanmoins, nous comprenons toujours les avantages existants de chaque choix de serveur d'applications. Nous devons simplement mieux comprendre comment ces requêtes sont acheminées vers de tels serveurs d'applications. De nombreux développeurs comprennent encore mal le processus exact de mise en file d'attente et d'acheminement de ces requêtes.
Cycle de vie des demandes
Une fois qu'une requête arrive à votre application Heroku, le premier endroit où elle s'arrête est l'équilibreur de charge. Le travail d'un équilibreur de charge est de garantir que la charge entre les routeurs de Heroku est répartie uniformément. Cet équilibreur de charge transmettra la demande à l'un des routeurs qui lui convient le mieux. Il existe un nombre énorme de routeurs Heroku non divulgués et nous pouvons supposer dès maintenant que ce nombre est assez important, environ supérieur à 100. Le travail des routeurs consiste à s'adresser aux dynos de l'application et à transmettre la requête à un certain dyno. La localisation des dynos peut prendre une à cinq minutes et les routeurs tenteront de se connecter à un dyno aléatoire dans l'application. Lorsque Heroku a déjà choisi un dyno aléatoire, il attend cinq secondes que le dyno réclame la demande et établisse une connexion ouverte. Pendant que la requête attend, elle sera placée dans la file d'attente des requêtes du routeur.
Choix du serveur d'applications
- Webrick
- Mince
- Licorne
- Passager Phusion 5
- Puma (fileté)
- Puma (regroupé)
Abonnez-vous pour les dernières mises à jour
Articles Similaires