Edit Page

Project

Course Project

Grade: 20%

Description

Form a team of 2-3 students to design and deploy a high-availability, fault-tolerant system using cloud technologies. Your team will choose an open-source application or system to deploy across multiple regions and Availability Zones (AZs). The project will help you develop the skills in building a resilient and scalable infrastructure.

Project Requirements:

  • Compute Requirements: Use at least two different compute types (e.g., VMs, PaaS, serverless functions, or containers).
  • Storage Requirements: Use at least two storage types (e.g., block storage volumes, shared storage, or object storage buckets).
  • Networking: Design a custom virtual network with subnets and routing tables to control traffic flow and segmentation. Your solution must be deployed within a virtual network spanning at least one region and one or more Availability Zones (AZs).
  • Security: Protect the network using security groups, firewalls, and other relevant security measures.

Your final system must be scalable, secure, and fault-tolerant, running across multiple regions and Availability Zones to maintain high availability even during failure scenarios.

Stage 1: Team Formation and System Proposal

Due: Week 5

Before starting the deployment, form your team and propose the system you plan to build and deploy. Submit these deliverables:

  • Name of the open-source software or system you will deploy
  • List of team members
  • Architecture diagram showing your planned design

Stage 2: Implementation and Deployment

Due: Week 14

Deploy your system according to your proposed architecture. This stage involves:

  • Setting up compute resources
  • Provisioning storage solutions
  • Configuring networking and security components
  • Testing system functionality and resilience
  • Documenting deployment process and configurations

Stage 3: Demo, Report and Submission

Due: Week 15

You will demonstrate your deployment in class during the final lecture.

Due: Week 15; Wednesday December 10th at 1:00PM

Submit a report as presentation slides in PDF format that includes the following:

  • Introduction
  • Software/system being deployed
  • System architecture
  • Key compute, storage, and networking components
    • Availability: What steps must be taken to ensure minimal downtime during failures?
    • Scalability: How could your deployment handle increased request volume?
    • Elasticity: How your deployment automatically adjusts resources based on demand?

Submission:

  • YouTube link to video demonstration of your deployment
    • The video must show the key compute and storage resources on your cloud provider portal
  • Presentation slides in PDF format to demonstrate and document your cloud solution, architecture, deployment process, and considerations for scalability, availability, and elasticity

Grading Rubric

ComponentPointsCriteria
Team Formation & Proposal2Team formation, software selection, and initial architecture diagram
Compute Requirements (I)2Implementation of first compute type (VMs, containers, etc.) with proper configuration
Compute Requirements (II)2Implementation of second compute type (PaaS, serverless, etc.) with integration
Storage Requirements (I)2Implementation of first storage type (block, object, etc.) with proper setup
Storage Requirements (II)2Implementation of second storage type (shared, distributed, etc.) with integration
Networking Design2Custom virtual network with subnets, routing tables, multi-region/AZ deployment
Security Implementation2Security groups, firewalls, and comprehensive security measures
System Functionality Demo2Working deployment demonstration and system functionality
Architecture Documentation & Technical Q&A2Clear system architecture explanation and confident responses to technical questions
YouTube Video Demo & Scalability Analysis Report2YouTube video Demo that provides a walkthrough of the deployment, and a report that details a thorough analysis of scalability, availability, and elasticity
Total20