CS5412: Topics in Cloud Computing

Spring 2018 focus: Cloud Integration with the Internet of Things

Prof. Ken Birman, 435 Gates Hall, x5-9199

What is this course about?  Cloud Computing is an overarching term that covers modern computing infrastructures to support the web: browsers and web servers, but also ways of building mobile clients, scalable web services, and very fast infrastructures for serving up content in geographically distributed systems that might include dozens of data centers and millions of computers. More or less everything we do is cloud-based or uses cloud solutions these days.

Because the cloud is such a broad technology area, cloud computing as a whole is too big a topic for any single class, and we won't even attempt to cover the full space. It would take years to learn everything (and the cloud is expanding rapidly, so it would be hard to even keep up). In fact, we won't teach you to use any particular cloud platform, either: A class on all the various parameters and options and programmer APIs would be very boring and not particularly useful. Other topics we won't cover in detail include big data analytics, artificial intelligence and machine learning, NoSQL databases, graphical data representation and processing, etc. The issue is the same: each of these would need a course all for itself.

Instead, CS5412 will drill down, with a goal of learning concepts and tools that should endure. We want the things you learn to remain valuable to you even five or ten years down the road.

For this kind of drill-down, a focus is very important. In Spring 2018, our focus will be on the emerging area of Internet of Things sensors connected to a cloud infrastructure: "Fog and Edge" Cloud Computing. Examples of applications in this space include smart power grid, smart homes and cities, smart highways (like air traffic control but for smart cars), autonomous drones and sensors used in digital agriculture settings (like to decide when to spray pesticides and exactly where to apply them, or where to irrigate), systems to track pollution, and the list goes on. By betting on this integration of cloud with edge sensors and devices, we're basically focusing on a manageable amount of cloud technology, and also positioning you to explore career options in a rapidly expanding area, where jobs are plentiful and don't center on having decades of experience.

Since fog and edge integration with the Internet of Things is a fairly new area, we'll end up learning about a mix of things cloud systems already can do well (like scaling by using key-value architectures), as well as a lot of things that clouds don't do well today, but should be able to do tomorrow (like real-time processing of videos for those highways, where responses need to be quick and based on the most current situational state). We'll also look at how special purpose hardware (RDMA, 3-D XPoint memory, GPU clusters, FPGA, Tensor Flow hardware) integrate into the big picture, although we won't dive deep on most of those.

Our emphasis will be practical but principled. We won't be very mathematical or theory-driven in this class, but on the other hand, we do seek rigor: just as in any other setting, there are ways to explain what a cloud system does, and conditions under which it can be proved to do those things, and we'll try to expose those options when possible. This said, the larger theme will be performance and responsiveness: how fast can these systems be? Can they maintain performance and fast reaction times even as they scale to handle massive amounts of data? For example, could we build a cloud capable of managing every highway in the United States, concurrently? How would that need to work? What technical challenges would developers need to overcome, and how could they do so?

FAQ Syllabus for Spring 2018 TextBook (not required)
Cloud Resources Derecho Recitation