I've heard about deployment pattern which sounds like "build one time, deploy multiple times".

If I manage the configuration via e.g. ansible templates or chef or any other CM tools, I don't have any pre-generated configuration. I have it generated on every deployment.

Why no tool follows this (logical) pattern for configuration? Does it worth at all?

  • 1
    Hi there! Your statement "Why no tool follows this (logical) pattern for configuration?" is quite a strong opinion. Could you please back this up with some evidence to support your point of view? Jun 25 '19 at 5:14

Mostly because getting from an unknown state to a desired state is not a build step, at build you start from a known state, which is nil or blank, and create something.

But what you're missing, I think, is that with configuration as code you build the desired state once and deploy the resulting artifact multiple times.

For a Chef Cookbook as example, you would:

  • code it
  • unit test it with ChefSpec
  • functionally test it with Kitchen
  • and finally release it as an artifact to chef-server if all tests pass
  • promote it environment by environment

With that in mind, all tools built on the promise theory (ansible, chef, puppet, salt,...) do fulfill this pattern of build once and deploy multiple times.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.