Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Adam Israel
on 24 November 2015

In my last post, I introduced you to Juju and talked about how it could help you. Now I’d like to walk you through some real world examples of Juju in action.


Bundles are used to represent workloads. Bundles can be simple, like the WordPress example in the previous post, or complex.


If you’re not familiar with OpenStack, it is a collection of services for managing a cloud computing platform. Think Infrastructure as a Service (IAAS).

I’ve heard horror stories from people who’ve spent months trying to deploy and configure OpenStack. Several different tools for automating an OpenStack Deployment have been developed, and this video from the October 2015 OpenStack Summit compares them (with Juju a strong favorite):

How easy is it to install OpenStack? It’s this easy as this:

$ juju quickstart openstack-base

Sit back and wait, and soon you’ll have an OpenStack environment with Keystone, Glance, Ceph, Nova-compute and more ready for testing.

Big Data

This is the area I’m personally most excited about. Big Data solutions are all aimed at taking some of the complexity out of analysing huge datasets.

The base of these workloads is Apache Hadoop, bundled with tools like mapreduce, Tez, Hive, Pig and Storm. Drink from the Twitter firehose with Flume. Crunch Open Data from your favorite city or government to spot trends in voter turnout or track neighborhood gentrification or crime rates.


Containers are the new hot thing, but there’s no reason why you can’t use Juju to orchestrate the deployment of them. Docker? No problem. Kubernetes? Juju does that, too.

There are advantages to containerizing your application. It gives you a nice layer of isolation, and the addition of container networking with Flannel makes it even more powerful.

Juju steps in to compliment the benefits of a container by offering a way to manage and scale them in the cloud. As a developer, you can write a dockerfile to launch your application, and use the Docker charm to deploy it.

Things at scale

For a typical development workflow, you may only need the bare minimum of machines to run your application. Once you deploy to the cloud for production use, you’re going to need the ability to scale your application.

For example, if your database is running slow, you can easily add scale up:

juju add-unit mysql -n 3

This would add three new units to MySQL and configure replication and failover, things that are complicated and often fragile to do by hand.


The cloud offers a dizzying array of hardware options. Spinning rust or SSD. Lots of memory, or CPU, or both. 1 or 10 Gigabit networking. You can speculate about which options are best suited for your application but even the most well-informed of guesses can be wrong when put to practice.

Benchmarking provides the ability to exercise a service in order to evaluate its performance, and collect hardware and software statistics to monitor how your workload is performing. Maybe you want to test your database under load, or stress your web application, or identify potential bottlenecks. Could it be disk or network I/O slowing you down? Is it poorly optimized database queries? This is the tool you’ll want to use to answer those questions.

Workloads are complex things, with many moving parts. Like Hydra, bottlenecks are a shifting target; strike down one and two more rise to take it’s place.

In order to tune workloads, I’ve gone hunting for blog posts or white papers showing best practices for the services I use. I’m often frustrated, though, because all the pretty graphs in the world don’t help me if I can’t replicate the results. It leads to a trust issue; sure, it ran fast for you, but how do I recreate it?

Benchmarking’s focus on repeatable, reliable testing means that you can repeat benchmarks over and over again and expect to see similar results. You can then make adjustments to your hardware or software, repeat the benchmark and compare the results.

That effort can then be distilled into best practices that anyone using or deploying a service can benefit from.


Juju is a robust devops tool, reducing the complexity of cloud development and orchestration. It’s growing community of users and contributors, including IBM, Intel, Microsoft, Cisco and China Telecom means it’s going to be around for a long time.

Test drive Juju on

Read original article

Related posts

Simon Fels
20 March 2024

Implementing an Android™ based cloud game streaming service with Anbox Cloud

Cloud and server Article

Since the outset, Anbox Cloud was developed with a variety of use cases for running Android at scale. Cloud gaming, more specifically for casual games as found on most user’s mobile devices, is the most prominent one and growing in popularity. Enterprises are challenged to find a solution that can keep up with the increasing ...

5 September 2023

도커(Docker) 컨테이너 보안: 우분투 프로(Ubuntu Pro)로 FIPS 지원 컨테이너 이해하기

FIPS Security

오늘날 급변하는 디지털 환경에서 강력한 도커 컨테이너 보안 조치의 중요성은 아무리 강조해도 지나치지 않습니다. 컨테이너화된 계층도 규정 준수 표준의 적용을 받기 때문에 보안 문제 및 규정 준수 요구 사항이 발생합니다. 도커 컨테이너 보안 조치는 경량의 어플라이언스 유형 컨테이너(각 캡슐화 코드 및 해당 종속성)를 위협 및 취약성으로부터 보호하는 것을 수반합니다. 민감한 개인 데이터를 처리하는 데 의존하는 ...

Valentin Viennot
2 June 2023

Docker container security: demystifying FIPS-enabled containers with Ubuntu Pro

container Article

In today’s rapidly changing digital environment, the significance of robust Docker container security measures cannot be overstated. Even the containerised layer is subject to compliance standards, which raise security concerns and compliance requirements. ...