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.

MLUG Workshop January 2014 - Introducing Juju


Published on

William Reade from Canonical talks about Juju

Published in: Technology
    Are you sure you want to  Yes  No
    Your message goes here

MLUG Workshop January 2014 - Introducing Juju

  1. 1. Juju Introduction Malta LUG, 18 January 2014
  2. 2. Welcome ● Who am I? ○ ● What is Juju? ○ ● William Reade, tech lead on juju-core It’s a service orchestration framework written in go Why might you need such a thing? ○ Your time is precious
  3. 3. A momentary digression ● Installing software used to be a real hassle: ○ ○ $ tar … ○ $ ./configure; make install ○ ● $ curl … <terrifying error message> Compare: ○ $ sudo apt-get install … ○ <this usually actually works>
  4. 4. Juju is like apt, but for the cloud Consider your everyday life. At any moment, you may find that: ● You have to deploy Yet Another WordPress Blog. ● You want to set up a wiki for a large project with many users. ● You’ve heard that Big Data is Big, and you feel like maybe you ought to do something with hadoop. ● You’ve been asked to deploy a highly-available OpenStack cluster. …but all of these things require some degree of effort and attention. This is just like the bad old days all over again.
  5. 5. Juju connects services together What’s a service? ● It’s a component of a distributed system called an environment ● It’s made up of some number of units, which run actual software ● It can (usually) connect to other services by defining relations ● It’s defined by a charm Some examples? ● wordpress, mongodb, cassandra, hadoop, mysql, django, ceph, varnish, node.js, postgres, nova-compute, tomcat, nyancat, mediawiki, minecraft
  6. 6. DEMO environments.yaml, switch, status, gui, charms, deploy
  7. 7. So… charms A charm is essentially a directory with the following contents: ● hooks/ ○ ● metadata.yaml ○ ● contains executable files with special names defines possible relations with other services config.yaml ○ defines possible user settings for a service ...but that’s pretty reductive.
  8. 8. Running charms ● juju tracks the state of the system, and notifies each unit of relevant changes by executing particular hooks from the charm ● hooks don’t accept arguments, but information flows to and from hook processes via environment variables and executable hook tools made available in the hook process’s $PATH ● hooks can be implemented in any language; juju doesn’t impose restrictions on your preferred tools
  9. 9. DEMO charms, local provider deploy
  10. 10. Debugging charms ● you can watch what’s happening globally with juju debug-log ● you can specify logging config to your needs with juju set-env logging-config=”<root>=WARNING; juju.worker. uniter=INFO” ● you can intercept hooks on a particular unit with juju debug-hooks <unit> ● you can run arbitrary commands on a unit, across all units of a service, and across the whole environment with juju run (not yet in a stable release)
  11. 11. DEMO the one I made earlier
  12. 12. DEMO yay, minecraft
  13. 13. Questions?
  14. 14. More... email: irc: fwereade generally in #juju and #lug-mt on freenode