DevOps-ing (or Automating) the mobile network management

Digital Catapult
6 min readOct 10, 2022

--

5G VICTORI (VertIcal demos over Common large scale field Trials for Rail, energy and media Industries) is a pan-European project which showcases how advanced 5G technology can transform services in dynamic and diverse environments — for example, demonstrating how a pop-up 5G network could support the delivery of high quality media services to meet transient increases in demand at congested locations such as railway stations. The 5G-VICTORI project team scoped and planned a common open platform that would help to automate the management of network slices and resources across a common virtual infrastructure for multiple verticals, Europe-wide. Why was this needed, and how was it achieved? Mark Rouse, 5G Software Developer at Digital Catapult, discusses more below.

A principle goal within the telecommunications industry was to transform existing proprietary infrastructures to a more open and common virtual architecture, whereby resources could be co-created and shared amongst the different partners. Typically, there was a lack of automation or reusability when creating resources to deploy network services. For example, control and data planes used to be hardwired into network switches, which meant they were non-programmable, and had to be manually configured. Subsequently, to configure network equipment to support a specific vertical use case would have been a time consuming exercise.

However, with the use of 5G architectures and Software Defined Networks (SDNs), what is now achievable is the means to build a platform that will allow end-users to work together with the various stakeholders to deploy network services across common virtual infrastructures, such as AWS or Microsoft Azure.

A common web-enabled platform — the 5G-VICTORI Infrastructure Operating System (5G-VIOS) — was scoped and planned as a core part of the project. 5G-VIOS is a cloud-native inter-domain orchestration platform designed to enable the management of network slices and resources in a more automated and collective manner over common virtual infrastructure. 5G-VIOS provides the means to deploy network services across different sites using dynamic layer-2 or layer-3 interconnections. This will allow users to carry out inter-site service composition and onboarding, and end-to-end network slice monitoring and management of deployed services, as shown below.

5G-VIOS acts as the control plane master for deployed network services. This means that 5G-VIOS will automatically configure virtual assets with an Edge’s Orchestrator, such as OSM, to create any required VM instances. 5G-VIOS will also configure an Edge’s SDN Controller to program connected network switches with the appropriate VLAN information to connect inter-site applications together. Additionally, 5G-VIOS incorporates AI within the Profiling microservice, which uses machine learning to automatically calculate the optimal resources needed for each deployed network service.

Not only does 5G-VIOS provide a modern web platform for shared users to create and manage network services, but its design and deployment also incorporates a modern approach. Applying common Open Source technologies, an Agile ethos, and DevOps best practices, an automated and streamlined workflow, as shown below, has been devised to help facilitate the rapid development and deployment of 5G-VIOS.

5G-VIOS is based around a Service Based Architecture (SBA) that uses microservices to split specific application functional requirements across several components. Each microservice utilises RESTFul APIs to provide a communication mechanism between the microservices. APIs are automatically self-documenting to outline how to use the APIs. A microservice ecosystem grants 5G-VIOS to be expanded and developed with enhancements or new innovations without impacting other existing functions. Each microservice is supported by either a PostgreSQL, MongoDB, or ElasticSearch database, depending on functional needs, to store data relating to deployed network services. 5G-VIOS will keep track of what it is being asked to do, and where.

Docker is used to provide an application container for each microservice that allows it to be independently maintained. The use of Docker ensures that each microservice is self-contained with all the necessary libraries needed to run each microservice. This is an important design consideration because each microservice may have different dependencies that need to be maintained, and Docker allows this to be managed efficiently.

Each microservice is developed locally, using either the Django, Flask, or FastAPI Python frameworks. Git is used to continually upload new code to version control repositories hosted on GitHub. GitHub stores the latest images of each of the microservices as packages within each respective repository. Therefore, a miroservice’s package can be then deployed to production environments as and when needed.

Updating each microservice package is an automatic process that is managed by GitHub Actions. When new code is submitted to its respective repository, an automatic workflow starts in which a number of checks are performed. These checks include running any application unit testing, and code linting to ensure that things are functioning as expected, and new bugs have not been introduced into the various code bases. Each of these checks must successfully pass first before a new package is automatically built and ready for deployment.

To deploy 5G-VIOS and its microservices, two key technologies are used. With Helm, a declarative set of instructions, or charts, are created, and version controlled, for how each microservice is to be deployed, and its required resources to operate. Kubernetes within an OpenStack environment acts as a Docker container orchestration manager. In Kubernetes, a virtual 5G-VIOS cluster is created with the necessary virtual resources, in which each microservice is installed. A number of provisioning scripts exist that allow the automatic setup of an appropriate 5G-VIOS Kubernetes cluster, along with the auto installation of the microservices.

When a new package for a microservice successfully builds, Flux will automatically detect this and deploy the new package to a specified 5G-VIOS instance. This seamlessly and automatically maintains the latest revisions of each microservice within a 5G-VIOS instance. This keeps each 5G-VIOS instance up-to-date.

With the deployment of all microservices to a 5G-VIOS instance, a set of automated API Integration tests, currently amounting to 69 checks, using the PyTest framework can be initiated. The API Integration Test Suite is split into several functional workflows that automatically run through each of the different processes necessary to deploy a network service end-to-end. The integration tests check that external calls from microservice-to-microservice are working as expected.

This approach allows the 5G-VIOS platform to be continually developed in a robust and repeatable manner, and for new updates to be automatically deployed to any 5G-VIOS instance on a rolling basis.

Programmatically, it is possible with 5G-VIOS to automatically:

  1. Register/deregister Edges;
  2. Create/delete Experiments consisting or one or more network services;
  3. Collectively instantiate network services in an Experiment;
  4. Collectively terminate network services in an Experiment;
  5. Migrate a single network service from one Edge to another;
  6. Profile network services for optimal resource requirements; and
  7. Monitor key KPIs of network services.

Partnering with the University of Bristol, i2cat, Zeetta Networks, Mativision and Urban Hawk, 5G-VIOS will undergo a number of field trials in October 2022 to fully test its capabilities in deploying several third-party virtualised network applications.

--

--