The University of Sheffield
Department of Computer Science

COM6519 Cloud Computing

Summary

Cloud computing offers virtual, scalable, shared computing resources via a network, as a utility service. This module introduces the concepts of cloud computing, explaining why business is moving to the cloud, and teaches technologies involved in consuming and providing services in the cloud, including remote deployment, single sign-in, metered consumption, data security and service composition. Students should be aware that there are limited places available on this course.

Session Spring 2021/22
Credits 15
Assessment

Coursework consisting of a team interim report, a team final report accompanying the delivered software and an individual evaluation questionnaire.

Lecturer(s) Dr Anthony Simons
Resources
Aims This unit aims to...
  • develop an understanding of cloud computing at the infrastructure, platform and software service levels and articulate why it is an attractive paradigm for business;
  • develop the practical skills necessary to solve technical problems in order to design, develop and deploy software services on a cloud platform, and to integrate services with related services in a software service ecosystem;
  • develop the personal and technical skills necessary to work productively as part of a team, delivering a large software project to staged deadlines, and to evaluate the work of other teams.
Objectives

By the end of the unit, a candidate will...

  • understand the difference between elastic, virtualised cloud computing and other kinds of Internet-enabled distributed computing, or map-reduce grid computing;
  • understand the architecture of the cloud stack, including the infrastructure-, platform-, and software-as-a-service levels, and be familiar with major providers of these offerings;
  • understand the choice of database engine underlying a cloud software service, including deep storage, block storage, key-value storage and relational storage;
  • understand the choice of technologies used to connect cloud software services, including message queueing services and publish-subscribe models;
  • understand contracts in the cloud, including subscription and metered usage payment models, and monitoring service-level agreements for adaptation and recovery;
  • understand the rapidly developing range of technologies involved in constructing cloud services, including container and orchestration software, single sign-in and metering;;
  • understand the range of technologies involved in delivering web-based software services, such as WSDL and SOAP, REST, JSON and XML, or rich-client applications with AJAX;
  • understand the architectural components involved in hosting a web-based software service, such as web-servers, application-servers, database servers and client machines;
  • have collaborated in a team to design and develop a novel software service, as part of a wider software service ecosystem;
  • have deployed their team’s software service to a cloud platform, taking security, scalability and load-balancing into account;
  • have published their team’s software service in some internet-enabled registry and repository system, so that it is accessible by other teams;
  • have evaluated the work of another team against the project requirements;
  • have worked productively in a team, either as a manager or delegate with responsibilities to the rest of the team.
Content
  • What is cloud computing?
  • The business case for the cloud;
  • Cloud service models (IaaS, PaaS, SaaS);
  • Cloud platforms, eg Azure, OpenStack, Heroku;
  • Web services and internet protocols;
  • Container and orchestration technologies;
  • Authentication and metering technologies;
  • SQL and NoSQL data storage options;
  • Service-oriented architectures;
  • Message queues and brokers;
  • Quality, pricing and service level agreements;
  • Security in the cloud;
  • Cloud service ecosystems
Restrictions The maximum number of students allowed on the module is 104.
Teaching Method The teaching method is by lectures, supported by laboratory classes where students may engage with the various technologies under supervision before completing their group project.
Feedback

Students get verbal feedback from the lecturer in response to their questions about designing a cloud platform and software services. Student teams receive the marked interim report back within 2-3 weeks of the submission deadline with strong feedback on what is good/poor about their suggested design.  Student teams receive peer feedback on the quality of their final systems, after completing the automated testing questionnaire, and receive feedback on their final report, in terms of a checked list of features on the coversheet.  The class receives email feedback from the lecturer covering the main points done well and less well.

Recommended Reading
  • Thomas Erl. Cloud Computing: Concepts, Technology and Architecture, Prentice Hall, 2013.
  • Michael J Kavis. Architecting the Cloud: Design Decisions for Cloud Computing Service Models, John Wiley, 2013.
  • John Rhoton. Cloud Computing Explained: Implementation Handbook for Enterprises, Recursive Press, 2013.
  • Bernard Golden. Amazon Web Services for Dummies, John Wiley, 2013.
  • John Rhoton, Jan de Clercq and David Graves. Cloud Computing Protected: Security Assessment Handbook, Recursive Press, 2013.