H9CPP - Cloud Platform Programming

Module Code: H9CPP
Long Title Cloud Platform Programming
Title Cloud Platform Programming
Module Level: LEVEL 9
EQF Level: 7
EHEA Level: Second Cycle
Credits: 10
Module Coordinator: Horacio Gonzalez-Velez
Module Author: Adriana Chis
Departments: School of Computing
Specifications of the qualifications and experience required of staff

MSc and/or PhD degree in computer science or cognate discipline. Experience lecturing in the field. May have industry experience also.

Learning Outcomes
On successful completion of this module the learner will be able to:
# Learning Outcome Description
LO1 Demonstrate in-depth knowledge of core cloud-based services.
LO2 Critically analyse advantages and disadvantages of different cloud-based architectures and technologies/services.
LO3 Formulate and produce new code libraries that implement advanced programming constructs in order to create secure, dynamic, configurable, robust, scalable cloud-based applications.
LO4 Construct and present a complex dynamic cloud-based application through selecting relevant cloud related architectural patterns and services taking into account the evaluation and assessment of application design, development, and testing methodologies.
LO5 Identify and ethically apply best practices for continuous integration, delivery and deployment of cloud-based applications.
Dependencies
Module Recommendations

This is prior learning (or a practical skill) that is required before enrolment on this module. While the prior learning is expressed as named NCI module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).

No recommendations listed
Co-requisite Modules
No Co-requisite modules listed
Entry requirements  
 

Module Content & Assessment

Indicative Content
Introduction to Cloud Concepts
Review of different architectures for distributed computing (e.g. client-server, multitier architecture); review of versioning control. Cloud Delivery Models. Cloud Core Services (e.g. computation, storage, databases). Elastic Load Balancing. Auto-Scaling.
Introduction to Developing/Programming on Cloud
Systems Development Lifecycle. Working with a Cloud SDK. Errors and Exceptions. Application and Infrastructure monitoring.
Deployment
Continuous Integration and Continuous Deployment. Deployment and Testing Strategies.
Introduction to Identity and Access Management
Overview of IAM. Authentication with IAM. Authorization with IAM
Object Storage Services
Introduction to Cloud Storage Services. Protecting Data and Managing Access to Cloud Resources.
NoSQL Services
Introduction to NoSQL. Partitions and Data Distribution. Read/Write Throughput. Streams and Global Tables.
Caching for Scalability
Caching Overview. Caching Strategies. Explore different caching services (e.g. CloudFront, ElastiCache).
Containers
Introduction to Containers. Containers vs. Hardware Virtualization. Microservices – Use Case for Containers.
Application Integration/Messaging Services
Introduction to Message Queues. Investigate different message queues services (e.g. Amazon SQS, Amazon SNS).
Serverless Computing
Introduction to Serverless Computing, Deployment of Serverless Applications. Functions as a Service (FaaS) platform. Execution Models for Invoking FaaS. Overview of Deploying FaaS Functions. Case Study: an implementation of a FaaS platform (e.g. AWS Lambda: Overview of AWS Lambda, Execution Models for Invoking Lambda Functions, AWS Lambda Permissions, Authoring and Configuring Lambda Functions, Deploying Lambda Functions).
Cloud-based RESTful API
Application Programming Interfaces. Creating a RESTful API. Testing a RESTful API. Deploying a RESTful API. Invoking a RESTful API. Monitoring a RESTful API.
Orchestration/Workflow Coordination in Distributed Applications
Workflow Coordination in Distributed Applications
Assessment Breakdown%
Coursework60.00%
End of Module Assessment40.00%

Assessments

Full Time

Coursework
Assessment Type: Project % of total: 60
Assessment Date: n/a Outcome addressed: 1,2,3,4,5
Non-Marked: No
Assessment Description:
Develop a complex dynamic cloud-based application through selecting relevant cloud related architectural patterns and cloud-based services.
End of Module Assessment
Assessment Type: Terminal Exam % of total: 40
Assessment Date: End-of-Semester Outcome addressed: 1,2
Non-Marked: No
Assessment Description:
The exam will assess learners’ knowledge and understanding of cloud technologies.
No Workplace Assessment
Reassessment Requirement
Coursework Only
This module is reassessed solely on the basis of re-submitted coursework. There is no repeat written examination.
Reassessment Description
This module is reassessed solely on the basis of re-submitted coursework which evaluates all the learning outcomes.

NCIRL reserves the right to alter the nature and timings of assessment

 

Module Workload

Module Target Workload Hours 0 Hours
Workload: Full Time
Workload Type Workload Description Hours Frequency Average Weekly Learner Workload
Lecture No Description 36 Per Semester 3.00
Practical No Description 24 Per Semester 2.00
Independent Learning Time No Description 190 Per Semester 15.83
Total Weekly Contact Hours 5.00
 

Module Resources

Recommended Book Resources
  • Ian Foster, Dennis B. Gannon. (2017), Cloud Computing for Science and Engineering, MIT Press, p.392, [ISBN: 9780262037242].
Supplementary Book Resources
  • Sean Keery, Clive Harber, Marcus Young. (2019), Implementing Cloud Design Patterns for AWS, Second Edition. Packt Publishing, [ISBN: 9781789136203].
Recommended Article/Paper Resources
  • E. Jonas, J. Schleier-Smith, V. Sreekanti, C.C. Tsai, A. Khandelwal, Q. Pu, V. Shankar, J. M. Carreira, K. Krauth, N. Yadwadkar, J.E. Gonzalez, R. A. Popa, I. Stoica and D. A. Patterson. (2019), Cloud Programming Simplified: A Berkeley View on Serverless Computing, EECS Department, University of California, Berkeley. Technical Report No. UCB/EECS-2019-3,
  • R. Buyya et al.. A Manifesto for Future Generation Cloud Computing: Research Directions for the Next Decade, ACM Computing Surveys, 51 (5), p.105:1,
  • I. Baldini et al.. (2017), Serverless Computing: Current Trends and Open Problems, In: Chaudhary S., Somani G., Buyya R. (eds) Research Advances in Cloud Computing. Springer, Singapore,
Other Resources
Discussion Note: Approved to allow for publication of parent programme on NCI website.