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
| Component | Points | Criteria |
|---|---|---|
| Team Formation & Proposal | 2 | Team formation, software selection, and initial architecture diagram |
| Compute Requirements (I) | 2 | Implementation of first compute type (VMs, containers, etc.) with proper configuration |
| Compute Requirements (II) | 2 | Implementation of second compute type (PaaS, serverless, etc.) with integration |
| Storage Requirements (I) | 2 | Implementation of first storage type (block, object, etc.) with proper setup |
| Storage Requirements (II) | 2 | Implementation of second storage type (shared, distributed, etc.) with integration |
| Networking Design | 2 | Custom virtual network with subnets, routing tables, multi-region/AZ deployment |
| Security Implementation | 2 | Security groups, firewalls, and comprehensive security measures |
| System Functionality Demo | 2 | Working deployment demonstration and system functionality |
| Architecture Documentation & Technical Q&A | 2 | Clear system architecture explanation and confident responses to technical questions |
| YouTube Video Demo & Scalability Analysis Report | 2 | YouTube video Demo that provides a walkthrough of the deployment, and a report that details a thorough analysis of scalability, availability, and elasticity |
| Total | 20 |