SlideShare a Scribd company logo
1 of 14
Download to read offline
Juju Introduction
Malta LUG, 18 January 2014
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
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>
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.
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
DEMO
environments.yaml, switch, status, gui, charms, deploy
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.
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
DEMO
charms, local provider deploy
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)
DEMO
the one I made earlier
DEMO
yay, minecraft
Questions?
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

More Related Content

Viewers also liked

Maas Juju Introduction
Maas Juju IntroductionMaas Juju Introduction
Maas Juju Introduction
openstackindia
 
Ubuntu Cloud Juju
Ubuntu Cloud JujuUbuntu Cloud Juju
Ubuntu Cloud Juju
eNovance
 

Viewers also liked (13)

Juju + Puppet (Puppetconf 2011)
Juju + Puppet (Puppetconf 2011)Juju + Puppet (Puppetconf 2011)
Juju + Puppet (Puppetconf 2011)
 
Ubuntu OpenStack_Juju-MAAS
Ubuntu OpenStack_Juju-MAASUbuntu OpenStack_Juju-MAAS
Ubuntu OpenStack_Juju-MAAS
 
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
 
Présentation maas
Présentation maasPrésentation maas
Présentation maas
 
Understanding Juju Charms
Understanding  Juju CharmsUnderstanding  Juju Charms
Understanding Juju Charms
 
Maas Juju Introduction
Maas Juju IntroductionMaas Juju Introduction
Maas Juju Introduction
 
2016 coups de coeur Clic91
2016 coups de coeur Clic912016 coups de coeur Clic91
2016 coups de coeur Clic91
 
Service orchestration and metal as a service with juju and maas
Service orchestration and metal as a service with juju and maasService orchestration and metal as a service with juju and maas
Service orchestration and metal as a service with juju and maas
 
MAAS High Availability Overview
MAAS High Availability OverviewMAAS High Availability Overview
MAAS High Availability Overview
 
MAAS & Ubuntu Core: OCP Tech Day, Facebook Menlo Park, Aug 30th
MAAS & Ubuntu Core: OCP Tech Day, Facebook Menlo Park, Aug 30thMAAS & Ubuntu Core: OCP Tech Day, Facebook Menlo Park, Aug 30th
MAAS & Ubuntu Core: OCP Tech Day, Facebook Menlo Park, Aug 30th
 
Cloud Foundry Deployment Tools: BOSH vs Juju Charms
Cloud Foundry Deployment Tools:  BOSH vs Juju CharmsCloud Foundry Deployment Tools:  BOSH vs Juju Charms
Cloud Foundry Deployment Tools: BOSH vs Juju Charms
 
Ubuntu Cloud Juju
Ubuntu Cloud JujuUbuntu Cloud Juju
Ubuntu Cloud Juju
 
Juju presentation
Juju presentationJuju presentation
Juju presentation
 

Similar to MLUG Workshop January 2014 - Introducing Juju

JBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic PlatformJBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic Platform
elliando dias
 
Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2
Davor Guttierrez
 

Similar to MLUG Workshop January 2014 - Introducing Juju (20)

Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With Nagios
 
Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势
 
Monitoring with Ganglia
Monitoring with GangliaMonitoring with Ganglia
Monitoring with Ganglia
 
JBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic PlatformJBoss Drools - Open-Source Business Logic Platform
JBoss Drools - Open-Source Business Logic Platform
 
Cloud Juju Primer
Cloud Juju PrimerCloud Juju Primer
Cloud Juju Primer
 
Introduction to containers
Introduction to containersIntroduction to containers
Introduction to containers
 
Deploying Prometheus stacks with Juju
Deploying Prometheus stacks with JujuDeploying Prometheus stacks with Juju
Deploying Prometheus stacks with Juju
 
Solving the Package Problem
Solving the Package ProblemSolving the Package Problem
Solving the Package Problem
 
Crikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor WorkshopCrikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor Workshop
 
Drupalcon 2021 - Nuxt.js for drupal developers
Drupalcon 2021 - Nuxt.js for drupal developersDrupalcon 2021 - Nuxt.js for drupal developers
Drupalcon 2021 - Nuxt.js for drupal developers
 
De-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environmentDe-centralise and conquer: Masterless Puppet in a dynamic environment
De-centralise and conquer: Masterless Puppet in a dynamic environment
 
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic EnvironmentDe-centralise and Conquer: Masterless Puppet in a Dynamic Environment
De-centralise and Conquer: Masterless Puppet in a Dynamic Environment
 
Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2Perfect Linux Desktop - OpenSuSE 12.2
Perfect Linux Desktop - OpenSuSE 12.2
 
HPP Week 1 Summary
HPP Week 1 SummaryHPP Week 1 Summary
HPP Week 1 Summary
 
Java Threads: Lightweight Processes
Java Threads: Lightweight ProcessesJava Threads: Lightweight Processes
Java Threads: Lightweight Processes
 
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
Puppet Camp Silicon Valley 2015: How TubeMogul reached 10,000 Puppet Deployme...
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
 
Docker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12XDocker and Containers for Development and Deployment — SCALE12X
Docker and Containers for Development and Deployment — SCALE12X
 
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode[DockerCon 2020] Hardening Docker daemon with Rootless Mode
[DockerCon 2020] Hardening Docker daemon with Rootless Mode
 
Secure Developer Access at Decisiv
Secure Developer Access at DecisivSecure Developer Access at Decisiv
Secure Developer Access at Decisiv
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

MLUG Workshop January 2014 - Introducing Juju

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