12 Questions about Juju
Alexia Emmanoulopoulou
on 17 June 2015
Tags: Juju , kubernetes
If you want to get the basics about Juju, here is a good place to start!
1) What is Juju?
Juju is a state of the art, open source service modelling tool. It forms part of Ubuntu’s cloud portfolio, together with Ubuntu Server, Ubuntu OpenStack, MAAS for bare-metal provisioning, and Landscape for systems management and monitoring. Juju allows you to model, configure, manage, maintain, deploy and scale cloud services quickly and efficiently on public clouds as well as on MAAS, OpenStack, and LXD containers. You can choose to use Juju from the command line, or through its beautiful and powerful GUI.
2) What is service modelling?
We see service modelling as the ability to quickly and easily deploy and manage services (whether it’s a cloud infrastructure like OpenStack, or a workload such as Hadoop), connect those services, and quickly scale them up or down, all without disruption to your cloud environment. Application-specific knowledge including configuration, dependencies, etc. is encapsulated in service definition files called ‘charms’. All you have to do is call an available charm (or write your own), and the corresponding service will be deployed in seconds.
3) Can I use Juju with Puppet or Chef?
Puppet and Chef are great tools for configuring servers and keeping them consistent across a network. Juju works a layer above that by focusing on the service the application delivers, regardless of the machine on which it runs. One of the main advantages of Juju is its dynamic configuration ability, which allows you to re-configure services on the fly, add, remove, or change relationships between services, and scale in or out with ease. If you are using a configuration management tool to get your machines up and running, Juju can complement it with the service modelling layer which performs all the tasks described above. Integration is quite straightforward. Because Juju charms can be written in any language, you can include your existing Puppet or Chef code in a Juju charm. No need to write new code. Model, connect and configure. The charm browser has hundreds of charms and bundles allowing you to build complex services and see them deployed in the GUI.
4) What are Juju bundles?
A bundle is a collection of charms designed to give you an entire working deployment in one easy to use collection. For instance, there are existing Hadoop and MongoDB cluster bundles that you can deploy with one command or a simple drag-and-drop in the Juju GUI. Rails and Django bundles allow your developers to spin up workloads on their laptops and work in an environment similar to a real production deployment. New bundles are added every week. An excellent complement to bundles is Quickstart, a plugin that lets you bootstrap Juju, start it and the GUI, and even deploy a bundle, all with one command. You can go from zero to a full cloud deployment in seconds.
5) Can I use Juju in a non-Ubuntu environment?
The Juju client can run on any Windows, OSX, or Linux machine. As far as deploying to non-Ubuntu systems we currently support deploying to CentOS and Windows, with support for SUSE Enterprise Linux and Debian on the horizon. Monitor, manage and maintain. The Juju GUI offers comprehensive tools that allow you to scale out, triage errors and update your services.
6) Can I use Juju to move services across clouds?
You can use Juju to copy application architectures and recreate them on a wide number of clouds and deployment platforms. Right now you cannot have services spanning different clouds but this is something we hope to add in an upcoming release.
7) What language are charms written in?
Charms can be written in any language that can run on Ubuntu, e.g. Python, Ruby, PHP, or even a simple bash script. Some charms even reuse existing Chef or Ansible cookbooks for that winning combination of reuse and extensibility.
8) What charms are currently available?
Charms are available for hundreds of common open source applications such as MySQL, MongoDB and others, with new ones being added every day. Check out our charms store for an up to the minute list of charms: jujucharms.com
9) Can I write my own charms? How?
You can share your charm with the world and gain lots of brownie points! As always, there is a whole host of tools to help you get started: jujucharms.com/get-started. And if you get stuck, our vast developer community is only a click away: jujucharms.com/community
10) In summary, why should I use Juju?
- Juju is the fastest way to quickly model and deploy an OpenStack cloud – reduce the time from days to minutes
- Works with your existing configuration management tool
- Scale your workloads up or down very easily
- No prior knowledge needed of the application stack (contrary to other tools)
- GUI and command line tool – allows you to experiment and visualise what you’re doing
- Includes providers for all major public clouds as well as OpenStack, MAAS and LXC containers
- Offers you a quick and easy environment to test deployments on a local machine
- Charm Store: download optimised charms, each written by the experts in that application
- Deploy entire cloud environments in seconds using bundles. Create a bundle once and re-deploy it in a new environment saving massive time and effort
- Environment portability: deploy the same charms to EC2, OpenStack, your data center and your laptop
- Local providers on LXD containers allow you to re-create the production deployment environment on your laptop, minimising portability issues when deploying to a public cloud, OpenStack, or bare metal
11) I need enterprise-grade support. Is that available?
Absolutely. Canonical, the company behind Ubuntu, provides professional, commercial support for the entire Ubuntu cloud suite. Even better, Landscape, our enterprise systems management tool, is included in all of our support packages. Check out Ubuntu Advantage, Canonical’s support programme, and choose the level of service you need: ubuntu.com/cloud/plans-and-pricing
12) Where can I learn more?
The Ubuntu Cloud pages give you an overview of our cloud products and how Juju fits in.
The Juju community pages include information on charms, getting started, and lots more.
What is Kubernetes?
Kubernetes, or K8s for short, is an open source platform pioneered by Google, which started as a simple container orchestration tool but has grown into a platform for deploying, monitoring and managing apps and services across clouds.
Newsletter signup
Related posts
Kubernetes backups just got easier with the CloudCasa charm from Catalogic
For a native integration for Canonical’s Kubernetes platform, Juju was the perfect fit, and the charm makes consuming CloudCasa seamless for users.
Canonical and OpenAirInterface to collaborate on open source telecom network infrastructure
Canonical is excited to announce that we are collaborating with OpenAirInterface (OAI) to drive the development and promotion of open source software for open...
Canonical Delivers Secure, Compliant Cloud Solutions for Google Distributed Cloud
Today, Canonical is thrilled to announce our expanded collaboration with Google Cloud to provide Ubuntu images for Google Distributed Cloud. This partnership...