Ensemble – Welcome to Service Orchestration OSCON 2011
Clint Byrum < [email_address] >
SpamapS on IRC
http://ensemble.ubuntu.com/
DevOps Distilled ™ - Isn't that config management? Config Management Machine Centric
De-coupled from provisioning
Knowledge Sharing Involves Customization and assumptions.
Analog: ./configure && make && sudo make install Service Orchestration Service Centric
Coupled with provisioning
Designed for Knowledge Sharing
Complimentary to config management
Analog: apt-get install
The Cloud http://www.flickr.com/photos/gsbrown99/2706179635/sizes/o/in/photostream/ http://www.flickr.com/photos/kaptainkobold/5892507537/sizes/z/in/photostream/ http://www.flickr.com/photos/stevendepolo/4226949238/sizes/l/in/photostream/ http://www.flickr.com/photos/emsl/4929154481/sizes/l/in/photostream/
Open Source http://www.flickr.com/photos/smiteme/1184482747/sizes/o/in/photostream/

Ensemble oscon 2011

Editor's Notes

  • #3 * Developers write their code thinking of services, not machines. * De-coupled meaning that w/ config management, you say ”give me a machine, and then configure it this way”, where as with coupling you say ”Give me a service configured this way, and put it on these machines” * Loose coupling with a two way comm channel lets us write formulas without having to assume anything about related services.. we can learn the answers from the other service&apos;s configuration. * ./configure &amp;&amp; make &amp;&amp; make install is more powerful for custom work, but packaging gives you the benefits of repeatability and portability
  • #4 * Ensemble is mostly about using IaaS * EC2 only right now – This includes Eucalyptus and OpenStack * Deploy fast, add new infrastructure fast, and repeat over and over. * Pay for what you use * Invest in infrastructure only when it makes sense for YOU
  • #5 * Open source makes it easy to solve your problems without having to appropriate and get locked in to software with a purchase. * Utility computing is similar.. running things on computers doesn&apos;t necessarily mean you need to own computers. * Currently marrying the two, opensource and ”the cloud”, is a fairly manual or custom operation.
  • #6 * Deploys existing open source solutions fast - ”apt-get for the cloud” * Also deploys YOUR app fast. * Makes it easy to define how your application relates to existing opensource services. * Helps you manage those relationships in ”The cloud” * Tightly integrated with Ubuntu – A leader in the cloud space.
  • #7 Some yaml metadata – lists relationships that it understands and config options A few scripts that run at the right time – configure service based on relationships and config settings Well encapsulated – MySQL formula is generic, and usable by any application that can speak to MySQL
  • #8 * Wikipedia&apos;s architecture has a lot of relationships * Adding 100 of each type isn&apos;t hard anymore – thank you config management. * Getting them to work together is still a challenge.
  • #9 * demo-wiki PHP layer and memcached both scale out with &apos;add-unit&apos; (can scale back with remove-unit). * Eventually this will be presentable not as commands in serial, but a ”stack” which will be loaded into the environment, and dumpable from a running system
  • #10 * These commands add a slave instance, and relate it to the master * They also tell the demo-wiki service to use it as a slave * add-unit wiki-slave-db would provide even more read scale out * Write scaling is a bit more tricky * Adding slaves gets us to the subset of the wikipedia graph above.. still lots of relationships to define
  • #11 Generated by ensemble&apos;s ”dot” output format
  • #12 * There are some options that are unknowable, like the wiki&apos;s name * config-changed hook is executed every time a config is actually changed, not every time &apos;ensemble set&apos; is called.