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.
Resources you can use in this class
and the instructor's coordinates are
- Instructor: Rich Wolski
- Office: Harold Frank Hall, 5165
- email: firstname.lastname@example.org
- office hours: by appointment
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 computing.
- Infrastructure as a
- Platform as a Service (PaaS)
- Public, Private, and
- Amazon AWS
- Microsoft Azure
- Google App Engine
- Condor High Throughput Computing
center virtualization and bare-metal provisioning
- Software Defined
There will be a class project that requires individuals or small teams to use
multiple cloud infrastructures simultaneously 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
Each individual or team will present the results of the project at the end of
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 tenth symmetric Ramsey Number --
R(10,10). Each student or student team will find counter example graphs for
R(10,10). The goal is to find the largest counter-example: a
fully-interconnected graph with no mono-chromatic 10-cliques. In case of a
Students will present the the their
respective implementations at the end of the course and the student or team
with the largest counter-example will be crowned the winner of Ramsey Search for CS290 in
2017. In case of a tie, the team that is able to demonstrate the use of the
most resources simultaneously will win. Note that the demonstration must be
Project deliverables are
- the largest counter-example for R(10,10) that you are able to find in the
format discussed in lecture,
- a 15-minute presentation that includes
- a description of the search algorithms you used
- a description of the system architecture and any constituent
technologies you chose to use
- an accounting of the number of CPU cycles you used
- a discussion of what worked and what didn't
- a discussion of what you learned and what you think your colleagues
should know about the assignment specifically and cloud computing in general
- a (minimum) two-page written document that describes your experiences
(positive and negative) with each cloud infrastructure you used
The presentation order will be determined randomly but all
presentations will take place during the last two class periods for the 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. Attending the class presentations is mandatory.
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. 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 diwcussion as fruitful as possible.
There's going to be a party...
Please read 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
Eventual consistency. Please read the paper
by Verner Vogels before class.
Data center fault management. Please read Chapter 7 from The Google Warehouse Scale paper before
Burak Himmetoglu will give a short tutorial on using SDSC's Comet machine
Introduction to Bitcoin. Please read The Bitcoin
Paper before class. Additionally, the Bitcoin proagation delay paper may also be of
interest as is a paper on refuting the
majority control conjecture in the original Bitcoin paper.
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.
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.
Dr. Chandra Krintz will lecture on AppScale and Google App. Engine. Please
read the AppScale paper before class.
Class is cancelled. Please enjoy the time to work on your projects.
OS Virtualization: Fear and Loathing in the Intel Architectural Design.
I'll try and lecture from
Dr. Dan Nurmi from Anchore will speak.
The Rapid Rise of Containers in Production
Container technology has achieved an incredible amount of momentum
over the past couple of years, with several immediately attractive
benefits: Ease of use, the promise of a substantial decrease in time
between development and execution of complex application systems, and
an impedance match between modern software engineering processes and
the deployment speed and agility associated with container systems.
In this talk, we'll be discussing the technology behind production
container-based systems in operation today, and exploring the reasons
why containers have been adopted so quickly and with such enthusiasm
within the tech. industry.
Victor Iglesias, from Google, will speak.
In this talk, we will walk through history to discover how today's container
revolution got started, how containers work and how we can manage containers
at scale using Kubernetes, the open source container management tool. Once
we've gotten an idea of the basics of container orchestration we will see a
demo of how containers can help you reliably and quickly deploy your
microservices to your end users.
Tentative Guest speaker.
Software Defined Networking. Please read the SDN
paper before class. I've also prepared some lecture notes to which I'll refer during the
Bidding the AWS Spot Market. Please read Probabilistic Guarantees of
Execution Duration for Amazon Spot Instances
Please read Where's the
The teams that will present today are:
- King Crab
- Yanxi Chen
- Xujia Cao
- Shaoyi Zhang
- Party Crashers
- Jørgen Wilhelmsen
- Bjørn Hoxmark
- The Hope
- Oeyvind Reinsve
- Marius Bang
- Andreas Kvistad
- Cloud and Sand
- Shiliang Tang
- Zhijing Li
- Chutian Shen
The teams that will present today are:
- Ramsey's Szechuan Sauce
- Kyle Carson
- Sammy Guo,
- Michael Zhang
- Ramseys Bane
- Bjarte Sjursen
- Nikolas Chaconas
- Sujaya Maiyya
- Hot Pot
- Cloud Nomads
- Oliver Damsgaard Jensen
- Kristoffer Andersen
- Jonathan Easterman