CS 6211 System Design for Cloud Computing

[2-0-3-3]

 

Instructor Information

Instructor

Email

Office Hours & Location

Umakishore Ramachandran

rama@gatech.edu

KACB 2340, Office hrs: TBD

Teaching Assistant(s)

Email

Office Hours & Location

TBD

TBD

TBD

General Information

This course consists of a sequence of four hands-on project-intensive immersive modules aimed at giving students an in-depth experience in developing different layers of a Cloud computing infrastructure including software defined networks (SDN), system software, network function virtualization (NFV), and application development.  Each module (roughly 4-5 hours of lectures) is organized as discussion of the technical details pertaining to that topic (from selected readings from research papers and other online resources).  Each lecture has an associated student assessment component via a graded online quiz.  A supervised lab component complements the concepts discussed in the lecture.  For the supervised lab, the students are given instructions for the “hands-on workshop” involving development of code and experimentation using appropriate technologies (OpenFlow, Mininet, Maxinet, Azure Cloud, etc.) of the concepts presented in the lectures.  The supervised lab enables students to get started on the workshop in class and complete it before the following week’s lab meeting.

Pre- &/or Co-Requisites

CS 4210/6210 and consent of instructor.  For those who have taken similar courses elsewere

Course Goals and Learning Outcomes

The course is purpose-built to ensure that the students graduating from this course will have the necessary skillset to work at any level of the Cloud software ecosystem.  Each of the four modules will enhance the understanding of students on what goes on behind the scenes in a Cloud platform.    Each module has a capstone project that builds on the weekly hands-on workshops. 

 

Module 1: Software Defined Networking

Lectures: Topic covered include basics of cloud computing, origin of software defined networking, evolution of data center networks, network virtualization, testing, debugging, and measurements of data center network traffic.

Workshops and project: In the SDN module, the learners are expected to design, implement, and thoroughly test an SDN for a distributed server to cater to a variety of services, from regular HTTP web pages to real-time applications such as sensor streaming and video players. 

 

Module 2: Cloud System Software

Lectures: Topics covered include programming frameworks and their implementation issues in the Cloud, storage systems for the cloud, resource management, and virtualization technologies.

Workshops and project: In the system software module, the learners are expected to design, implement, and thoroughly test the distributed runtime system for Google’s MapReduce programming model in C++.

 

Module 3: Network Function Virtualization (NFV)

Lectures: Topics covered include origin of network functions, middleboxes, developing virtual network functions, provisioning computational resources for multiple virtual network functions via Cloud technologies and orchestrating their deployment using SDN, offloading NFV workload to a managed cloud, as well as other developments in the telecommunications industry that makes offloading NFV workloads viable.

Workshops and project: In the NFV course, the learners implement a control plane for the orchestration of network function chains on a shared physical infrastructure providing interfaces for scaling NF chains in response to workload changes. 

 

Module 4: Cloud Applications

Lectures: Topics include principles for developing scalable applications in the cloud; management of cloud application software to deal with upgrades, resiliency, and evolution; novel cloud applications; and emerging landscape of edge computing and multi-datacenter infrastructures.

Workshop and project: In the application development course, the learners are expected to define a large-scale application project drawn from different domains (eCommerce, digital health, critical infrastructure protection, emergency response, disaster recovery, etc.), and implement them demonstrating the use of Azure platform services, and the need for elastic deployment of the Azure server instances.

Course Requirements & Grading

Course Rules and Requirements

1.    Due to the hands-on nature of this project-oriented course, students are required to attend all the supervised labs. (Accommodations will be made for institute-required absences and personal “life” situations including health).

2.    All post-lecture auto-graded assessments have to be completed fully and on time.  Exceptions will be handled per institute rules.

3.    All the workshops and projects must be completed fully and on time. Exceptions will be handled per institute rules.

 

Excused absence from supervised labs:

·        Institute guidelines will be adhered to for students to be excused from attending the supervised lab sessions: https://catalog.gatech.edu/rules/4/

 

Grading (letter grades)

1.    Students must complete the assessments (quizzes) associated with each lecture.  The assessment quizzes serve to ensure that the students have learned the lecture materials.

