skip to content

Department of Computer Science and Technology

Principal lecturer: 
Part II CST 75%
Lent term
Course code: 
Students must have a very good knowledge of Unix Tools and scripting
Class limit: 


This module aims to teach students the fundamentals of Cloud Computing covering topics such as virtualization, data centres, cloud resource management, cloud storage and popular cloud applications including batch and data stream processing. Emphasis is given on the different backend technologies to build and run efficient clouds and the way clouds are used by applications to realise computing on demand. The course will include practical tutorials on cloud infrastructure technologies. Students will be assessed via a Cloud-based coursework project.


  • Introduction to Cloud Computing
  • Data centres
  • Virtualization I
  • Virtualization II
  • MapReduce
  • MapReduce advanced
  • Resource management for virtualized data centres
  • Cloud storage
  • Cloud-based data stream processing


By the end of the course students should:

  • understand how modern clouds operate and provide computing on demand;
  • understand about cloud availability, performance, scalability and cost;
  • know about cloud infrastructure technologies including virtualization, data centres, resource management and storage;
  • know how popular applications such as batch and data stream processing run efficiently on clouds;

Recommended reading

Marinescu, D.C. Cloud Computing, Theory and Practice. Morgan Kaufmann.
Barham, P., et. al. (2003). “Xen and the Art of Virtualization”. In Proceedings of SOSP 2003.
Charkasova, L., Gupta, D. and Vahdat, A. (2007). “Comparison of the Three CPU Schedulers in Xen”. In SIGMETRICS 2007.
Dean, J. and Ghemawat, S. (2004). “MapReduce: Simplified Data Processing on Large Clusters”. In Proceedings of OSDI 2004.
Zaharia, M, et al. (2008). “Improving MapReduce Performance in Heterogeneous Environments”. In Proceedings of OSDI 2008.
Hindman, A., et al. (2011). “Mesos: A Platform for Fine-Grained Resource Sharing in Data Center”. In Proceedings of NSDI 2011.
Schwarzkopf, M., et al. (2013). “Omega: Flexible, Scalable Schedulers for Large Compute Clusters”. In EuroSys 2013.
Ghemawat, S. (2003). “The Google File System”. In Proceedings of SOSP 2003.
Chang, F. (2006). “Bigtable: A Distributed Storage System for Structured Data”. In Proceedings of OSDI 2006.
Fernandez, R.C., et al. (2013). “Integrating Scale Out and Fault Tolerance in Stream Processing using Operator State Management”. In SIGMOD 2013.