Ohai Chefs!
We're in the preliminary stages of designing possible solutions for
orchestration and would like to understand the community's
requirements.
I'm going to write down my thoughts and questions. Nothing is gospel,
so please feel free to comment on everything, including the framing.
Background:
Chef, as currently conceived, does a great job of exposing a model for
how to get a system from either an embryonic state or a slightly
misconfigured state to the desired state, mainly via the mechanism of
resource idempotence.
What I think is not yet well-modeled is how to go from one
well-configured state to a completely different well-configued
state. It also doesn't yet model synchronization of actions across
multiple boxes in that there isn't a first-class way to gate actions
that are dependent on the completion of steps on other servers. For
example, a complex migration or deployment might require bringing
boxes up or down, copying data, cleanly removing artifacts or services
installed by previous chef runs, not restarting load balancers until
some quorum of webservers have re-started, etc.
We'd like to collect the use cases, requirements, and thoughts that
best serve the community.
1) What do you think the scope of orchestration is and is not?
2) What are the use cases that you would like to see an orchestration
system/DSL accommodate? The more specific and granular the steps of
the orchestration, the better. (If you would not like your use case
made public but would nonetheless like it considered during design,
validation, and testing, please send it to me directly at
3) What generic primitives do you think would be useful in such a
system?