Gibt es unter Linux Funktionen, die für das Hosting von Ruby on Rails unerlässlich sind?

7

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?

Kevin
quelle
1
Um zu vermeiden, dass es sich bei dieser Frage um eine Warenkorbfrage handelt, frage ich speziell nach Funktionen in Linux-Betriebssystemen, mit denen Antworten weiterhin nützlich sind, nachdem aktuelle Linux-Betriebssysteme veraltet sind.
Kevin
Wenn Sie rvm verwenden, passen viele gut. Ubuntu, CentOS, zum Teufel sogar FreeBSD hat rvm ziemlich stabil, was heutzutage kein wirkliches Problem ist.
Danila Ladner
Gute Frage. Einige Distributionen sind besser für bestimmte Apps geeignet als andere, da die Entwickler die Apps auf einer bestimmten Plattform entwickeln und warten. Daher ist es gut herauszufinden, welche am besten unterstützt wird.
Matt
@ Kevin Das Problem mit dieser Frage ist, dass sie in eine von zwei Kategorien fällt - "Was ist das beste Widget?" (Das ist so, als würde man uns fragen: "Welche Farbe soll ich mein Haus streichen?": Die Antwort ist ganz persönlicher Geschmack) oder "Was ist mir wichtig?" (was wir nicht beantworten können, weil wir nicht wissen, was für Sie wichtig ist ). Wenn Sie Ihre Frage aktualisieren, um uns mehr darüber zu erzählen, was Sie versuchen, wird dies möglicherweise zu etwas, auf das wir Ihnen eine gute Antwort geben können. Wie es jetzt formuliert ist, erhalten Sie 1000 Antworten, von denen jede eine andere vorschlägt Plattform, und jeweils gleich richtig :-)
voretaq7
@ voretaq7: Ich denke, dass meine Frage, wie formuliert, nicht nach bestimmten Plattformen fragt. Es werden nach Funktionen gefragt, die einige Linux-Varianten bieten und die für das Hosting von Rails besonders wichtig sein können. Antworten sind also keine Plattformen, sondern Betriebssystemfunktionen. Eine gute Antwort bestätigt entweder, dass alle Linux-Distributionen gleichermaßen in der Lage sind, Rails zu hosten, oder weist auf sehr spezifische Funktionen hin, die, wenn sie nicht vorhanden sind, zu Deal-Breakern führen. Macht meine Sichtweise die Frage effektiv? Wenn nicht, was ist mit meiner Frage immer noch falsch?
Kevin

Antworten:

10

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.

yoonix
quelle
3
"Ich bin kein Debian-Typ, daher kann ich nicht mit Einzelheiten sprechen, aber ich habe den Eindruck, dass Debian normalerweise neuere Versionen liefert." Ja Nein. Ich benutze Ubuntu regelmäßig und es ist nicht so aktuell, wenn Sie in LTS-Versionen sind, als in "neuesten" Distributionen. Im Allgemeinen ist keine einzelne Linux-Distribution bei Ruby aufgrund der extrem aggressiven Funktionsweise der Ruby- (und Gem-) Welt „am besten“. Unabhängig davon, auf welcher Plattform man sich befindet, müssen Sie lernen, wie Sie Ruby (und Gems) benutzerdefiniert installieren, und es kann wenig getan werden, um dies zu vereinfachen.
JakeGould
5
"Die Installation von Ruby ist einfach - das habe ich schon mehrmals gemacht." Warten Sie, bis Sie wirklich mit der Programmierung beginnen und auf Versionskompatibilitätsprobleme und sogar Gem-Probleme stoßen. Dann wirst du verstehen, was ich meine.
JakeGould
Ich wünschte, ich könnte 100 zu diesem letzten Kommentar positiv bewerten.
Fred der magische
Mein Fehler. Als ich "Ruby installieren" las, dachte ich, Sie meinten "Ruby von den Linux-Paketverteilungstools herunterladen". Die Installation von Ruby ohne diese Tools wäre definitiv viel schwieriger.
Kevin
3

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 -

  1. 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?

  2. 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.

  3. 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")sysctlKnö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.

    Auch hier gibt es einige nichttechnische Überlegungen. Wenn Sie die Wahl zwischen zwei hypothetischen Systemen haben, einem kostenlosen Betriebssystem und einem kostenpflichtigen Lizenzsystem, das doppelt so schnell ist, aber 5.000 US-Dollar pro CPU-Kern für die Lizenzierung kostet, holen Sie sich das kostenlose. Ihr Quad-Core-Server mit zwei Prozessoren kostet Sie Lizenzgebühren in Höhe von 40.000 US-Dollar, und selbst wenn wir uns auf der teuren Seite der Hardware irren, sind es VIEL mehr Server, auf denen das kostenlose Betriebssystem ausgeführt wird. Selbst wenn Sie für Strom und Kühlung bezahlen, ist es ziemlich klar, wer mit einer Leistungsmetrik nach Kosten pro Einheit gewinnt ...

  4. 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?

voretaq7
quelle