2.    Due to the continuous assessment of student learning through the quizzes there are no exams in the course.  Plus, the hands-on workshops and projects based on the lecture material serve to ensure the learning goals of the course.

3.    Students will be given guidelines on software engineering principles to be adhered in code development.

4.    Letter grades in the course: there are only two letter grades for your performance in the entire course: A or F. To earn an A in the course, you have to do the following:

a.    Complete the auto-graded post-lecture assessment quizzes (with 100% score - you can have any number of attempts).

b.    Complete all the weekly hands-on workshops and capstone projects and get an “Accept” stamp from the teaching team for each unit work.

Grading (Auditing Requirements)

The requirements for successfully completing an audit of this class are as follows:

1.    Attend 70% of all synchronous class sessions. Since you will not be working in teams or on workshops, you may drop after the group session is complete, watch class videos, or anything else related to the class during the remainder of the online session.

2.    You must watch all mandatory pre-recorded classroom lessons.

3.    You must attempt and submit all weekly quizzes on-time; it will enhance your learning if you achieve 100%, as per the requirement for letter grade students.

4.    You should not join a team and are not required to submit any workshops or projects.

Extra Credit Opportunities

None.

Description of Graded Components

Please see the detailed course schedule at the end of this document.

Course Materials

All course materials will be available online through the class LMS.

1.    Video lectures of all the four modules

2.    Video instructions for workshops and projects

3.    Assessment quizzes for each lecture

4.    Slides and reference materials for all the lectures

Course Website and Other Classroom Management Tools

The course will be hosted on the institute LMS (CANVAS presently).

Course Expectations & Guidelines  

General

1.    Emphasis is on peer learning. Students are encouraged to seek help from fellow students, reaching out to developers on the web, etc., to enhance their learning experience.

2.    Honor code: what students turn in should be their code. Any infraction will be reported to the Office of Student Integrity for appropriate action.

Academic Integrity

Georgia Tech aims to cultivate a community based on trust, academic integrity, and honor. Students are expected to act according to the highest ethical standards.  For information on Georgia Tech's Academic Honor Code, please visit http://www.catalog.gatech.edu/policies/honor-code/ or http://www.catalog.gatech.edu/rules/18/.

Any student suspected of cheating or plagiarizing on a quiz, exam, or assignment will be reported to the Office of Student Integrity, who will investigate the incident and identify the appropriate penalty for violations.

Accommodations for Students with Disabilities

If you are a student with learning needs that require special accommodation, contact the Office of Disability Services at (404)894-2563 or http://disabilityservices.gatech.edu/, as soon as possible, to make an appointment to discuss your special needs and to obtain an accommodations letter.  Please also e-mail me as soon as possible in order to set up a time to discuss your learning needs.

Attendance and/or Participation

The lectures (available online) and associated assessments have to be watched and completed by the students ahead of the weekly hands-on workshops. Due to the hands-on nature of this project-oriented course, students are strongly encouraged to be attend all the supervised labs. 

Collaboration & Group Work

All the workshops and projects are expected to be completed in groups of two (students choose their partners to work with in the course).  Student may choose to perform the workshops and projects individually but the assessment criteria for evaluation will be the same regardless of whether a student completes the workshops and projects individually or in groups of two.  The teaching team will actively monitor the commits to github for all the students.  The grading session with the students will ascertain that both members of each team have made equal contribution to the workshop and project deliverables.

Students are encouraged to seek help from fellow students, reaching out to developers on the web, etc., to enhance their learning experience and problem-solving skills.

The final product submitted should be original development by each team.  In other words, there should be NO CODE NOR DESCRIPTIVE TEXT lifted from elsewhere and dropped into the deliverables.

Extensions, Late Assignments, & Re-Scheduled/Missed Exams

All the workshops and projects must be completed fully and on time. Exceptions will be handled per institute rules.  Institute guidelines will be adhered to for dealing with exceptions: https://catalog.gatech.edu/rules/4/

Student-Faculty Expectations Agreement

