Ruby on Rails: Skalierung Ihrer App für schnelles Wachstum

Die Skalierung des Wachstums einer Anwendung ist heutzutage ein wirklich einschüchterndes Thema. Die meisten Internetressourcen und Blogbeiträge drehen sich um die Skalierung von Ruby-Anwendungen. Es ist sehr interessant zu wissen, was die Obergrenze ist und wie viel Ruby on Rails für das schnelle Wachstum von Anwendungen erreichen kann. Skalierung erhöht nicht die Geschwindigkeit, sondern den Durchsatz Die Skalierung von Hosts beschleunigt die Antwortzeiten nur dann, wenn Anfragen lange darauf warten, von Anwendungen bedient zu werden. Wenn es keine Anfragen gibt, die auf ihre Bearbeitung warten, ist die Skalierung reine Geldverschwendung. Ruby on Rails skaliert Anwendungen korrekt von einer bis zu 1.000 Anfragen pro Minute, und das Wesentliche, das wir über diesen Skalierungsprozess wissen müssen, ist die Menge, mit der HTTP-Routing und Anwendungsserver tatsächlich arbeiten. Wie werden die Anfragen an die App-Server weitergeleitet? Eine wichtige Entscheidung bei der Skalierung einer Webanwendung mit Ruby ist die Wahl des Anwendungsservers. Die meisten Beiträge zur Skalierung von Ruby sind aufgrund der dramatischen Veränderungen in den letzten 5 Jahren und der stürmischen Veränderungen im letzten Jahr vielleicht schon veraltet. Nichtsdestotrotz verstehen wir immer noch die bestehenden Vorteile jedes Anwendungsservers. Wir müssen nur besser wissen, wie diese Anfragen an solche Anwendungsserver weitergeleitet werden. Viele Entwickler haben immer noch wenig Verständnis für den genauen Prozess, wie diese Anfragen in die Warteschlange gestellt und weitergeleitet werden. Lebenszyklus von Anträgen Sobald eine Anfrage bei Ihrer Heroku-Anwendung ankommt, ist der erste Ort, an dem sie stoppt, der Load Balancer. Die Aufgabe eines Load Balancers ist es, sicherzustellen, dass die Last zwischen den Routern von Heroku gleichmäßig verteilt wird. Dieser Load Balancer leitet die Anfrage an den Router weiter, der am besten für sie geeignet ist. Es gibt eine enorme Anzahl nicht veröffentlichter Heroku-Router, und wir können davon ausgehen, dass die Zahl ziemlich groß ist, etwa über 100. Die Aufgabe der Router besteht darin, die Dynos der Anwendung zu erkennen und die Anfrage an einen bestimmten Dyno weiterzuleiten. Es kann ein bis fünf Minuten dauern, bis die Dynos gefunden sind, und die Router versuchen, eine Verbindung zu einem zufälligen Dyno in der Anwendung herzustellen. Wenn Heroku bereits ein zufälliges Dyno ausgewählt hat, wartet es fünf Sekunden lang, bis das Dyno die Anfrage annimmt und eine offene Verbindung herstellt. Während die Anfrage wartet, wird sie in die Warteschlange der Router-Anfragen gestellt. Auswahl an Anwendungsservern
  • Webrick
  • Dünn
  • Einhorn
  • Phusion Passenger 5
  • Puma (mit Gewinde)
  • Puma (geclustert)
Jeder dieser Server hat andere Ansprüche an die Geschwindigkeit, aber alle können Tausende von Anfragen pro Minute bearbeiten. Die Skalierung von Anwendungen basiert nicht nur auf den Antwortzeiten. Die Anwendung kann sich verlangsamen, wenn sich die Warteschlangen für Anfragen vergrößern. Die Warteschlangen sollten zuerst überprüft werden, denn wenn sie leer sind, ist das eine Verschwendung von Geld und Zeit. Dies gilt auch für Worker-Hosts. Sie werden auf der Grundlage der tiefen Auftragswarteschlangen skaliert.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman