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 us. A member of our team 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


Serdar Vural
28 October 2024

Canonical at India Mobile Congress 2024 – a retrospective

AI OpenStack

With an ambition to become Asia’s technology hub for telecommunications in the 5G/6G era, India hosts the annual India Mobile Congress (IMC) in Pragati Maidan, New Delhi. IMC is an annual trade exhibition for the telecommunication sector, bringing together operators, system integrators, as well as software and hardware vendors. It has now ...


Serdar Vural
20 September 2024

Canonical and OpenAirInterface to collaborate on open source telecom network infrastructure

5G Article

Canonical is excited to announce that we are collaborating with OpenAirInterface (OAI) to drive the development and promotion of open source software for open radio access networks (Open RAN). Canonical will bring automation in software lifecycle management to OAI’s RAN stack, alongside additional infrastructure capabilities. This will be ...


sergiodj
18 November 2024

Profile-guided optimization: A case study

Ubuntu Article

Software developers spend a huge amount of effort working on optimization – extracting more speed and better performance from their algorithms and programs. This work usually involves a lot of time-consuming manual investigation, making automatic performance optimization a hot topic in the world of software development. Profile-guided opt ...