-
Notifications
You must be signed in to change notification settings - Fork 2
Milestone 2.0 Motivation
To find the limits of the application built in Milestone-1. All the microservices need to be dockerized and have to be auto-scaled, replicated based on the load.
- Kubernetes setup for all the microservices.
- Load testing of all the microservices and clearly articulate the results.
- Fix minor issues in Milestone-1.
- Update front-end to be more responsive and increase user-experience by including alert boxes and streamline api calls
-
Install minikube. (Reference Link).
minikube start
-
Clone our project.
git clone https://github.com/airavata-courses/terra.git
-
Checkout to the Kubernetes branch.
git checkout kubernetes-setup
-
Execute the commands in the terminal.
kubectl apply -f MySQLConfigMap.yaml
kubectl apply -f MySQLService.yaml
kubectl apply -f rabbitmq.yaml
kubectl apply -f data-retrieval.yaml
kubectl apply -f api-gateway.yaml
kubectl apply -f weatherForecast.yaml
kubectl apply -f user-managment.yaml
kubectl apply -f userinterface.yaml
-
Create a tunnel to the user interface to access in the local machine.
minikube service user-interface
With these steps, you should see the application running.
Load testing is performed using Jmeter. For each service, we tested the maximum throughput that is possible with 1, 3 and 5 replicas with different ramp-up times.
Known issues:
- Kubernetes not scaling down when load is decreased. (#42)
- Gowtham -- Kubernetes setup, Bug fixes in Plotting service and Load testing data retrieval and forecast service.
- Saurabh -- Kubernetes setup, Front end Dockerization and several bug fixes.
- Himanshu -- Kubernetes setup, Load testing on weather services.
Milestone - 1:
Milestone - 2:
- Weather service and Forecasting service with 1 pod
- Weather Service and Forecasting Service with 3 and 5 pods
- User service - 1 pod
- User service -3 and 5 pods
- Auto Scaling
Milestone -3:
Milestone - 4: