Artur Tyloch
on 1 July 2015
Juju for Telcos and Service Providers Pt. 1
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.