SE401:Group33:DesignPlan

From Marks Wiki
Jump to navigation Jump to search

◄ Back

Structure

Our system will work as follows.

  • A web service will be deployed on an Amazon web EC2 cloud (hosting by Amazon).
  • A load balancing system will distribute requests across active machines (we assume this will do its job well).

Our system will sit on each machine providing a web service and monitor the load. When our system determines that the service is overloaded, it will start an extra physical machine to take some of the load. It will likewise shut down machines as the load eases off to minimise cost.


There will be one instance of our program for each physical instance of the web service. Only one of these will be set as the master and will be responsible for starting and stopping additional instances (based upon a consensus or just its own load?). If the master should become unavailable, the next available ranking instance will take its place as the master.

Detailed Structure

  • Architecture
    • The system always runs with a minimum of 3 instances. One is a load balancer for the other 2. This can be considered fault tolerant in that if the single load balancer fails, one of the other instances will take over it's role and start another instance to do the work.

Application

  • Written in Java
  • Written for Amazon Web Services

Load measuring techniques

  • CPU usage
  • Mem usage
  • RTT

Election Algorithms

Load Balancing

  • Our own load balancing implementation
  • Alternatives:
    • HAProxy
    • DNS/Round Robin 2

Testing

  • JMeter

◄ Back