Scaling

Vertical Scaling

  • aka scaling up
  • We increase the hardware of the servers
  • Load balancing not required
  • Single point of failure
  • Inter process communication which is fast
  • Consistent
  • Hardware limit

Horizontal Scaling

  • aka shared-nothing architecture or scaling out
  • We increase the number of servers to handle large load
  • Load balancing is required
  • Benefits
    • Comparatively cheap
    • Can achieve high reliability through redundancy
    • Resilient (recover from failures)
    • Scales well when users increase
  • Disadvantages
    • Network calls which is slow
    • Data inconsistency

Elastic

  • automatically add computing resource when load increases