Skip to content

Milestone 2

Devansh Jain edited this page Mar 20, 2020 · 2 revisions

Tasks Accomplished

  • Improved UI of the web application.
  • All the micro-services were containerized using Docker and tested on the localhost.
  • Micro-services could interact with each other while running in the local environment.
  • Using OpenStack API, created 1 Master and 3 Slave Instances in a specified Network, Subnet, Router and Security Group on Jetstream Cloud Environment.
  • To build, test and deploy containers on Kubernetes Master Instance, we used Travis CI and docker-hub as our registry.
  • Using Apache Jmeter, the web application was tested for peak loads.

Containerization

All the microservices are containerized and then the images are pushed on to the registry on docker-hub.

DockerHub ID: ansvohra

As and when there is a push in dockerized_microserviceName branches of the microservices, TravisCI builds the docker images of the corresponding microservice branch and then those docker images are pushed to the Docker Hub.

Travis CI

Every time there's a push made to the dockerized branch of the microservice, the image build can be seen here

Kubernetes

There are one master instance and three slave instances that were created for the purpose of deployment. of the microservice. IP addresses of the instances are given below: Master Instance: 149.165.168.66 Worker1 Instance: Worker2 Instance: Worker3 Instance:

Once there is a push to the dockerized branches of the micro-service, the docker images are pushed to the DockerHub and through Travis CI, we ssh into the master instance, and apply the config.yaml file to the master instance. This config.yaml have been created for each micro-service and can be referred to the kubectl branch in the repository.

The config files create 3 replicas of each micro-service of Type Service and Type LoadBalancer.

Jemeter Results

1 Replica 2000 Users

Throughput: 48.519/minute

one_replica

3 Replica 2000 Users

Throughput: 600.943/minute

three_replica