Ensemble oscon 2011

1,195
-1

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,195
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

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.
  • Ensemble oscon 2011

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

      Clipping is a handy way to collect important slides you want to go back to later.

    ×