Ich bin in einem Projekt, in dem wir eine Ruby on Rails-App auf einem Linux-Server hosten werden, den wir besitzen. Sind alle Linux-Varianten gleichermaßen in der Lage, Rails-Apps zu hosten? Wenn nicht, welche Funktionen sind in einigen Linux-Distributionen vorhanden, in anderen jedoch nicht, die für das Hosten von Rails-Apps unerlässlich sind?
linux
hosting
ruby-on-rails
Kevin
quelle
quelle
Antworten:
Sie sollten die Distribution verwenden, mit der Sie am besten vertraut sind.
Das einzige, was mir auf den ersten Blick einfällt, was wirklich wichtig wäre, welche Distribution "besser" wäre, wäre, wenn Sie die vom Betriebssystem bereitgestellten Versionen von Ruby, Rails usw. verwenden möchten. Nichts hindert Sie daran, Ihre eigene zu erstellen Version auf jeder Distribution, aber das kann mehr Aufwand sein, als es für Sie wert ist.
RHEL / CentOS aktualisieren die Versionen nicht ständig, sobald sie veröffentlicht werden. Dies kann eine gute Sache sein, da Kompatibilitätsprobleme beim Upgrade des Betriebssystems behoben werden sollten. Dies kann eine schlechte Sache sein, da Sie möglicherweise eine Funktion wünschen, die in einer späteren Version hinzugefügt wurde. Möglicherweise können Sie dieses Problem umgehen, indem Sie ein zusätzliches Repository mit neueren Versionen hinzufügen.
Ich bin kein Debian-Typ, daher kann ich nicht mit Einzelheiten sprechen, aber ich habe den Eindruck, dass Debian normalerweise neuere Versionen liefert. Dies kann eine gute Sache sein, da Sie nicht nach einer kürzlich hinzugefügten Funktion suchen müssen. Dies kann eine schlechte Sache sein, da Sie möglicherweise ein Update installieren und Ihre Anwendung beschädigen.
Aber die beste Antwort ist, alles zu verwenden, was Ihnen am besten gefällt.
quelle
Alle Unix-Varianten sind "gleichermaßen in der Lage", Ruby / Rails zu hosten - zumindest in dem Sinne, dass Ruby, das Rails-Framework und eine große Anzahl von Edelsteinen darauf ausgeführt werden. In diesem Sinne ist "Verwenden Sie das Betriebssystem, mit dem Sie und Ihr Team am besten vertraut sind" die richtige Antwort.
Einige Dinge, nach denen ich persönlich in einem Betriebssystem suche -
Ist der Ruby im Lieferumfang des Betriebssystems enthalten (oder in Ports usw. verfügbar)?
All das neue Shiny erfordert heutzutage Ruby 1.9.x. Wenn also ein Betriebssystem nur Ruby 1.8 ausliefert, werde ich es an den Randstein treten. Ja, ich KÖNNTE es von Hand installieren, aber ich habe mehr als genug Arbeit, um eine stabile Umgebung aufzubauen - warum sollte ich mehr Arbeit akzeptieren, um mein eigenes Ruby-Paket zu warten?
Sind die Ruby-Support-Pakete (
rvm
, Edelsteine usw.) relativ aktuell?Gleiche Logik wie (1) - Ich möchte die Paketverwaltung des Betriebssystems so oft wie möglich nutzen können, aber wenn ich den Paketmanager überschreiben und jedes Juwel, das ich verwenden werde, manuell installieren muss, kann ich das lebe damit, aber es macht die Dinge schwieriger.
Ist das Betriebssystem selbst für meine Ziele geeignet?
Dies ist eine unscharfe Methode. Der beste Weg, um festzustellen, ob ein Betriebssystem "geeignet" ist, besteht darin, das lebende Tageslicht beim Testen / Benchmarking mit Ihrer Arbeitslast zu übertreffen .
Hier stellen Sie fest, dass FooOS eine schreckliche Multithread-Leistung aufweist und BarOS über ein Festplattensubsystem verfügt, das verlangt, dass jede andere Operation auf dem System gestoppt wird, wenn ein Thread Daten ausschreiben möchte, sodass BazOS (das in beiden Fällen ausgesprochen mittelmäßig ist) tatsächlich besser ist Leistung, da Ihre Anwendung sowohl Multithread- als auch schreibintensiv ist.
Wenn Sie sich nur "Linux" ansehen, sind die Unterschiede hier vernachlässigbar (oder durch Drehen "behebbar")
sysctl
Knöpfe). Wenn Sie Ihre Betriebssystemsuche auf andere Systeme (BSD, OS X, Solaris, AIX, HP-UX, Windows) ausweiten, werden möglicherweise echte Unterschiede in den Leistungsmerkmalen oder der Ladekapazität festgestellt.Können wir das Betriebssystem verwalten?
Verfügt das Betriebssystem über Tools, mit denen Sie es verwalten können (oder funktioniert es gut mit Tools, die Sie bereits verwenden / wissen, wie man sie verwendet / verwenden möchte, wie Puppet und Chef)?
Ist Ihr Team mit dem Betriebssystem vertraut genug, um es zu verwalten? Werden Sie in der Lage sein, das nächste größere Versions-Upgrade durchzuführen, oder werden Sie in Panik geraten und nur stagnieren, was auch immer Sie an dem Tag installiert haben, an dem Sie es bereitgestellt haben, und ständig frustriert sein, wenn neue Funktionen fehlen, die Sie möchten?
quelle