Your submission was sent successfully! Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

You have successfully unsubscribed! Close

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

Juju for Telcos and Service Providers Pt. 1

This article was last updated 5 years ago.


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.

kubernetes logo

What is Kubernetes?

Designed with economics in mind, Canonical's solutions for telecommunications ensure ROI, providing first class quality at the same time.
Save costs by operating your infrastructure and applications the smart way, ensuring full automation from day 0 to day N.

Learn more about Ubuntu for telco ›

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

Canonical at India Mobile Congress 2024 – a retrospective

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...

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...

Profile-guided optimization: A case study

Software developers spend a huge amount of effort working on optimization – extracting more speed and better performance from their algorithms and programs....