Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I be using Chef or other tool for managing servers

I have 4 servers behind a load balancer and a staging server, a db server, and a utility server for a web application that hosts a number of web sites.

Should I make the jump to Chef to manage these servers or should I just maintain them manually? The servers were built using sprinkle but at that time there were only two. Now that there are four maintenance is becoming more of an issue.

I'd like to hear experiences and the pros and cons of chef and other chef-like tools.

Thanks!

like image 484
Nate Bird Avatar asked Jan 20 '23 21:01

Nate Bird


2 Answers

We moved to Chef, and we now have a 1 minute redeployment for our app. So it certainly pays off.

However it took a long time (a few months) to get to the point where we were happy with the chef deployment strategy. With hindsight we would have had several spare boxes around to try out a 'from scratch' deployment. I certainly wouldn't advise trying chef in a production environment without an exact mirror of the setup and lots and lots of tests, nor would I advise using chef on a setup that hasn't been 'cheffed' from scratch.

Having said that, Chef is far better than the other options we looked at and now that we are out the other side it's a breeze deploying a new version of the app on multiple servers. In future I'll be using it for any staging or production environment I have.

In summary, yes, but only if your client/employer is aware that it may take some time before they see the benefits, which will be considerable.

like image 123
stef Avatar answered Jan 23 '23 11:01

stef


Chef has a steep learning curve, so it will take a while - at least a few weeks - to become familiar with how to use it.

But once you pick up the basics, it is a very handy system, and can simplify any number of tasks - even for the smallest of infrastructures.

A few notes for when you start.

  • You will be setting up and tearing down cloud servers dozens of times, just to get the hang of it. Experiment.

  • The standard opscode cookbooks (github.com/opscode/cookbooks) are very useful. But you will need to extend/customize many of them for your particular case. And you will need to search the 'net for cookbooks that are missing from the opscode/cookbooks repository.

  • Read the opscode cookbooks, and read the 37signals cookbooks too.

  • The application and database cookbooks are geared towards standard Rails apps with MySQL and Memcached. To the extent that this describes you, you are way in luck.

like image 31
yfeldblum Avatar answered Jan 23 '23 10:01

yfeldblum