Ah, yes indeed Leo. I was thinking Chef was the Ruby equivalent to
Fabric, but of course that's Capistrano.
So in summary, what a developer might consider are:
1) An imperative tool ("do this") like Fabric or Capistrano to help with
deploying your app on a provisioned machine
2) A declarative tool ("make it look like this") like Puppet or Chef to
provision your machine (configuration management)
I've often seen developers (including myself) use Fabric for
provisioning, then gradually migrate it to Puppet as necessary.
Toby
On 6/13/12 3:18 PM, Leo Shklovskii wrote:
At EnergySavvy we use a combination of Fabric and Chef.
Chef is fantastic for setting up the server and environment
(virtualenv, uwsgi, nginx, databases, etc) but isn't quite the right
tool for deployment - it can be heavyweight with abstractions that
don't really make sense. Never mind having to write Ruby to make it go.
Fabric is great as a lightweight layer to build your deployment system
on. We've followed some of the patterns Capistrano does (individual
release directories, symlinks) and have had a great system over the
past few years.
I don't know what your needs are around the CMS - but if they're not
super proprietary, I highly recommend taking a look at Mezzanine -
http://mezzanine.jupo.org/
In addition there's also a Django Seattle group that covers a lot of
these issues and has a number of people with significant expertise in
running and deploying Django - http://www.djangoseattle.org/
--
--Leo
Toby Champion wrote:
I'd recommend using Fabric over Chef if your application is in
Python. That's because you can use your application code, either some
of the Django project itself or your libraries, from within Fabric.
I've found this useful for testing and diagnostics. I've used it
recently for throwing fake data at an XMPP server, by using a library
that's used by the Django app directly from Fabric. You can do this
sort of thing by writing Django management commands, but for quick
and dirty work (often required of start-ups), it's easier from Fabric.
Also, it's one less language to be programming in every day.
Toby
On 6/13/12 1:53 PM, Adam Feuer wrote:
On Wed, Jun 13, 2012 at 12:39 PM, karen<[email protected]> wrote:
There's Paste, which
doesn't sound ideal.....what else should I be looking at?
It's not Python, but it's really good for this: Chef
http://www.opscode.com/chef/
It has a good community and a lot of pre-built recipes (scripts). I've
used Fabric and Chef, I count those big advantages over Fabric.
More info:
http://www.opscode.com/blog/2011/05/23/deploy-django-cms-with-chef/
http://wiki.opscode.com/display/chef/Build+a+Django+Stack
-adam