CS290B -- Cloud Computing
The purpose of the class is to explore current research topics and technological developments pertaining to the subject of "Cloud Computing."
While a rigorous definition of cloud computing remains elusive (at least with respect to non-academic treatments of the subject), roughly speaking cloud computing refers to the ability to obtain computational capability via a network-facing API that is exported by abstract services which appear to be ubiquitously accessible and persistent. The course will cover various topics that fall under this broad rubric, with a particular emphasis on the computer science research challenges that are constituent to them.
Spring Quarter, 2015
The course meets
- Tues. and Thurs. 11:00 AM to 12:50 PM
- Phelps 3526 (please note the new location)
Piazza sign up link for
this class
Here are some potentially useful code examples
that may prove helpful.
The Nauty graph isomorphism checker is available here.
A simple interface and a brief introduction is here
and the instructor's coordinates are
- Instructor: Rich Wolski
- Office: Harold Frank Hall, 5165
- email: rich@cs.ucsb.edu
- office hours: by appointment
- TA: Yanbo Ma
- Office:
- email: myb800@gmail.com
- office hours: TBD
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
- Amazon AWS
- Microsoft Azure
- Google App Engine
- Condor High Throughput Computing
- Eucalyptus
- AppScale
- Data center virtualization and bare-metal provisioning
- Software Defined Networking
as well as other applications and subsystems that have applicability to cloud
computing.
Course Project
There will be a class project that requires individuals or small teams to use
multiple cloud infrastructures simultaneousl to solve a large problem.
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 individual or team will present the results of the project at the end
of the course.
The assignment that each student will need to complete by the end of the
course is to produce a cloud-based search and/or optimization
system that attempts to improve the
known bounds on the seventh symmetric Ramsey Number -- R(7,7).
Each student or student team will find counter example graphs for R(7,7).
The goal is to find the largest set of non-isomorphic counter example graphs
each having the largest node count. Students will present the
the their respective implementations at the end of the course and the student
or team with the largest set will be crowned the winner of Ramsey Search for
CS290 in 2015.
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. Project deliverables are
- some number of Ramsey counter examples for R(7,7)
- output from the Nauty
isomorphism checker that certifies the counter
examples are not isomorphic
- a presentation and a demonstration given during the final two weeks
of class (dates to be determined) of the implementation
- all source code
The specific dates for each presentation will be determined during the first
two weeks of class. Please make sure that your schedule will allow you to be
present during the final two weeks so that you will be able to complete the
assignment.
Course Schedule: In Flux
Like most research courses, the schedule for this course is tentative. The
goal, at the end, if to have developed a multi-cloud system that uses
various cloud infrastructures to in the best way possible.
Lectures will cover the various research
ideas and technologies necessary to implement such a system.
Course Schedule
March 31
Course Introduction.
April 2
Introduction to Bitcoin. Please read The Bitcoin
Paper before class. Some notes on
currency and a great paper by Decker and
Wattenhoffer in information propagation in the Bitcoin network may prove
useful as well.
April 7
Ramsey search as a proof-of-work function.
Please read the HashCash paper before class.
The Scrypt paper is also quite enlightening.
April 9
Class canceled. Please work on your project.
April 14
Condor High-throughput computing. The good people at CondorHTC have provided
some useful training
materials as part of their effort to support Open Science Grid. I will
discuss the User
Manual in class.
April 16
Ramsey search fest.
April 21
Amazon Web Services. I have notes (please
pardon the typos) and
check out the
EC2 Documentation and
the Euca2ools
documentation.
April 23
Eucalyptus. Please read the Eucalyptus Tech.
Report before class.
Also -- here is a quick start
tutorial on how to get going with Eucalyptus.
April 28
Eventual consistency. Please read the paper
by Verner Vogels before class.
April 30
Data center fault management. Please read Chapter 7 from The Google Warehouse Scale paper before
class.
May 5
Dr. Chandra Krintz will lecture on AppScale and Google App. Engine. Please
read the AppScale paper before class.
May 7
Neil Soman from EMC will speak. His slides are
available here.
May 12
Zoran Dimitrijevic from Altiscale will speak. His slides are available
here.
May 14, 19
OS Virtualization -- Fear and Loathing in the Intel Architectural Design.
I'll try and lecture from
these notes.
May 21
Software Defined Networking. Please read the SDN
paper before class. I've also prepared some lecture notes to which I'll refer during the
lecture.