Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,445 views

Published on

Orchestration-track talk at CfgMgmtCamp 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Who Needs Orchestration? What You Want is Choreography! Julian Dunn – Product Manager, Chef Software, Inc. – @julian_dunn
  2. 2. What is orchestration?
  3. 3. An ordered set of operations Across a set of independent machines Connected to an orchestrator only via a network.
  4. 4. Humans acting on Visio acting on machines Humans acting on code acting on machines
  5. 5. An ordered set of operations Defined in code Across a set of independent machines Connected to an orchestrator only via a network.
  6. 6. 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
  7. 7. Failure is hard to recover from
  8. 8. Mark Burgess, the father of Promise
  9. 9. Promises versus obligations according to P. Elliot Kitten
  10. 10. “You will feed my cat”
  11. 11. “Will you promise to feed my cat?”
  12. 12. “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”
  13. 13. Individual autonomy beats command-and-control
  14. 14. Trying to make promises about the behavior of the other nodes
  15. 15. What is choreography?
  16. 16. Autonomous actors: 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
  17. 17. Autonomous actors: 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
  18. 18. Chef Search has a foundation backends = 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
  19. 19. What about this? # on the backends themselves service ‘httpd’ do action :start notifies :create, ‘template[/etc/haproxy/haproxy.cfg]’, :nodes => ‘loadbalancers’ end
  20. 20. Chef, Puppet, Ansible, Salt, etc. +
  21. 21. • 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?
  22. 22. Don’t build or choose things requiring orchestration Build choreography into configuration management systems Make configuration management systems fleet-aware, not just node-aware Conclusions

×