MLUG Workshop January 2014 - Introducing Juju

  • 1,912 views
Uploaded on

William Reade from Canonical talks about Juju

William Reade from Canonical talks about Juju

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • http://gg.gg/17l8q
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,912
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
5
Comments
1
Likes
1

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

Transcript

  • 1. Juju Introduction Malta LUG, 18 January 2014
  • 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. 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. 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. 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. DEMO environments.yaml, switch, status, gui, charms, deploy
  • 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. 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. DEMO charms, local provider deploy
  • 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. DEMO the one I made earlier
  • 12. DEMO yay, minecraft
  • 13. Questions?
  • 14. More... https://juju.ubuntu.com/ https://juju.ubuntu.com/docs/ https://jujucharms.com/ https://comingsoon.jujucharms.com/ email: william.reade@canonical.com irc: fwereade generally in #juju and #lug-mt on freenode