Project Milestone 3 - airavata-courses/ABC GitHub Wiki

Welcome to the ABC wiki!

You can access the app here http://149.165.169.38:3000/login

Initial concept (Napkin diagram):

napkin diagram

Architecture:

Architecture

User Story:

  1. User will be able to create Tweets once logged in
  2. One will be able to search for other users and follow them
  3. Tweets will appear in the feed based on the users they follow.
  4. Current news trends will be displayed to user

Task accomplished in this milestone

  1. Containerized microservices using docker
  2. Maintaining multiple instaces of each service using Kubernetes
  3. Load Testing using JMeter

Docker Containers

We containerized following services using docker and uploaded then into docker hub

  • Java service - generating feed, maintaining records of tweets by user, likes per tweet
  • Flask service - getting top news from external api
  • Node service - managing user registration, login and relationships

Kubernetes

We used master-slave mode to deploy microservices. We create yaml file containing docker image identifier from dockerhub and number of replicas. When sent to Kubermaster, it takes care of downloading and deploying appropriate docker instances to maintain the desired state over the cluster.

Improvements from Milestone 2:

  1. All dependency issues were resolved because of using docker.
  2. Kubernetes allows system to more scalable than before.

Load Testing using JMeter

screenshots of graphs table

Challenges Faced: