CASE STUDY: How Blue Sentry Facilitated an On-Demand Kubernetes Environment

Lee Hylton Case Studies, Cloud Technology, Containerization, DevOps, Kubernetes, Microservices, Uncategorized

Blue Sentry was engaged to help streamline systems for a provider of data monitoring services in the cloud. Blue Sentry’s engineers spent months working with their client’s internal team to help support a Infrastructure as Code (IaC) approach.  

During one of the regularly scheduled cadence calls, it was mentioned that the client’s development teams needed to be able to spin up new environments on-demand.  These needed to be completely self-contained and needed to have a process that allowed the developers to spin these environments up quickly and efficiently, with a minimum of effort.

The Solution

Blue Sentry was able to use its IaC approach and create templates for the On-Demand environments that spun up all resources needed to have a complete and functioning environment.  These environments are comprised of:

  • A shared Kubernetes cluster that auto-scales as compute is needed
  • Postgres
  • Clickhouse
  • Kafka
  • Redis 

All of these resources are running on Kubernetes, and automatically are bootstrapped and run in a dedicated namespace that matches the on-demand environment name passed in the YAML file.  Additionally, deleting on-demand from the YAML file will delete all associated resources as well.  

All CI/CD pipelines that have been instituted allow building feature branches of microservices for deployment to on-demand test environments.  Another benefit is all of these on-demand environments are set to automatically power down outside of business hours to manage cost.

The whole environment is controlled by a YAML file that passes parameters to the environment and is very simple for developers to spin up as needed.

 

Sample YAML Script

The Benefit

All of this is made possible by an IaC approach and the use of configuration management based on Helm charts and utilizing ArgoCD in the CI/CD pipeline to ensure that the Kubernetes environment matches the configurations stored in the Helm charts.

The biggest benefit to the client is that they are able to have dedicated load test and QA environments as needed. It is a very simple process to spin an environment up only requiring the developers to change the appropriate parameters in the YAML file.  This lets the client speed up the deployment of new features, ensure each environment is structured, and has all the same resources —which all work to allow them to roll out new features to their customers faster and more efficiently.  

There are also future plans to adopt this model for Production workloads as well, enabling the client to spin up specialized environments for customers that may be too large to run on a shared cluster.

To learn more about Blue Sentry’s Platform Team services for Kubernetes, click here.