[LRUG] Idempotency vs the cloud

Ben Griffiths bengriffiths at gmail.com
Wed Jul 17 04:22:50 PDT 2013


I see that Fowler has given this a name[1].

[1] http://martinfowler.com/bliki/ImmutableServer.html


On Wed, Jul 17, 2013 at 12:13 PM, Tom Stuart <tom at codon.com> wrote:

> Hi LRUG,
>
> I enjoyed Simon's talk about Chef on Monday. I'm an occasional user of
> both Puppet and Chef, and I like the idea of configuration management in
> principle, but I've never achieved full proficiency with either and I'm
> interested in why I find it such a struggle to properly integrate them into
> my life.
>
> One recurring thought I've had, which the talk reinforced, is that some of
> the complexity (and concomitant notional benefit) of these tools is their
> ability to convert a declarative description of a desirable state into an
> idempotent series of imperative actions. And okay, that's great, but is it
> a bit of a historical accident?
>
> The assumption is that we have persistent servers whose state needs to be
> carefully massaged over the course of geological time, and that's usually
> true, but would we have even bothered evolving these tools if some
> constraint or trend had made us more accustomed to deploying updates by
> spinning up a fresh EC2 instance instead of frobbing an existing one? If
> things begin to move more in that direction, can we stop caring about
> idempotent configuration management, and can it therefore become
> drastically simpler?
>
> This question appeals to me because of its connection with the imperative
> vs functional programming situation. Imperative programming is easier (in
> the Hickey[0] sense) because it more closely matches our intuitive stateful
> view of the world, but as any fule kno we eventually get into trouble
> because of the complexity which emerges from over-reliance on state.
> Functional programming offers an appealing remedy: stop worrying about
> state, treat everything as a mapping instead of a mutation, and concentrate
> on how to turn inputs into outputs. Running a one-shot shell script to
> provision a fresh instance feels simpler than getting Chef or Puppet to
> massage an existing one; it's not quite functional programming, but it's a
> gesture in that direction, if only because it doesn't concern itself with
> how to keep the plates spinning.
>
> tl;dr: If you don't care about running your recipes/manifests/whatever
> repeatedly, do Chef and Puppet still add enough value to justify their
> complexity?
>
> Cheers,
> -Tom
>
> [0] http://www.infoq.com/presentations/Simple-Made-Easy
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> http://lists.lrug.org/listinfo.cgi/chat-lrug.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20130717/9a7b218e/attachment-0003.html>


More information about the Chat mailing list