Skip to content

Milestone 2.0 Motivation

GowthamCh edited this page Mar 8, 2022 · 11 revisions

Goal:

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.

Checklist:

  • 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

Installment guide to run Kubernetes services, deployments in your machine.

  1. Install minikube. (Reference Link).
    minikube start

  2. Clone our project.
    git clone https://github.com/airavata-courses/terra.git

  3. Checkout to the Kubernetes branch.
    git checkout kubernetes-setup

  4. Execute the commands in the terminal.
    cd Kubernetes\ files/
    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

  5. 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

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)

Contribution:

  • Saurabh -- Kubernetes setup, Front end Dockerization and several bug fixes in the front end.
  • Himanshu -- Kubernetes setup, Load testing on weather services and bug fixes in the Java services.
  • Gowtham -- Kubernetes setup, Bug fixes in Plotting service and Load testing data retrieval and forecast service.

All of us equally contributed to writing the reports, graphs and write up. We would like to thank all the TA's for their timely help whenever is needed.

Clone this wiki locally