CI/CD reference architecture: Functional test environments

The following reference architecture shows functional test environments created by a Jenkins server. Every hour, Jenkins uses the Kyndryl Cloud Uplift plugin to create new functional test environments based on a saved Kyndryl Cloud Uplift template. A series of functional tests are run, and then the environments are deleted. Functional tests can be run in parallel across multiple environments to speed up the test cycle.

This functional test process can be included in a larger CI/CD pipeline.

workflow 2

Functional test environments created by the Kyndryl Cloud Uplift plugin for Jenkins

Kyndryl Cloud Uplift features used

aTemplates

A fully-configured functional test environment is saved as a golden template. The template contains the functional test environment network settings, VM settings, and guest OS settings; it even preserves the state of any applications running on each VM guest OS. As new environments are needed, they are rapidly stamped out from the template. Because the environment settings are inherited from the template, each environment is in a controlled, known state; no manual configurations steps are needed.

bKyndryl Cloud Uplift plugin for Jenkins

The Jenkins server creates and manages test environments using Jenkins build steps included with the Kyndryl Cloud Uplift plugin. For example, the build process includes steps to Create environment from template, Change environment state, and Delete environment.

cVPN or ICNR networking w/ NAT

The test environments connect to the on-premises network via a NAT-enabled VPN or Private Network Connection. The NAT-enabled VPN automatically assigns an additional, unique IP address to each connected VM. This allows identical copies of an environment to connect to a centralized resource without IP address conflicts.

Alternately, the build resources can be hosted in a Kyndryl Cloud Uplift environment that communicates with the functional test environments via NAT-enabled ICNR.