Skip to main content

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

Artur Tyloch
on 1 July 2015


I joined Canonical a year ago to work with the telco ecosystem – Network Operators, Communication Equipment Providers and innovative new players and startups interested in expanding or building their presence in the telco domain.

During this year we have worked on many projects focused on the deployment of Virtual Network Functions in cloud environments. Very often our telco partners ask us how to use Juju and MAAS to model telco workloads. This in this blog I will try to explain how to map Juju to the ETSI NFV architecture ideas.

Juju is a generic Virtual Network Function Manager (VNFM) in the ETSI NFV architecture. We do not propose it as a specific Network Function Virtualization Orchestrator (NFVO).

Juju is a universal service modelling system, it models services, their relationships and scale, independent of substrate (cloud, virtualised or physical).


Example of Juju GUI modelling the Metaswitch Clearwater IMS and Telscale Restcomm VNFs

Services are first-class concepts in the Juju model, in contrast with traditional configuration management systems which focus on machines. This service-orientation makes Juju particularly well suited to the role of VNFM, enabling higher-level orchestrators to make business decisions and articulate those decisions very clearly and simply through the underlying model provided by Juju.

In Juju, a service is provided by a group of units. The scale of the service is determined by the number of units providing that service, and availability (“HA”) of the service is often determined by the number of units combined with their relationship to heartbeat or monitoring systems. Juju models both traditional scale-up software, and modern scale-out software, equally well.


Example of Juju GUI deploying complex software such as OpenStack

These units might be placed on physical machines, in virtual machines, or in machine containers.


Juju GUI: machine view of Clearwater unit

The flexibility to place service units on physical, virtual, cloud and container machines is important both for production and for the development cycle. In production it is important to have choice of substrate – choice of cloud, choice of hypervisor, choice of physical hardware. In the development cycle, it is important not to be limited to substrates that are difficult for developers to have rapid and easy access. With Juju, VNF development and testing can iterate very quickly, because developers have near-infinite access to lightweight local containers.

Placement of service units on machines can be done by Juju, based on constraint languages which it passes on to the underlying substrate, or by an outside agent, which can provide resource orchestration and direct Juju to place units explicitly on resources that it has allocated for them. In the ETSI language, Juju supports both Vi-Vnfm and Or-Vi based resource orchestration.

Juju models the relationships between services, giving a topological view of service dependencies that typically also maps to control flows. However, Juju is not involved in the data plane – it can provide information to support acceleration of the data plane, but Juju is purely focused on control and coordination semantics.

Since Juju is a universal service modelling system, it uses a standard key-value format for information passed to services. In the ETSI language, Ve-Vnfm is a flow of events and information that are independent of the internal implementation of the EM/VNF. This addresses the stated requirement that the Ve-Vnfm reference point should be agnostic to the VNF semantics.

Juju is particularly good at service composition – the combination of multiple services into a single functional system. It provides two mechanisms for such composition – integration of services across the network through standard interfaces, and the ability to co-locate services on a common machine. This is valuable because it decouples service definitions from implementation-specific preferences such as monitoring, enabling easier reuse of service definitions in different environments (production, test) and different organisations.

In this blog post we’ve introduced Juju and how it maps to the ETSI NFV architecture at the highest level. In the next blog we’ll dig deeper into Juju features and how they can be leveraged by telcos and service providers.

Related posts


Edoardo Barbieri
30 May 2024

Canonical releases Real-time Ubuntu 24.04 LTS

Ubuntu Article

London, 30 May 2024. Today Canonical announced the availability of Real-time Ubuntu 24.04 LTS.  By ensuring high-priority processes are executed first, with deterministic response times, Real-time Ubuntu 24.04 LTS reduces latency compared to mainline Linux and enhances the system’s ability to handle time-sensitive operations effectively.  ...


Benjamin Ryzman
18 September 2024

What is the 5G Edge and Multi-Access Edge Computing?

Ubuntu Telecommunications

Introduction The 5G Edge is revolutionising the telecommunications industry by significantly enhancing network performance, bringing computing power closer to users, and dramatically reducing latency, enabling faster and more efficient services. This advancement is crucial for a variety of applications across different sectors, including ...


Massimiliano Gori
16 September 2024

Announcing Authd: OIDC authentication for Ubuntu Desktop and Server

Ubuntu Article

Today we are announcing the general availability of Authd, a new authentication daemon for Ubuntu that allows direct integration with cloud-based identity providers for both Ubuntu Desktop and Server. Authd is available free of charge on Ubuntu 24.04 LTS. At launch, Authd supports Microsoft Entra ID (formerly Azure Active Directory) ident ...