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

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

Apr 16, 2017

Download

Technology

Julian Dunn
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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