2 ms·
Suppose you rent a server at a hosting facility. This server could be a physical server or a VPS. It could be a piece of "cloud" infrastructure (a good list can
by pedoh 16y ago
Suppose you rent a server at a hosting facility. This server could be a physical server or a VPS. It could be a piece of "cloud" infrastructure (a good list can be found at https://www.cloudkick.com/providers/ https://www.cloudkick.com/providers/).
Some people who have little technical operations experience will write their code and copy it over to their production server to deploy it. As time goes on, the server needs to be changed; perhaps you need to add a library to extend the function of PHP. More time goes on, and then all of a sudden you need to build out a second web server, identical to the first. How do you do it? The first web server has been hacked and modified, and it's not necessarily trivial to build out a new one.
Opscode uses Chef to create "recipes" that determine everything you want on a box. So instead of logging into the first web server and hacking on it to get it in your desired state, you modify your recipes to add your PHP module there. Then, when you need to build out more boxes identical to the first, you run your Chef recipe and away you go.
What I'm not sure about with Opscode is how they do Configuration Management. If I have three applications on the box, and each of them have independent configuration, does Opscode manage that versioning for me, so that I really can take a new server from nothing and have it up and running with identical versions of my code and identical versions of my configuration files, substituting values in where appropriate? You might want every web server to be identical except for X, Y, Z (maybe you route one web server to one MySQL slave and one web server to a second MySQL slave, for example). I'm not sure what Opscode is doing to make that simple.
I've built out a web interface and underlying architecture for the company I work for to do exactly this sort of thing (and a whole lot more) via Puppet (http://puppetlabs.com http://puppetlabs.com). My interface handles rolling upgrades to eliminate downtime and a whole host of other slick things. Our developers do not hand over code to a deployment team; they do their own deployments. I can't recommend Puppet over Chef as I have no Chef experience, but can say that I've been thrilled with what Puppet can do for me.
If you want more information, let me know either here or via email, I'm happy to go deeper if you want.