Welcome to CSE 291

Course Description

CSE-291 (Cloud Computing) is an advanced graduate course in cloud computing. It is both a paper-based, discussion-oriented course, and one with a significant project component. It takes a vertically oriented view of cloud computing, covering the full stack from data center architecture through application frameworks. The course highlights the key challenges and approaches at each level of designing and building a cloud computing infrastructure.

Learning Objectives

At the completion of this course, students will have demonstrated the ability to describe the challenges and other considerations and common tools and techniques, as well as analyze and evaluate potential solutions, in each of the following aspects of cloud computing infrastructure.

  1. Data Center Networking
  2. Distributed File Storage
  3. Distributed Key-Value storage, including NoSQL Databases
  4. Virtualization, and the management thereof
  5. Resource Scheduling and Elasticity
  6. Software Frameworks
  7. Analysis, synthesis, and communication about associated technical matters

Learning Objectives In Detail

1. Data Center Networking

At the completion of this section of the course, students will be able to...

  1. Describe the differences in the environment and requirements associated with data center networking in support of cloud computing, as compared to those associated with each of long-haul networking and networking for conventional data centers.
  2. Explain the traffic patterns and associated impacts of cloud computing upon traditional 3-tier data center architectures
  3. Describe and evaluate the techniques employed, to address the demands of cloud computing at both the architectural (link and network) and transport layers.
  4. Use simulation as a tool for the evaluation of cloud computing data center network architrectures.

2. Distributed File Storage

At the completion of this section of the course, students will be able to...

  1. Describe common requirements associated with file and non-file storage in support of cloud computing
  2. Describe and analyze common techniques for addressing the challenges
  3. Design and implement special purpose distributed file systems in support of cloud computing

3. Distributed Key-Value Storage

At the completion of this section of the course, students will be able to...

  1. Describe the role of key-value storage in cloud computing
  2. Differentiate general key-value storage from file storage
  3. Discuss and analyze the design of exemplar key-value stores designed or used in suppot of cloud computing
  4. Describe the concept of NoSQL databases, their role in cloud computing, and their benefits and limits as compared to traditional SQL databases, as well as discuss and analyze the design of common exemplar solutions.
  5. Describe the role of, importance of, and techniques for in-memory storage, e.g. memcached and redis, in cloud computing, as well as design and analyze the role of the same in cloud-based solutions.

4. Virtualization

At the completion of this section of the course, students will be able to...

  1. Describe the role virtualization playsn in the management of cloud computing infrastructures, with an emphasis on the key benefits and challenges
  2. Describe and analyze common techniques employed to implement and manage virtualization, including migration. in support of cloud computing, including, but not limited to, lighter weight containers.

5. Scheduling and Elasticity

At the completion of this section of the course, students will be able to...

  1. Describe the challenges associated with allocating resoures to applications in cloud computing, especially with respect to resource scheduling and elasticity
  2. Describe common scheduling techniques and techniques to support elasticity, as well as analyze their capbilities and weaknesses.
  3. Evaluate the applicability of applicable techniques to real-world challenges

6. Frameworks

At the completion of this section of the course, students will be able to...

  1. Describe the motivation for, application of, and architecture of, common cloud computing software frameworks
  2. Implement an application using a common cloud computing framework

7. Analysis, Synthesis, and Communication

At the completion of this section of the course, students will be able to...

  1. Read, understand, analyze, and discuss research papers and other technical publications.
  2. Compare and contrast the applicability, benefits, and limitations of techniques and approaches described by different sources in different contexts.
  3. Synthesize solutions through the adaptation and incorporation of techniques and approaches described by different sources in different contexts.
  4. Learn through discussion
  5. Help others to learn through discussion
  6. Work within a team to achieve the other goals of this course.