Ist RVM-Produktion fertig?
RVM ist gut für die Entwicklung auf Ihrem lokalen Rechner. Aber ist es sicher auf einer Produktions-Maschine?
- Wenn Sie noch nicht konfrontiert alle bugs, die auf Ihrem dev-Maschine, ich würde davon ausgehen, dass seine sicher. RVM ist für Bereitstellungen zu.
- RVM ist viel fester. Eine bessere Frage ist, wird Sie tun, was Sie wollen? Vielleicht, wenn Sie beschreiben Ihre Ziele, wir könnten mehr machen sinnvolle Vorschläge. Wie ist das ist irgendwie nebulös.
- Der Kommentar von der Tin Man ist, die meisten hervorragend. Die ursprüngliche Frage ist zu allgemein, zu verantworten.
- Für die Lektüre der Antworten: RVM Mitte 2012 ist ein deutlich anderes Tier von RVM Mitte 2011. Ich esse meine Worte unten und haben begonnen, mit RVM in unserem staging-Umgebung, mit einer Ansicht zu verschieben, zu unserem Produktions-Umgebung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gebaut RVM für die Produktion und fügte hinzu, die Entwickler 'Feinheiten' höher auf.
Wenn Sie gerne mehr Informationen Lesen Sie die Dokumentation auf der website und kommen Sie mit mir reden in #rvm auf irc.freenode.net irgendwann im Laufe des Tages EDT meisten Tagen.
Seit RVM ist nur eine ausgefallene Art und Weise herunterzuladen, zu isolieren und die Umschaltung zwischen den bestehenden Ruby-Implementierungen, würde ich sagen, dass es, als die Produktion bereit, was ruby-Implementierung, die Sie derzeit ausführen mit.
Im wesentlichen alle RVM tut, ist zeigen Sie Ihr Weg an einem spezifischen Ruby-Implementierung. Dies ist genau was passiert, wenn Sie Ihre *nix-distribution Ruby-Implementierung. Der einzige wirkliche Unterschied ist, dass Ihr Pfad neu geschrieben, so dass, wenn Sie Sie ausführen
ruby -v
es laufen wird ruby von Ihrer aktuellen Benutzers .rvm-Verzeichnis statt einem globalen system Verzeichnis wie /usr/local/bin.Ich würde sogar noch weiter gehen und sagen, dass die Verwendung von RVM ist eine bessere Lösung als die mit dem, was in der Regel installiert wird, in einer *nix-Distribution, weil es macht es einfach, sandbox die spezifischen ruby-Implementierung, die auf einer pro-Benutzer-basis. RVM macht es auch möglich, zu versuchen, schalten Rubine (sprich; von 1.8.7 um 1.9.2) auf die Produktions-app, während gleichzeitig eine solide rollback-Strategie im Ort, wenn etwas funktioniert nicht ganz richtig. Es macht es auch leichter zu halten sind alte Anwendungen, die auf eine version von Ruby, beim Umschalten neuen apps in mehr aktuellen Versionen.
Ich bin nicht einverstanden, vor allem, wenn Sie die Verwendung jeglicher Art von automatisierten Produktions-Prozess (puppet, chef, Nebel, etc) und Sie haben mehr als ein oder zwei Maschinen.
Hatten wir Probleme, wo X version von RVM arbeitete in einer ganz anderen Art und version Y von RVM (verschiedene Standard-Rubygems-Versionen, verschiedene default gemset configs, komplett changeup, wie systemweit installieren funktioniert), brechen unsere automatisierte provisioning-Prozess.
Kein Problem, wenn du bist entwickeln und in der hand zur Melodie der Dinge, ein killer, wenn Sie eine unbeaufsichtigte Skript /puppet installieren. Wir arbeiteten rund um diese Themen, indem Sie diese sperren, um eine bestimmte RVM-version, aber ich erinnere mich an das Gespräch mit Wayne, wo er sich entmutigt dieser. Wenn wir immer mit RVM in prod, wir waren tatsächlich packen Sie Sie in eine Reihe .debs (einer für das installieren, für jedes Ruby).
Den Weg, die .rvmrc Eingabeaufforderungen standardmäßig und kann nur überschrieben werden, im Heimatverzeichnis ~/.rvmrc (und nicht system-weit) war auch wenig hilfreich.
Eigentlich mag ich die Art und Weise, dass die RVM wird sich ändern, und Dinge tun, auf diese Weise in der Entwicklung - nichts nervt mehr als zurückgehalten von Abwärtskompatibilität. Dieser Ansatz, aber es kostet uns einige Zeit und zog Haare) in der Produktion/staging/uat/test.
RVM ist anscheinend eine angemessene Produktions-tool
Wissen Sie, ich habe einmal eine ähnliche rvm ist ein Entwicklungs-tool Kommentar und wurde informiert, dass die rvm war ursprünglich ein Produktions-tool.
So, RVM wird Ihre Produktionsumgebung komplexer, die schlecht ist, aber es macht es mehr isoliert und voneinander, was die Sprache, die Menschen nennen würde modulare, und das ist gut so.
In das Ende, solange Sie Ihren test-Implementierungen, die ich nicht sehe, wie eine statische Konfiguration jeglicher Art werden könnte, ganz von selbst, "unsicher".
Es hängt alles davon ab, wie Sie die Installation von RVM , single-user oder multi-user . die Installation von RVM-system große verursachen können viel Durcheinander ganzen Umschalten zwischen verschiedenen Rubine. Besser, Sie entscheiden sich für einzelne Benutzer , minus, die RVM macht einen guten job für das, was es bedeutete, zu tun .
Ich denke, es gibt zwei Teile zu dieser Frage:
Für (1), Wayne E. Seguin hat erklärt, dass es verwendet werden soll, auf die Produktion von Maschinen. Es gibt keinen Punkt in streitend seine Absicht.
Bei (2) bin ich mir nicht so sicher. Ist es angebracht zu bedienende software, hat eine neue Versionsnummer alle paar Tage auf einer Produktions-Maschine? Auch, RVM, wenn Sie einmal gelöscht meine gesamte ~/ruby-Verzeichnis. Zu Wayne ' s credit), als ich ihm erzählte, er befestigte ihn in der Nacht, aber das nicht genau sagen, "production ready" zu mir.
Edit: ich habe gerade Lesen Sie über Hummel löschen von /usr, und ich werde nur sagen - es hätte schlimmer kommen können! LOL.
Habe ich mit RVM auf einem production-webserver für über ein Jahr jetzt mit null Probleme. Ich habe immer ziemlich up-to-date, läuft
rvm get head
Häufig. Null Probleme, immer. 🙂rvm get head
?Ja, ich habe rvm auf die Produktion von Maschinen und richten auch puppet-Module zu installieren rvm als die Standard-system-ruby zusammen mit gemsets, etc.
Wenn Sie laufen mehrere Anwendungen auf einem einzelnen server, rvm kann helfen, Sie halten alle Ihre apps gemsets (und ruby-Versionen) völlig getrennt. Allerdings, wenn Sie mit nur einer einzigen app auf einem server, kann es nicht sein, so viel Vorteil mit rvm installiert.
Habe ich ziemlich viel verwendet RVM auf alle meine Produktions-Server mit rails apps!. RVM hat mich nicht im Stich lässt.