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, 2014
The course meets
- Tues. and Thurs. 11:00 AM to 12:50 PM
- Phelps 2510
and the instructor's coordinates are
- Instructor: Rich Wolski
- Office: Harold Frank Hall, 5165
- email: firstname.lastname@example.org
- office hours: by appointment
- TA: Bin Xu
- Office: Trailer 936, Room 103/104
- email: email@example.com
- office hours: Tuesday, 3:00 PM to 5:00 PM
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
as well as other applications and subsystems that have applicability to cloud
- 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
- Data center virtualization and bare-metal provisioning
- Software Defined Networking
The assignment that each student will need to complete by the end of the
course is to produce a cloud-based mining system for "Richcoin" -- a digital
cash concept based on proof-of-work that combines typical crypto puzzles with
the "mining" of rare mathematical artifacts. The purpose of Richcoin is to
provide a driving application (requiring first-principles development) that
can be implemented across different cloud platforms. Richcoin will not
implement the peer-to-peer aspects of non-centralized cash schemes (although
it could). For this class, all mined artifacts will be deposited with a
centralized bank that will
The bank will be operated as a service. Each minor or mining team will be
issued a set of credentials for an account with the bank. The minor or team
with the most mined cash on the final day of class wins.
- determine that each artifact is unique
- record the timestamp at which each artifact is deposited
- store all artifacts on behalf of their owners
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
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
- some number of mined artifacts successfully deposited with the bank
- a presentation and a demonstration given during the final two weeks
of class (dates to be determined) of the implementation
- all source code
Like most research courses, the schedule for this course is tentative. The
goal, at the end, if to have developed a mining system for a new type of
digital cash and to use various cloud infrastructures to mine as much of it as
possible by the final class period. Lectures will cover the various research
ideas and technologies necessary to implement the mining operation.
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.
Ramsey search as a proof-of-work function.
Please read the HashCash paper before class.
The Scrypt paper is also quite enlightening.
The "Richcoin" Bank.
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.
Ramsey search fest.
Dr. Neil Soman guest lectures on cloud computing.
Amazon Web Services. I have notes (please
pardon the typos) and
check out the
EC2 Documentation and
Eucalyptus. Please read the Eucalyptus Tech.
Report before class.
Also -- here is a quick start
tutorial on how to get going with Eucalyptus.
Eventual consistency. Please read the paper
by Verner Vogels before class.
Dr. Chandra Krintz will lecture on AppScale and Google App. Engine. Please
read the AppScale paper before class.
Data center fault management. Please read Chapter 7 from The Google Warehouse Scale paper before
May 13, 15, 20
OS Virtualization -- Fear and Loathing in the Intel Architectural Design.
I'll try and lecture from
Software Defined Networking. Please read the SDN
paper before class. I've also prepared some lecture notes to which I'll refer during the
Class presentations (tentative)
Class presentations (tentative)