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


Benjamin Ryzman
27 March 2024

What is a telco cloud?

Telecommunications Article

Explore the benefits & requirements of a telco cloud. Learn how it enhances telco agility, efficiency and customer experience. Implement a successful telco cloud with Canonical’s open-source software. ...


Shashank Balashankar
19 March 2024

Canonical collaborates with NVIDIA to simplify enterprise AI deployments with NVIDIA BlueField-3 operating an optimised, Ubuntu-based Linux OS 

Networking Article

The NVIDIA BlueField-3 networking platform – powering the latest data processing units (DPUs) and SuperNICs, and transforming data centre performance and efficiency – runs BlueField OS, an optimised Linux operating system (OS) derived from Ubuntu. With Ubuntu’s signature maintenance and support guarantees, the comprehensive Ubuntu Pro sof ...


Serdar Vural
5 December 2023

Canonical joins the Sylva project

Canonical announcements Telecommunications

Canonical is proud to announce that we have joined the Sylva project of Linux Foundation Europe as a General Member. We aim to bring our open source infrastructure solutions to Sylva and contribute to the project’s goal of providing a platform to validate cloud-native telco functions. Sylva was created to accelerate the cloudification of ...