Orchestration? You Don't Need Orchestration. What You Want Is Choreography by Julian Dunn, Chef

Post on 19-Mar-2017

215 views 2 download

Transcript of Orchestration? You Don't Need Orchestration. What You Want Is Choreography by Julian Dunn, Chef

Don’t Orchestrate, Choreograph!

Julian DunnProduct Manager, Chef

What is orchestration?

An ordered set of operations

Across a set of independent machines

Connected to an orchestrator only via a network.

Humans acting on Visio acting on machines

Humans acting on code acting on machines

An ordered set of operations

Defined in code

Across a set of independent machines

Connected to an orchestrator only via a network.

tasks: - name: remove host from LB shell: /usr/local/bin/remove_host {{ ansible_hostname }} delegate_to: loadbalancer.example.com

- name: deploy code git: repo=http://github.com/foo/bar.git dest=/var/www/html/ notify: - restart apache

- name: add host to LB shell: /usr/local/bin/add_host {{ ansible_hostname }} delegate_to: loadbalancer.example.com

Failure: Hard to Recover From

Orchestrator is a SPOF

Huge Cognitive Load

Mark Burgess: Promise Theory

“You Will Feed My Cat”

“Do You Promise To Feed My Cat?”

“Obligations are far from being a reliable tool for ensuring compliance. If a law-giver wanted to ensure the compliance of an agent, a better strategy would be to obtain a promise from the agent and to convince it to view the intention as a commitment since the law-giver could never know whether the agent had indeed committed to the body of the obligation.”

- Bergstra & Burgess, “A Static Theory of Promises”

Trying to make promises about the behavior of the other nodes

Autonomous Actors that:

• Make progress towards promised desired state• Expose interfaces to allow others to verify promises• Can promise to take certain behaviors in the face of failure of others

What is Choreography?

Introducing Habitat• Application automation with the app• Portable, immutable packages• Masterless architecture• Built-in runtime configuration• Built-in service discovery• Built-in security• Exports to Docker containers• Fully open-source

https://www.habitat.sh/

Conclusions

Don’t build or choose things requiring orchestrationBuild choreography into systemsMake management systems fleet-aware, not node-aware

Thank you!