2014-04-04 10 views
7

Wo ziehen Sie die Grenze zwischen Bereitstellung (Chef) und Deployment (Capistrano)?Arbeitsteilung: Capistrano vs Chef

Nehmen Sie zum Beispiel das Erstellen eines Nginx und Einhorn-Setup für Rails. Die Installation von nginx ist das Gebiet von Chef. Aber was ist mit Dingen wie Konfigurationsdateien (nginx.conf und unicorn_init.sh) und Unicorn Config (unicorn.rb) - wie teilen wir das auf?

Die official Capistrano 3 tutorial erwähnt nichts im Zusammenhang mit Web-oder App-Server-Konfiguration.

Also wessen Verantwortung sind diese?

Antwort

7

Dies ist hauptsächlich meinungsbasiert, aber ich werde trotzdem antworten.

Sie zeichnen die Linie, wo immer Sie die Linie zeichnen möchten.

Kochhauptführungsphilosophie ist:

Sie kennen Ihre Infrastruktur am besten ...

Einige Organisationen Chef verwenden, um Setup alle freigegebenen Ordner, Links, Vermögen, usw. (wie cap deploy:setup normalerweise tut). Einige Organisationen nur verwalten die Infrastruktur Bits (Benutzer, Berechtigungen, Software installiert). Und einige Organisationen arbeiten komplett mit Chef (überhaupt kein Capistrano).

Es geht wirklich um Ihre persönlichen Vorlieben und Organisationskultur.

+5

Da wir hier Meinungen abgeben :), teile ich meins. Ich war in Ihren Schuhen und hatte das Glück, nicht nur mit allen drei Herangehensweisen zu experimentieren, sondern auch Produktionsumgebungen mit ihnen zu betreiben. Die erste Option ist gut, wenn Sie nicht möchten, dass Chef Ihre Apps konfiguriert (wo Sie Umgebungen, Rollen usw. erhalten). Dritte Option ist mein Favorit (alle in Chef), und ich würde empfehlen, dass Sie dafür gehen. Sie können Ihre bereitgestellten Versionen pro Umgebung steuern und Sie haben damit viel Freiraum bei der Verwaltung von allem. Wählen Sie nur die zweite Option, wenn Sie Push-Bereitstellungen und Chef for Configs benötigen. – cassianoleal