CS5412: Cloud Computing (Spring 2012)
Prof. Ken Birman, 4119B Upson Hall, x5-9199
Newsgroup for posting questions: On Piazza,
Newsgroup for posting questions: On Piazza, here.
Synopsis: Cloud computing has become a major commercial area for Internet product development and activity. The term has many uses: we use the cloud whenever we search the web, post a photo to Facebook, or use the mobile version of Google Maps for driving directions. Cloud computing enables a new kind of computation in which staggering amounts of data can be culled from sensors world-wide and then employed as the basis for problem solving in new styles that need to also be massively parallel, since the data ends up spread over large numbers of machines, with no single machine having more than a "shard" of the big picture. Many users think of the cloud as the ultimate "rent-a-machine" computing solution: as many virtual computing nodes as you might care to pay for, on demand. Finally, computing evokes a new kind of social phenomenon, namely the penetration of computing systems into society at every level, and a diversity of privacy, security and even legal issues tied to those developments.
CS5412 will focus on the technology of the cloud. This is a narrow focus: entire courses could be constructed around such topics as the social and legal impact of cloud computing. Indeed, we'll be even more narrow: because CS5320 is being offered this spring as well and explores database and information management aspects of the cloud, we won't overlap with that class,. Accordingly, in CS5412 we'll concentrate primarily on the architecture of today's cloud computing client systems, the evolution of the Internet to support the cloud, the architecture of modern cloud data centers, and the technologies used within them.
Of particular interest in spring 2012 will be the first and second tier cloud components that focus on elasticity, amazing scalability, instant responsiveness and the form of security needed to support web transactions such as credit-card purchases. By the end of the course, participants will have not just a deep picture of how all this works, but also a sense of the underlying theory, the current set of research and engineering challenges, and even some cloud computing technology options that work in the lab but have yet to enter wide practice in the field.
Prerequisites: This course assumes a sound background in operating systems and computer architecture: CS3410 and CS4410. It is not necessary to have taken the Cornell versions of those courses, but it is necessary to have the required background. We do not require any direct hands-on exposure to cloud computing, but all students should be proficient in a programming language such as C# or Java or Python as used on an operating system like Windows or Linux.
Level of the Course: CS5412 is aimed at MEng students in the CS or ECE MEng program, CS undergraduates who have taken the required 3xxx and 4xxx courses and done well in them, and PhD students. We should caution that because the course isn't really aimed specifically at PhD students, the coverage of material may be a bit more practical in emphasis than in a PhD course, where we would dive deeper into the theory and read current research publications. On the other hand, Professor Birman is an active researcher in this area, and he couldn't teach a shallow cloud computing "engineering" course if he tried. So even our non-PhD attendees may get a bigger exposure to research topics in the area than they would normally expect, and PhD students should feel welcome!
Grading: Grading will be based on surprise in-class quizzes (20%) and a course project (80%), which can be undertaken in small teams or individually. We'll be providing a variety of computing tools but many students are likely to use the new Isis2 system in these projects. Isis2 can be employed from C#, C++, Visual Basic, Iron Python and many other languages, although documentation is still under development for some of the less common options. You can work on Windows or Linux, and will have access to real cloud resources as appropriate to your project. Some projects will focus on the mobile side of the cloud, but the majority are expected to involve developing new cloud services that can be deployed into the first-tier on systems like Microsoft's Azure or Google's AppEngine.
We do not offer makeup exams.
MEng project option: AFTER looking at the project list and rules for doing a project, you can pick one of the MEng-approved projects if you like. In that case just sign up for 3 credits iof CS5999 in addition to CS5412.
Speak to Professor Birman if you would like to do an even more ambitious project or something of your own design. You would still enroll for a maximum of 3 credits of CS5999, would still do the project during the spring semester and finish it on time, and would still use it as your class project too. Ken is open to considering team MEng project proposals from groups of no more than 2.
Textbook: We are using the Guide
to Reliable Distributed Systems: Building High-Assurance Applications and
Cloud-Hosted Services. However, production of the textwas
delayed, and for this reason, the book is not required. As
noted above, Ken is providing his book in PDF form for people enrolled in
cs5412 (but only for them, and only when inside the Cornell network). For other topics, his slides will cover the required
material. We may also read some published papers from the cloud
|TA office hours||Mon 10-11am||Tue 1pm-2pm|
|Odd weeks:||Zhiyuan Teo||Hao Li|
|Even weeks:||Qi Huang||Hussam Abu-Libdeh|
|Ken's office hours||Tues 11:30-12:00||Thu 11:30-12:00|