Thursday, 7 October 2021

Typical Kubernetes deployment setup for large scale Traffic Parrot virtual service and API mock installations

Traffic Parrot customers use Kubernetes and Docker to deploy virtual services in environments used by both QA and development teams.  

Below is a typical Kubernetes infrastructure for deploying applications using a structured build automation process.




Our customers typically use Ingress to expose the services outside of the cluster. 

We recommend doing blue-green rolling releases to maintain the uptime of the virtual services.

If you use JMS or IBM MQ you will need to reach out to the message broker that is hosted outside the cluster.

In this example, Splunk is used for the log aggregator. Flux is often used to maintain the cluster's state inside a Git repository and let that sync up itself using the tool. We don't recommend using kubectl commands or Rancher UI, or anything like that to make manual changes to the cluster.

Prometheus can be useful for health checking and making sure things are still up and running.  

Traffic Parrot stores its configuration in JSON configuration files. And those configuration files define which endpoints are supported for a particular pod and determine what kind of virtual services or API mocks it has. 

Delivery Pipeline

This diagram shows an approach for setting up a continuous delivery pipeline to deploy Traffic Parrot containers running API mocks and virtual services in Kubernetes. 



This is an example of a delivery pipeline with a separated deployment configuration from the virtual service configuration. The developers, once they've prototyped their virtual services locally, they'll commit the Traffic Parrot configuration to a system under test repo. 

In “2. commit TP config”, a Docker image with TP config files is built that can then be used inside the Kubernetes cluster. 

The SUT repo has many Traffic Parrot configs, and it's triggering a pipeline so one or more of those configs are then built into the image.

In “5. Commit TP Deployment” where Traffic Parrot is deployed with a Docker image name and version, the deployment configuration is held in a Git Flux repository and will be synced to the Kuberenetes cluster using the Flux-CD tool. 


For more information tailored to your company’s specific needs please contact us.