CS293B Course Project Page for 2020
and the instructor's coordinates are
- Instructor: Rich Wolski
- Office: Harold Frank Hall, 5165
- email: rich@cs.ucsb.edu
- office hours: by appointment
Course Outline
The course itself will combine, lectures, assigned reading, and in-class
discussion with a quarter-long software development project that attempts to
familiarize the student with the strengths and weaknesses of current
approaches to cloud computing. In addition, students will be expected to
describe the research challenges they have identified as a result of their
experiences in the course in both written and oral presentation formats.
Specific topics the course will cover include
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Public, Private, and hybrid clouds
- Edge and Fog computing
- The "Internet of Things" (IoT)
- Amazon AWS
- Microsoft Azure
- Google App Engine
- Condor High Throughput Computing
- Eucalyptus
- Data center virtualization and bare-metal provisioning
- Software Defined Networking
as well as other applications and subsystems that have
applicability to cloud computing.
Grading
The course will be graded as
- 50% class participation
- 50% course project
Class participation will be based on discussions of the reading material that
is slated for each lecture period and on the quality of your responses to a
number of quizzes (see below) on various readings.
Class participation will be a little bit different this quarter for reasons
that I think must be all too obvious. My goal, with this graded part of the
course, is to assess your level of learning. Class projects (like the other
half of the grade) often reveal proficiency (especially from a technological
perspective) and cleverness, but they don't always provide good feedback with
respect to conceptual learning.
Thus, your goal with class participation is to reveal your level of
understanding, particularly with respect to the assigned readings. This
understanding can be conveyed in many forms including the asking of informed
questions, contributions to answers to questions posed by your classmates, the
suggestion of discussion topics relevant to the readings, etc. We will work
out how to best share these contributions given the limitations of our on-line
interactions as the quarter progresses. With these thoughts firmly in mind,
please read the next paragraph carefully.
We are learning under unusual circumstances that we must overcome to
achieve the best possible educational outcome. The goal of this class is to
maximize learning in a way that is as least stress-inducing as possible. If
you feel anxious about the class as we proceed, get in touch with me
immediately so we can discuss how to alleviate your anxiety. My intention is
simply to provide the best possible learning environment -- not to test your
mettle through pedagogical stress.
Put another way, my goal is to help you explore this subject matter in a
reasoned and principled way -- and nothing more. If at any time you wish to
discuss how to accomplish that goal, do not hesitate to get in touch with me
so we can discuss your ideas on the subject.
Course Project
There will be a class project that requires individuals or small teams to
build a working prototype of either an application that uses edge and cloud
computing technologies or a new edge/cloud technology itself. As will become
clear from the lectures, IoT applications are often the motivation for edge
and cloud systems but you are not required to use an IoT application to
demonstrate the effectiveness of your prototype.
A more complete description of the requirements (e.g. project deliverables)
for the project is available
from the course project page. Here are a few of
the highlights:
- Students can form teams of up to three team members although they may also
work alone. In the case of teams, all team members will receive the same
project grade.
- Each team will define a project that fits the scope of this class (the
project page lists a few examples but they are by
no means mandatory).
- The team will meet with the instructor one-on-one to demonstrate
its handy work some time during the last week of class
(there will be a schedule). The demonstrations will last from between 15 and
30 minutes during which time we will discuss the degree to which your project
has illuminated some of the key concepts discussed during the class lectures
and discussions.
There can be some confusion about the workload associated with student-defined
projects. We will attempt to alleviate some of this confusion through a
review of the project plan, but you should communicate with your instructor
early and often if and when questions of suitability arise. The goal of the
project is to expose you to some significant aspects of the subject matter in
a "hands-on" and/or "real-world" setting. As a rule of thumb, a good project
will require 4-6 hours of work per team member per week but this heuristic is
only meant as a guideline.
Course Lecture Schedule
Like most research courses, the reading lecture schedule for this course is
somewhat tentative. The specific set of topics is rapidly evolving even
within the relatively new subdiscipline of cloud computing which is, itself,
a new and dynamically aspect of computer science.
Each lecture
will take the form of a discussion about a paper or research topic for which
material will be available beforehand. Please prepare for each lecture to
make the discussion as fruitful as possible. Your class participation grade
will be based on these discussions.
Reading Quizzes
The model for the lectures in this course is one in which we all come prepared
to each lecture period for a discussion of that day's scheduled reading. To
aid in this preparation, I will occasionally prepare a short quiz that
we will take place at the beginning of the lecture period on that day's
assigned reading. Each quiz will be short (3 to 5 minutes) and you will turn
them in immediately (via email or Piazza private message) before we begin the
lecture.
The quizzes will not be announced ahead of time so please come to each lecture
prepared to take a quiz on the reading.
Course Schedule
March 30
Course Introduction.
April 1
We will have a brief introductory disussion of cloud computing using these notes.
Eric Brewer's PODC 2000 Keynote introducing CAP theorem: PDF
April 6
Vogels, Werner. "Eventually consistent." Communications of the ACM 52.1
(2009): 40-44.PDF
April 8
Bailis, Peter, and Ali Ghodsi. "Eventual consistency today: Limitations,
extensions, and beyond." Queue 11.3 (2013): 20-32.PDF
April 13
Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz,
Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and
Matei Zaharia. 2010. A view of cloud computing. Commun. ACM 53, 4 (April
2010), 50-58. DOI=http://dx.doi.org/10.1145/1721654.1721672 PDF
April 15
Satyanarayanan, Mahadev, et al. "The case for vm-based cloudlets in mobile
computing." IEEE pervasive Computing 8.4 (2009): 14-23.PDF
April 20
Vaquero, Luis M., and Luis Rodero-Merino. "Finding your way in the fog:
Towards a comprehensive definition of fog computing." ACM SIGCOMM Computer
Communication Review 44.5 (2014): 27-32.
PDF
April 22
Elias, Andy Rosales, et al. "Where's the Bear?-Automating Wildlife Image
Processing Using IoT and Edge Cloud Systems." Internet-of-Things Design and
Implementation (IoTDI), 2017 IEEE/ACM Second International Conference on.
IEEE, 2017.
PDF
April 27 and April 29
OS Virtualization: Fear and Loathing in the Intel Architectural Design.
I'll try and lecture from
these notes.
May 6
Eucalyptus : A Technical Report on an Elastic Utility Computing Architecture Linking Your Programs to Useful Systems
UCSB Computer Science Technical Report Number 2008-10
PDF
May 11
Burns, Brendan, et al. "Borg, omega, and kubernetes." Queue 14.1 (2016):
70-93.PDF
May 13
Raghavan, Barath, et al. "Software-defined internet architecture: decoupling architecture from infrastructure." Proceedings of the 11th ACM Workshop on Hot Topics in Networks. ACM, 2012.
PDF
I've also prepared some lecture notes to which I'll refer during the
lecture.
May 18
Stoica, Ion, et al. "Chord: A scalable peer-to-peer lookup service for internet applications." ACM SIGCOMM Computer Communication Review 31.4 (2001): 149-160.
PDF
May 20
Hunkeler, Urs, Hong Linh Truong, and Andy Stanford-Clark. "MQTT-S publish/subscribe protocol for Wireless Sensor Networks." Communication systems software and middleware and workshops, 2008. comsware 2008. 3rd international conference on. IEEE, 2008.
APA
PDF
May 25
No class today. Please enjoy a well-deserved holiday.
May 27
Hendrickson, Scott, et al. "Serverless computation with openlambda." Elastic 60 (2016): 80.
PDF
June 1
Demonstrations
- 11:00 -- 11:20: Fuheng Zhao Ishitiyaque Ahmad Pingyuan Wang Zheren Dong Changsheng Su
- 11:20 -- 11:40: Sebastiano Mariani, Fabio Gritti, Sid Senthilkumar
- 11:40 -- 12:00: Mayuresh Anand, Benu Changmai, Brian Lim, Bryan Wu
- 12:00 -- 12:20: Kaiqi Zhang, Yimeng Liu, Hong Wang, Tsu-Jui Fu
June 3
Demonstrations
- 11:00 -- 11:20: David Weinflash
- 11:20 -- 11:40: Aarti Jivrajani, Abtin Bateni, Daniel Shu Yiyang Xu
- 11:40 -- 12:00: Gwyneth Allwright, Sabrina Tsui, Swaroop Srinivasa Rao