Ensemble oscon 2011

  • 1,073 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,073
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
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>