-
Notifications
You must be signed in to change notification settings - Fork 6
Milestone 4
- Developing Jmeter Script
- Load Testing
- Spike Testing
- Measuring Fault Tolerance
sudo apt-get update &&
sudo apt-get install default-jre &&
sudo apt-get install zip &&
sudo apt-get install unzip
- Installing Jmeter
- Dependencies: Concurrent Thread Groups
- Enabling Jmeter Cache Storage
- Configuring Jmeter web-browser certificate and localhost proxy
- Storing images into the Jmeter bin folder
We have tested for various replica count and user counts. Our test results are grouped hierarchically along the replica-count and user-count. The results consist of the following data:
- JMX file: Jmeter test file
- credentials.csv: user credentials used for testing users
- index.html: web page to display test statistics and graphs
- results.csv: test summary report
For 4 replicas of our Kubernetes microservices, we observed the following throughput graphs for 100, 500, and 1000 users.
<2-3 graphs>
Scaling-up command:
kubectl scale deployment <deployment-name> --replicas=<higher-replica-number> -n <namespace>
Scaling-down command:
kubectl scale deployment <deployment-name> --replicas=<lower-replica-number> -n <namespace>
Dependencies:
To measure the fault tolerance of our system we made use of Kubemonkey (Chaos Engineering) concept. Following is the code to install helm & kubemonkey:
cd PingIntelligence &&
git checkout automation-script &&
git pull &&
bash helm-installation.sh &&
cd .. &&
git clone https://github.com/asobti/kube-monkey &&
mv PingIntelligence/values.yaml kube-monkey/helm/kubemonkey/ &&
helm install -name my-release kubemonkey -f kube-monkey/helm/kubemonkey/values.yaml &&
kubectl apply -f PingIntelligence/kubemonkey-config.yaml
The above code enables kubemonkey to monitor the default namespace, kills 3 random service replicas with a frequency of daily run (Scheduling runs at 8am and pods are destroyed from 10 am-4 pm).
Architectural Changes:
- Deploying Kafka, Zookeeper, MySQL, consumer-queue1 & consumer-queue2 into another namespace that is blacklisted by Kube-monkey
- Establishing communication between pods of different namespaces (default and other).
- Introducing Replication controller/ReplicaSet along with Horizontal Pod Autoscaler (HPA).
https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/
https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/