31
Who Needs Orchestration? What You Want is Choreography! Julian Dunn – Product Manager, Chef Software, Inc. – @julian_dunn

Choreography? You Don't Need Choreography. What You Want is Orchestration

Embed Size (px)

Citation preview

Page 1: Choreography? You Don't Need Choreography. What You Want is Orchestration

Who Needs Orchestration?What You Want is Choreography!

Julian Dunn – Product Manager, Chef Software, Inc. – @julian_dunn

Page 2: Choreography? You Don't Need Choreography. What You Want is Orchestration

What is orchestration?

Page 3: Choreography? You Don't Need Choreography. What You Want is Orchestration

An ordered set of operationsAcross a set of independent machines

Connected to an orchestrator only via a network.

Page 4: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 5: Choreography? You Don't Need Choreography. What You Want is Orchestration

Humans acting on Visio acting on machinesHumans acting on code acting on machines

Page 6: Choreography? You Don't Need Choreography. What You Want is Orchestration

An ordered set of operationsDefined in code

Across a set of independent machinesConnected to an orchestrator only via a

network.

Page 7: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 8: Choreography? You Don't Need Choreography. What You Want is Orchestration

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

Page 9: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 10: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 11: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 12: Choreography? You Don't Need Choreography. What You Want is Orchestration

Failure is hard to recover from

Page 13: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 14: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 15: Choreography? You Don't Need Choreography. What You Want is Orchestration

Mark Burgess, the

father of Promise Theory

Page 16: Choreography? You Don't Need Choreography. What You Want is Orchestration

Promises versus obligations according to P. Elliot Kitten

Page 17: Choreography? You Don't Need Choreography. What You Want is Orchestration

“You will feed my cat”

Page 18: Choreography? You Don't Need Choreography. What You Want is Orchestration

“Will you promise to feed my cat?”

Page 19: Choreography? You Don't Need Choreography. What You Want is Orchestration

“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”

Page 20: Choreography? You Don't Need Choreography. What You Want is Orchestration

Individual autonomy beatscommand-and-control

Page 21: Choreography? You Don't Need Choreography. What You Want is Orchestration

Trying to make promises about the behavior of the other nodes

Page 22: Choreography? You Don't Need Choreography. What You Want is Orchestration

What is choreography?

Page 23: Choreography? You Don't Need Choreography. What You Want is Orchestration

Autonomous actors:Make progress towards promised desired stateExpose interfaces to allow others to verify promisesCan promise to take certain behaviors in the face of failure of others

Page 24: Choreography? You Don't Need Choreography. What You Want is Orchestration
Page 25: Choreography? You Don't Need Choreography. What You Want is Orchestration

Autonomous actors:Make progress towards promised desired stateExpose interfaces to allow others to verify promisesCan promise to take certain behaviors in the face of failure of others

Page 26: Choreography? You Don't Need Choreography. What You Want is Orchestration

Chef Search has a foundationbackends = search(:node, ‘role[web]’)# problem: slow update time# problem: depends on single point of synchronization

template ‘/etc/haproxy/haproxy.cfg’ do variables(:backends => backends) … action :reload, ‘service[haproxy]’end

# problem: policy only updated whenever Chef converge happens

Page 27: Choreography? You Don't Need Choreography. What You Want is Orchestration

What about this?# on the backends themselvesservice ‘httpd’ do action :start notifies :create, ‘template[/etc/haproxy/haproxy.cfg]’, :nodes => ‘loadbalancers’end

Page 28: Choreography? You Don't Need Choreography. What You Want is Orchestration

Chef, Puppet, Ansible, Salt, etc.

+

Page 29: Choreography? You Don't Need Choreography. What You Want is Orchestration

• Better coordination across a fleet• Less reliance on external real-time state systems• Useful for workloads of short and long lifespans• Strong security built-in• “mgmt” – https://ttboj.wordpress.com/

What of the future?

Page 30: Choreography? You Don't Need Choreography. What You Want is Orchestration

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

Conclusions

Page 31: Choreography? You Don't Need Choreography. What You Want is Orchestration