Video Streaming Service on AWS

architecture-diagram View on GitHub

  • The primary objective of this project was to understand and delve deeper into the fundamental concepts of cloud computing and its associated components.
  • Cloud computing, an ever-evolving field and is useful in Machine Learning and AI as well.
  • This technical document is written from the perspective of a cloud architect, encompassing comprehensive aspects in the design of end-to-end cloud applications and services.

The project unfolds across several sections, with a focus on developing a Video Streaming Platform-as-a-Service, same as Netflix:

  1. Define business requirements and link them to corresponding technical requirements, justifying the necessity of each technical requirement for a specific business need.
  2. Discuss trade-offs between business requirements, acknowledging the engineering constraints No free lunch in engineering.
  3. Compare different major cloud service providers and select AWS based on varied criteria for the video streaming service.
  4. Detail the foundational building blocks of the design, explaining the corresponding AWS services. Comparison of these cloud providers.
  5. Reference of the AWS well architected framework.
  6. Present an architectural diagram, discussing the six pillars outlined in AWS documentation.
  7. Additionally, incorporate design principles and best practices.
  8. Conduct an experiment using Kubernetes to explore load balancing and autoscaling. Employ Locust to generate load and observe the autoscaling of K8s pods in response to load fluctuations.

The project extensively references AWS pillar documentation for comprehensive insights into cloud architecture.

building-blocks

The detailed Report can be found here