CS 6211 System Design for Cloud Computing
[2-0-3-3]
Instructor
Information
Instructor |
Email |
Office
Hours & Location |
Umakishore Ramachandran |
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 lab meeting in the following week.
CS 4210/6210 and/or consent of instructor (for those who have taken similar courses elsewhere).
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 the 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
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.
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.
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.
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.
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.
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/
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 |