BT

Managing Change with Immutable Servers

by Aslan Brooke on Aug 14, 2013 |

Immutable servers make infrastructure scalable and reliable in spite of change, however this can require fundamentally new views of systems, patterns, deployments, application code, and team structure as Chad Fowler, CTO of 6wunderlist.com,  writes in his recent blog post "Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components".

Servers accumulate change for better or worse over time, including: new applications, upgrades, configuration changes,  scheduled tasks, and in the moment fixes for issues.  One thing is certain, the longer a server has been provisioned and running the more likely it is in an unknown state. Immutable Servers solve the problem of being certain about server state by creating them anew for each change described previously.

Chad appeared online in the bi-weekly podcast "food fight show" as a follow-up to discuss immutable servers.  In the show he picks up where his blog post leaves off by digging into the details of his immutable server solution.  During the show he built the analogy of treating his servers like living cells, which similarly die and are replenished with new cells in natural growth processes.

Kief Moris, software delivery consultant at ThoughtWorks, recently wrote a blog post explaining immutable servers in which he states:

Automated configuration tools (such as CFEngine, Puppet, or Chef) allow you to specify how servers should be configured, and bring new and existing machines into compliance. This helps to avoid the problem of fragile SnowflakeServers. Such tools can create PhoenixServers that can be torn down and rebuilt at will. An Immutable Server is the logical conclusion of this approach, a server that once deployed, is never modified, merely replaced with a new updated instance.

Hashicorp recently released a utility for creating machine images usable as immutable servers named "Packer". The same company also develops the "Vagrant" utility used in DevOps for automating usage of virtual machines

The DevOps community in Los Angeles recently discussed packaging machine images as part of deployment by using "Packer" and "Docker" in their July LA DevOps meetup. Mike Fielder, Director of technical Operations, also gave a talk covering similar material at chef conf 2013 called "Treating Your Infrastructure Like Garbage".

Hello stranger!

You need to Register an InfoQ account or to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Typo in article by Roger Wilco

Harshicorp recently released […]

It's HashiCorp.

CalvinDB approach may just be the ticket by Arturo Hernandez

If you want a truly immutable architecture you also need immutable databases. There are some interesting examples out there. But to me the most interesting is CalvinDB. In my mind, this is a case where immutability meets scale and performance. I'm not sure this will be the exact successful technology, but it proves that immutable persistent structures can scale.

Re: Typo in article by Aslan Brooke

Thanks for noticing the company name, I've corrected it. -Aslan

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

3 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT