Week 3: Non-functional requirements pt 1

What happens when more users show up than a single server can handle? How do we scale a system to meet demand without wasting money?

Learning Outcomes:

  • Distinguish functional from non-functional requirements, and operational from structural non-functional requirements
  • Estimate the load a system needs to handle based on its traffic patterns
  • Compare vertical and horizontal scaling, and the cost of each
  • Explain how load balancers, containers, and Kubernetes enable horizontal scaling
  • Differentiate scalability from elasticity
  • Explain why server-side state makes horizontal scaling difficult
Lecture Slides
Tutorial Slides