Your SlideShare is downloading. ×
Ensemble oscon 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ensemble oscon 2011

1,125

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,125
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • * 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's configuration. * ./configure && make && make install is more powerful for custom work, but packaging gives you the benefits of repeatability and portability
  • * 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
  • * 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't necessarily mean you need to own computers. * Currently marrying the two, opensource and ”the cloud”, is a fairly manual or custom operation.
  • * 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.
  • 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
  • * Wikipedia's architecture has a lot of relationships * Adding 100 of each type isn't hard anymore – thank you config management. * Getting them to work together is still a challenge.
  • * demo-wiki PHP layer and memcached both scale out with 'add-unit' (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
  • * 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
  • Generated by ensemble's ”dot” output format
  • * There are some options that are unknowable, like the wiki's name * config-changed hook is executed every time a config is actually changed, not every time 'ensemble set' is called.
  • Transcript

    • 1. Ensemble – Welcome to Service Orchestration
      • OSCON 2011
      • 2. Clint Byrum < [email_address] >
      • 3. SpamapS on IRC
      • 4. http://ensemble.ubuntu.com/
    • 5. DevOps Distilled ™ - Isn't that config management?
      • Config Management
      • Machine Centric
      • 6. De-coupled from provisioning
      • 7. Knowledge Sharing Involves Customization and assumptions.
      • 8. Analog: ./configure && make && sudo make install
      • Service Orchestration
      • Service Centric
      • 9. Coupled with provisioning
      • 10. Designed for Knowledge Sharing
      • 11. Complimentary to config management
      • 12. Analog: apt-get install
    • 13. 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/
    • 14. Open Source http://www.flickr.com/photos/smiteme/1184482747/sizes/o/in/photostream/
    • 15. Open Source + The Cloud = Ensemble!
      • Yes this is the plug
      • 16. Some things are better served by NOT being in Ubuntu's archive.
      • 17. Ensemble in many ways makes Ubuntu Server invisible when using it properly.
    • 18. Formulas are simple
      • Some yaml metadata
      • 19. A few scripts that run at the right time
      • 20. Well encapsulated
      • 21. Written with whatever tool you want!
      • 22. Assumptions can be eliminated
      • 23. Easy to read, easy to review
      • 24. https://code.launchpad.net/principia
      ensemble : formula name : mediawiki revision : 84 summary : &quot;website engine for collaborative work&quot; description : | MediaWiki is a wiki engine (a program for creating a collaboratively edited website). It is designed to handle heavy websites containing library-like document collections, and supports user uploads of images/sounds, multilingual content, TOC autogeneration, ISBN links, etc. requires : db : interface : mysql slave : interface : mysql cache : interface : memcache provides : website : interface : http
    • 25. Relationships
      • Various strategies
        • - Assumptions in code
        • 26. - Assumptions in config mgmt.
        • 27. - Puppet – Exported Configs
        • 28. - Chef – Search
        • 29. - Ensemble – Fundamental component
      http://upload.wikimedia.org/wikipedia/commons/d/d8/Wikimedia-servers-2010-12-28.svg
    • 30. Example: Mediawiki
      • ensemble deploy mysql wiki-db
      • 31. ensemble deploy mediawiki demo-wiki
      • 32. ensemble deploy memcached wiki-cache
      • 33. ensemble deploy haproxy wiki-balancer
      • 34. ensemble add-unit wiki-cache
      • 35. ensemble add-unit demo-wiki
      • 36. ensemble add-relation wiki-db:db demo-wiki:db
      • 37. ensemble add-relation wiki-cache demo-wiki
      • 38. ensemble add-relation wiki-balancer:reverseproxy demo-wiki:website
    • 39. Add slaves
      • ensemble deploy mysql wiki-slave-db
      • 40. ensemble add-relation wiki-slave-db:slave wiki-db:master
      • 41. ensemble add-relation demo-wiki:slave-db wiki-slave-db:db
    • 42. Result
    • 43. Configure
      • ensemble set demo-wiki name=”Life, The Universe, and Everything”
      • 44. ensemble deploy mediawiki –config=arthur-dents-wiki.yaml arthur-dents-wiki
      http://www.flickr.com/photos/monado/2151215772/sizes/o/in/photostream/
    • 45. Formulas today HAProxy MySQL Jenkins
    • 46. The Future
      • Repository
      • 47. Local development
      • 48. Ubuntu Orchestra for ”Bare Metal”
      • 49. Stacks
      • 50. Storage Management
      • 51. Formulas, Formulas, Formulas, Formulas...
      http://www.flickr.com/photos/tom_twinhelix/3916931452/sizes/l/in/photostream/
    • 52. THANK YOU
      • https://ensemble.ubuntu.com/
      • 53. https://cloud.ubuntu.com/
      • 54. https://launchpad.net/ensemble
      • 55. #ubuntu-ensemble on Freenode
      • 56. Clint Byrum <clint.byrum@canonical.com>

    ×