Our topic in CS5412 focuses on the way that cloud computing is reaching out to embrace the Internet of Things: sensors, other kinds of smart devices, and settings in which computing systems can take actions with real-world effect. There isn't (yet) a good textbook on these topics, so the best I can do is to offer some non-required textbook suggestions that you might find helpful for various aspects of our main subject. Wikipedia is perhaps a better reference than any of these books, but on the other hand, a textbook can be useful in some situations.
This is a new textbook in a nice series by Manning, a publisher that specializes in technology. Cloud Native Patterns, by Cornelia David, talks about different ways of approaching the design of cloud systems, with a focus mostly on AWS (but everything they show you here would work on Azure too). I like the tone of the book, and read through it with interest. Honestly, my only criticism of this book and the others in the series is that they are very relaxed about introducing things specific to Amazon, even where there are other equivalent options on Azure or Google or other clouds. The series is called "Cloud/Software Development" and has 6 or 7 books. | |
In CS5412 we talk much more about how the various cloud technologies work than how to use them. So some students who are planning a "big data" career find themselves looking for more of a perspective about data analysis, database design, big-data reduction techniques, and topics along those lines. What I like about Designing Data Intensive Applications, by Martin Kleppmann, is that he covers that material and yet also talks about topics we do cover in CS5412, like the performance you can expect from various styles of big data storage technology (DHTs, databases, file sitting in the cloud file system, etc). My criticism of this book is mostly that the focus would match better for a different course -- the emphasis isn't aligned super well with CS5412. There also isn't much on IoT. | |
A book I've recently encountered, that looks very good and really practical (lots of hands-on advice about setting up cloud computations and using cloud data analytics) is Cloud Computing for Science and Engineering, by Ian Foster and Dennis Gannon.I'm just starting to read this now and can't say yet whether it is strongly recommended, or very strongly recommended. But at a glance it looks sensational. The emphasis here is on understanding how to get data into a cloud, how to compute on it, and how to extract results. Our class will be a bit more focused on "how the cloud infrastructure itself works" but even so, these practical skills (the ones covered in this book) are highly germane and directly useful for people doing data-oriented projects. | |
Last in these recommendations? My own textbook, which you can find on reserve if you like, in the Engineering library. CS5412 has evolved a long way since I wrote the book back in the period from 2005-2012, so the match to our topic isn't all that great by now. My book would be a good reference for certain topics, like distributed fault-tolerance, that haven't really changed at all in the past decade. But when this came out, systems like the Microsoft Azure IoT offering didn't even exist, and today's micro-services architecture was only just emerging. There also isn't any discussion at all about big data, even though big data topics motivate many of the design decisions we'll be discussing. |