Introduction to Cloud Computing: Course Project

Introduction

This project provides you with the opportunity to select different aspects of cloud computing to explore:

  • Implementation and deployment of cloud computing infrastructures
  • Performance evaluation of virtualization approaches
  • Installation and deployment of computing services in the cloud

Implementation and Deployment

The CloudLab Openstack default profile contains set up of X compute nodes to to support KVM-based VMs without support for Docker.

  • Project Primary Task:
    • Augment the CloudLab Openstack default profile to support the inclusion of one additional compute node type that provides support for Docker virtualization using Zun.
  • Project Subtasks:
    • Understand the installation scripts provided in CloudLab Openstack default profile.
    • Able to install Zun manually on an instantiation of this profile.
    • Able to convert the installation steps into automated scripts embedded inside the CloudLab Openstack default profile.
  • Team requirements: 4 to 5 members.
  • Deliverable 1:
    • Team description
    • Documentation describing the execution flows of CloudLab Openstack Scripts
  • Deliverable 2:
    • In-class demonstration of Zun/Docker on CloudLab
  • Deliverable 3
    • Project report and/(or) GitHub repository contains the fully automated profile with Zun included.

Performance Evaluation

  • Motivation Paper: An Updated Performance Comparison of Virtual Machines and Linux Containers.
  • Project Primary Task:
    • Select at least four test benchmarks from the paper and repeat the benchmark performance of either KVM, Docker, Podman, or Singularity on different hardware on CloudLab.
  • Project Subtasks:
    • Able to automatically install KVM, Docker, Podman, or Singularity on a single CloudLab profile
    • Able to automate the install and configure of the selected benchmarks and run the benchmarks.
    • Able to automate the entire process within a single CloudLab profile and instantiate/collect results of at least 20 runs.
  • Team requirements: 3 to 4 members.
  • Deliverable 1:
    • Team description
    • Documentation describing the selected benchmarks and automated installation of the platform.
  • Deliverable 2:
    • In-class demonstration of one benchmark on the selected platform, including describing the installation process of the platform.
  • Deliverable 3:
    • Project report and/(or) GitHub repository contains the fully automated profile(s) for the corresponding benchmarks.

Installation and Deployment of Cloud Services

  • Install and deploy a multi-node computing service on CloudLab’s OpenStack Cloud or on Docker’s Kubernetes.
  • Project Primary Task:
    • Select a computing service consisting of at least two service nodes (i.e., a web server with a backend SQL server OR a Single-Sign-On LDAP server that supports a networked file system server …) and deploy the corresponding VMs/containers inside CloudLab’s Openstack infrastructure or Kubernete infrastructure.
  • Project Subtasks:
    • Able to setup VM nodes (possibly on local computers) that work together to provide a unified computing service to users.
    • Able to move these VM nodes into the Cloud, setup proper network environment, and link them together.
    • Able to setup at least 2-3 security groups/Docker subnet (DO NOT use the default security groups Openstack) or Docker default network).
  • Team requirements: 2 to 3 members.
  • Deliverable 1:
    • Team description
    • Documentation describing the selected computing service, including network diagram and specific details on what services being installed on which VM.
  • Deliverable 2:
    • In-class demonstration of the selected computing services on local machines or on CloudLab (may or may not be automated on CloudLab).
  • Deliverable 3:
    • Project report and/(or) GitHub repository contains the fully automated profile.

Project Report Requirements (for all project categories)

  • There are two components required for project report:
    • A written technical report.
    • An in-class technical presentation.
  • A technical report (minimum four pages, 1-inch margin, single-space, font size 11) that provides:
    • Detailed descriptions about the project progress,
    • Self-assessment about whether the project has met the final deliverable.
  • A 10-minute presentation that includes:
    • A brief but comprehensive description about the project.
    • Live demonstration (if applicable).
    • Discussion about technical challenges and potential future work.