What's on this page

Introduction

Pre-requisites

The following links introduce terms used through out this section:

Introduction

Cloud DevOps best practices and principles are at the heart of the TNC-O solution. To scale any Cloud based networking program, a unified operations and engineering model is combined with a set of automation tools that can simplify and automate the complexities of an end-to-end VNF or Network Service lifecycle.

NFV DevOps

The TNC-O CI/CD tools and processes are designed to simplify and automate the following DevOps tasks:

The CI/CD Hub wraps the core TNC-O automation capabilities with tools that support the “day 0” VNF onboarding and testing processes and also the “day 2” VNF change management tasks.

The CI/CD Hub provides a set of tools that manage VNF and Network Services artifacts across the following NFV orchestration systems:

CI/CD Solution

The picture above shows a complete TNC-O CI/CD Environment. TNC-O design tools create VNF/Network Service descriptors and behaviour test scripts, using a Git repository as their source version control. Supplemental artifacts such as VIM software images are stored in a general repository such as Nexus.

Versions of VNF and Network Service packages are taken from these repositories and built and tested in development and pre-production environments. A CI server, such as Jenkins, pulls TNC-O artifacts from Git and deploys to TNC-O build slaves, the CI server also pushes software images to the appropriate development or pre-production VIMs attached to the TNC-O build slaves. Any included behaviour tests in the VNF or Network Service project are run by the CI server to validate this versions expected behaviour.

On successful completion of VNF or Network Service behaviour tests, the CI server uses TNC-O tools to package a version of a binary VNF and Network Service package and stores it in the general repository.

The CI/CD Hub provides a set of open source software components that play the Git source control, general repository and CI server roles as defined above. The CI/CD Hub is a reference implementation intended to demonstrate how to implement a TNC-O CI/CD pipeline, it is not a supported product. The CI/CD Hub can be used to run a production pipeline, or you can swap components out and use the tool of your choice, but the CI/CD Hub project is intended for demonstration purposes only.

The CI/CD Hub reference implementation provides installer scripts to stand up and attach the following software tools to your TNC-O design and build slaves.

A basic getting started guide and instructions how to run a “hello world” demo is also installed to the Gogs server. You can learn more about the CI/CD Hub software here.

As stated above, development and build slave TNC-O instances need to be in place and attached to the CI/CD Hub as appropriate, please follow TNC-O installation guide and additional configuration detailed in the CI/CD Hub guide to “connect” TNC-O instances:

VNF and Network Service Packages

The CI/CD Hub extends “standard” Cloud software toolchains with the LMCTL tool that manages TNC-O packages.

VNF & NS packages

The following packages need to be managed by the TNC-O CI/CD process and tools:

Package Contents

VNF and Network Service packages can be versioned and distributed to TNC-O environments. TNC-O command line tools aid in the creation and management of these binary NFV packages.

The sections below give an overview of the types of packages included in the CI/CD process.

VNF Package

A VNF package can contain the following artifacts:

Network Service Package

A typical Network Service package will contain the following artifacts:

Package lifecycle

Network Service and VNF Packages have a simple state model.

Package Lifecycle

The CI/CD methodology and process can handle packages in these various states appropriately. As seen above, Network Service package development are dependent on VNFs being in pre-production state or higher.

Environments

The picture above shows the types of environments and supplemental packages in a typical package workflow.

Onboarding/development tasks typically use shared local TNC-O and virtual VIM environments to perform the initial creation of VNF or Network Service packages. In addition the engineer will typically create his/her own unit test style VNF packages that are used to test the target VNF or Network Service package behaviour is operationally correct.

In the pre-production/test stage, packages are moved to environment representative of the production environment. TNC-O and VIM environments are typically dedicated to running performance and interoperability tests. The environments are owned by the automated pipeline.

Once fully tested, packages are available to be deployed to the Production environment.

Test Packages

Behaviour testing a VNF or Network Service requires a set of Test VNFs be developed that run functional tests or generate and monitor traffic. Test VNF package lifecycles are identical to the VNFs under test, binary packages with versions are run through the same CI/CD process.

Test Packages

In addition to the Test VNF package that performs the actual test, a set of behaviour scripts are included with the test package that run a series of tests and evaluate of the behaviour reported by one of more test VNFs is as expected.

See behaviour testing for more details

VNF CI/CD Process

This sections lays out the VNF package lifecycle workflow.

VNF Process

Network Service CI/CD Process

This sections lays out the Network Service package workflow.

Network Service Process

Next Steps and further reading

To get started with a new project see getting started guide.

To learn more about the CI/CD Hub software, read the software overview section