INDICATIVE CONTENT
This module will examine the following topics:
Theory & Knowledge Exchange
Understanding of cloud-based software development
Microservice development as opposed to monolithic development
Design techniques which can be used in the cloud
Evaluating services which are provided and how these link into applications
Consideration of hybrid applications and writing code
Technology & Resources
Serverless programming
Practical Content
Understanding portable code which can move between cloud providers
Understanding container-based programming
Developing applications considering a fault tolerant infrastructure
Understanding the consideration of moving software between cloud providers
Understanding security considerations for commercial applications running in the cloud
Understanding the RESTful API and protection for a public API in a public infrastructure
Understanding Infrastructure as Code (IAC) and automation techniques within code
Cloud monitoring techniques for running applications
ASSESSMENT DETAILS
PRESENTATION: This will be an individual assessment where the student will discuss via a presentation the consideration of developing in a cloud environment and contrast this with a more traditional method of development (Learning Outcomes 1 and 2).
PRACTICAL: This assessment will look at writing a piece of code which is intended to solve a particular problem for a commercial environment. As a part of this the student will also be looking at discussing components which are used and the benefit and consideration of using these (Learning Outcome 3 and 4).
LEARNING STRATEGIES
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers, and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
LEARNING OUTCOMES
Demonstrate a critical understanding of writing code for use within cloud computing within commercial contexts.
Critically discuss and demonstrate knowledge of the components of a cloud infrastructure in relation to fault tolerance and security.
Design and implement code for a defined problem optimised for a commercial cloud infrastructure.
Reflect upon the process for software development which is optimised for use in the cloud.
TEXTS
Artasanchez, A. (2021), AWS for Solutions Architects: Design your cloud infrastructure by implementing DevOps, containers, and Amazon Web Services, Packt Publishing, ISBN-10:1789539234
Clinton, D. and Piper, B. (2021), AWS Certified Solutions Architect Study Guide: Associate SAA–C02 Exam (Aws Certified Solutions Architect Official: Associate Exam), Sybex; 3rd edition, ISBN-10:1119713080
Patterson, S. (2019), Learn AWS Serverless Computing: A beginner's guide to using AWS Lambda, Amazon API Gateway, and services from Amazon Web Services, Packt Publishing, ISBN-10:1789958350
Aroraa, (2017), Building Microservices with .NET Core 2.0: Transitioning monolithic architectures using microservices with .NET Core 2.0 using C# 7.0, 2nd Edition, Packt Publishing, ISBN 1788393333
Rahea, (2018), Effective DevOps with AWS: Implement continuous delivery and integration in the AWS environment, 2nd edition, Packt Publishing, ISBN 1789539978
Gilbert (2018), Cloud Native Development Patterns and Best Practices: Practical architectural patterns for building modern, distributed cloud-native systems, Packt Publishing, ISBN 1788473922
Mueller, (2017), AWS for Developers for Dummies, John Wiley & Sons, ISBN 1119371848