Industry
Assurance
Offerings
Automation
Cloud
AWS
About the client
The client is a cloud application performance assurance company that is looking to build a platform that will proactively and continuously assure application performance.
Business challenges
The company is currently developing Machine Learning models to monitor different metrics for cloud application to be able to detect and alert for any anomalies. In future, the system may recommend corrective actions to prevent possible outages. MongoDB is the software identified for this project for which test data needs to be generated by deploying it on Kubernetes clusters.
Tool Set
- Kubernetes – Container Orchestration
- Kops – Kubernetes Cluster orchestration
- Ansible – Host configuration management
- Prometheus – Metrics monitoring
Our Approach
Assessment & Design
Infrastructure Build & K8s Setup
Deploy MongoDB
Test Script creation and validation
Load Simulation
Report & Share Scripts
01. Assessment & Design
- Assess the infrastructure requirements for the cluster
- Work out the infrastructure requirements for the load generation tool (such as JMeter)
- Design the test scenarios
- Architect Kubernetes namespace for the deployment
02. Infrastructure Build & K8s Setup
- Provision the necessary network, compute and storage resources
- Create Scripts & deploy Kubernetes on top of the VMs
- Setup access controls and configure network to deploy to K8s
- Setup Prometheus for monitoring
03. Deploy MongoDB
- Create/Source containers for each deployment model of MongoDB
- Create YAML scripts to deploy MongoDB on K8s and configure cluster as per deployment model
- Configure backups
- Instrument cluster to monitor using exporters for Prometheus (provided by OpsCruise)
04. Test Script creation and validation
- Create and validate test scripts for each of the test scenarios defined in Assessment & Design.
05. Load Simulation
- Provision necessary infra, install and configure JMeter
- Create test scripts for load simulation as per test plan
- Generate load and repeat the test 3 times for consistent results
06. Report & Share Scripts
- Provision necessary infra, install and configure JMeter
- Report results from the load simulation
- Export the results from Prometheus to an identified S3
- Share the deployment scripts used for deployment and testing
Solution
- Automated the deployment of MongoDB on Kubernetes using Kops on EC2 instances.
- Used Ansible to automate host level configuration of the cluster nodes.
- Generated test records to simulate mongoDB load.
- Deploy Prometheus with customized node exporter, mongoDB exporter to collect performance data of the cluster.
- Ran test simulations with the test data generated on mongoDB.
- Exported and presented the simulated performance of mongoDB, Kubernetes cluster for model creation.
Outcomes
Faster deployment reducing deployment time from weeks to hours.
Repeatable tests for better cluster performance data creation.
Automated process lead to high volumes of performance data at cheap per record cost.
Please write to us at contactus@1cloudhub.com if you wish to explore further on this deployment.