At Georgia Tech we believe that it is important to strive for an atmosphere of mutual respect, acknowledgement, and responsibility between faculty members and the student body. See http://www.catalog.gatech.edu/rules/22/ for an articulation of some basic expectation that you can have of me and that I have of you. In the end, simple respect for knowledge, hard work, and cordial interactions will help build the environment we seek. Therefore, I encourage you to remain committed to the ideals of Georgia Tech while in this class.

Campus Resources for Students

Students will be provided Cloud computing resources (Microsoft Azure credits) as needed for completing the workshops and projects.

 

Course Schedule

Schedule

Lectures

Workshop/Project to Work in Class

Workshop/Project/Quiz Due

Week 1

SDN: Course Overview & Introduction

(Optional) Workshop 1

None

(Optional) Yousef Khalidi interview

Video: CC-SDN-Workshop-01

Week 2

SDN: Evolution of Data Center Networks

SDN: Mininet 

SDN: Quiz 1

(Optional) Nisheeth Srivastava presentation

Video: CC-SDN-Workshop-02

Week 3

SDN: Data Center Network Example

SDN: Northbound/Southbound APIs

SDN: Mininet

(Optional) Dave Maltz Presentation

Video: CC-SDN-Workshop-03

SDN: Quiz 2

Week 4

SDN: DC Networks: Testing, Debugging and Traffic Evaluation

SDN: Ryu Controller

SDN: Northbound/Southbound APIs

Video: CC-SDN-Workshop-04

SDN: Quiz 3

Week 5

Systems: Distributed Programming Frameworks

SDN: Project

SDN: Ryu Controller

Video: CC-SDN-Workshop-Project

SDN: Quiz 4

Week 6

Systems: Storage Systems for the Cloud

Systems: Master node

SDN: Project

(Optional) Aaron Ogus presentation

Video: CC-CSS-Workshop-02

Systems: Quiz 1

(Optional) MapReduce in Azure

Video: CC-CSS-Workshop-01

Week 7

Systems: Resource Management

Systems: MapReduce Filesystem

Systems: Master node

(Optional) Subramanian Ramaswamy Presentation

Video: CC-CSS-Workshop-03

Systems: Quiz 2

Week 8

Systems: Virtualization Technologies

Systems: Worker Task Execution

Systems: MapReduce Filesystem

Video: CC-CSS-Workshop-04

Systems: Quiz 3

Week 9

NFV: Introduction to Network Functions

Systems: MapReduce Final Implementation

Systems: Worker Task Execution

Video: CC-CSS-Workshop-Project

Systems: Quiz 4

Week 10

NFV: Developing Virtual Network Functions

NFV: Introduction to Virtual Network Functions

Systems: MapReduce Final Implementation

Video: CC-NFV-Workshop-01

Systems: Final Submission

NFV: Project

NFV: Quiz 1 

Video: CC-NFV-Workshop-Project

Week 11

NFV: System Architecture for NFV Ecosystem

NFV: SDN for basic traffic forwarding to a network function

NFV: Introduction to Virtual Network Functions

Video: CC-NFV-Workshop-02

NFV: Quiz 2

Week 12

NFV: Deploying Virtualized Network Functions in Managed Cloud infrastructures

NFV: Connection-affinity with multiple NF instances

NFV: SDN for basic traffic forwarding to a network function

(Optional) NFV: Abhigyan Sharma presentation

Video: CC-NFV-Workshop-03

NFV: Quiz 3

Week 13

Apps: Principles for Cloud Application Development

Apps: Azure Services

NFV: Connection-affinity with multiple NF instances

Apps: Project Proposal

NFV: Quiz 4

Video: CC-CA-Workshop-01

Week 14

Apps: Infrastructure and Application Management

Apps: Workshop 1 (To be choosen by student from available workshops)

NFV: Project

Apps: Emerging Cloud Applications

App: Project Proposal

Apps: Quiz 1

Week 15

Apps: Trending Cloud Infrastructure

Apps: Workshop 2 (To be choosen by student from available workshops)

Apps: Azure Services

Apps: Workshop 1

Apps: Quiz 2

Apps: Quiz 3

Week 16

None

Apps: work on project

Apps: Workshop 2

Apps: Quiz 4

Week 17

Exam week

None

Apps: Project