COMP08183 2020 Cloud Development
The module Cloud Development will allow the learner to develop state-of-the-art applications for public cloud infrastructure. A brief overview of cloud development services will be provided, and the learner will the cover topics including advanced NoSQL, serverless compute, containers, microservices, caching and automation. The module will be programming-language agnostic, with an emphasis on the learner using public forums to research, raise and solve issues.
Learning Outcomes
On completion of this module the learner will/should be able to;
Describe the core services used in cloud application development
Employ a cloud SDK to interact with object and NoSQL storage across multiple regions
Describe the different use cases for, and implement, container, microservice and serverless compute solutions
Implement edge computing and caching
Utilise queues, notifications and automation to ensure application decoupling
Teaching and Learning Strategies
Materials will be made in advance of lectures. Heavy emphasis will be placed on encouraging the learner to subscribe and contribute to appropriate developer forums to problem-solve.
Laboratory practicals will be used to demonstrate concepts, with the learner expected to expand on those concepts in their own time.
Module Assessment Strategies
40% of the total mark will be for MCQs
Two 30% practical assignment (2 weeks each) will be provided towards the middle and the end of the semester.
Repeat Assessments
One repeat project covering all learning outcomes.
Indicative Syllabus
Describe the core services used in cloud application development
- Review core cloud services
- Storage services (e.g. Object, Relational, File, NoSQL)
- Caching (e.g. Elasticache, CloudFront, Redis, Memcached, DAX)
- Containers (comparison with traditional VMs, deploying and managing, ECS, EKS) serverless containers (e.g. Fargate)
- Queues, notification and messaging services
Employ a cloud SDK to interact with object and NoSQL storage across multiple regions
- Installing and securing a cloud SDK (permissions, roles, credentials, password management)
- DynamoDB/CosmoDB (consistency, scaling, global tables, partitions, scanning)
- Object storage (multi-part upload, versioning, intelligent tiering, encryption)
- Costs (RCU, WCU), cross region backups
- Indexing, utilising edge locations
- Creating and querying a data lake (schema on read, cost considerations, use-cases)
Describe the different use cases for, and implement, container, microservice and serverless compute solutions
- Containers (architectural overview, server-based vs serverless)
- Deploying, managing, maintenance
- Container management (e.g. Kubernetes, ECS)
- Serverless compute (triggers, schedules, logs)
- Debugging serverless solutions (e.g. X-Ray)
- Microservices
- Develop a serverless based application
Implement edge computing and caching
- Edge computing (Labmda@edge, latency, distribution models)
- Caching (Redis, Memcached, CloudFront)
- Creating a caching distribution
- Costs, TTL, invalidation of objects
Utilise queues, notifications and automation to ensure application decoupling
- Decoupling your application infrastructure
- Cloud-first development
- Queues, Notifications, Email services
- Automation (ML, step functions)
Coursework & Assessment Breakdown
Coursework Assessment
Title | Type | Form | Percent | Week | Learning Outcomes Assessed | |
---|---|---|---|---|---|---|
1 | MCQ (4 separate quizzes) | Coursework Assessment | Open Book Exam | 40 % | OnGoing | 1,2,3,4,5 |
2 | Develop serverless application | Coursework Assessment | Assignment | 30 % | Week 6 | 1,2,3 |
3 | Student-chosen assignment based on specific cloud services | Coursework Assessment | Assignment | 30 % | Week 10 | 3,4,5 |
Full Time Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Lecture | Lecture Theatre | Lecture | 1 | Weekly | 1.00 |
Practical / Laboratory | Computer Laboratory | Lab Practical | 2 | Weekly | 2.00 |
Independent Learning | Not Specified | Self-directed learning | 4 | Weekly | 4.00 |
Online Learning Mode Workload
Type | Location | Description | Hours | Frequency | Avg Workload |
---|---|---|---|---|---|
Online Lecture | Not Specified | Online delivery | 4 | Weekly | 4.00 |
Required & Recommended Book List
2016-12-05 Aws Lambda in Action Manning Publications
ISBN 1617293717 ISBN-13 9781617293719
Summary AWS Lambda in Action is an example-driven tutorial that teaches you how to build applications that use an event-driven approach on the back end. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology With AWS Lambda, you write your code and upload it to the AWS cloud. AWS Lambda responds to the events triggered by your application or your users, and automatically manages the underlying computer resources for you. Back-end tasks like analyzing a new document or processing requests from a mobile app are easy to implement. Your application is divided into small functions, leading naturally to a reactive architecture and the adoption of microservices. About the Book AWS Lambda in Action is an example-driven tutorial that teaches you how to build applications that use an event-driven approach on the back-end. Starting with an overview of AWS Lambda, the book moves on to show you common examples and patterns that you can use to call Lambda functions from a web page or a mobile app. The second part of the book puts these smaller examples together to build larger applications. By the end, you'll be ready to create applications that take advantage of the high availability, security, performance, and scalability of AWS. What's Inside Create a simple API Create an event-driven media-sharing application Secure access to your application in the cloud Use functions from different clients like web pages or mobile apps Connect your application with external services About the Reader Requires basic knowledge of JavaScript. Some examples are also provided in Python. No AWS experience is assumed. About the Author Danilo Poccia is a technical evangelist at Amazon Web Services and a frequent speaker at public events and workshops. Table of Contents PART 1 - FIRST STEPS Running functions in the cloud Your first Lambda function Your function as a web API PART 2 - BUILDING EVENT-DRIVEN APPLICATIONS Managing security Using standalone functions Managing identities Calling functions from a client Designing an authentication service Implementing an authentication service Adding more features to the authentication service Building a media-sharing application Why event-driven? PART 3 - FROM DEVELOPMENT TO PRODUCTION Improving development and testing Automating deployment Automating infrastructure management PART 4 - USING EXTERNAL SERVICES Calling external services Receiving events from other services
2019-08-13 Integrating Serverless Architecture Apress
ISBN 1484244885 ISBN-13 9781484244883
Design, develop, build, and deploy an end-to-end serverless architecture by leveraging Azure services, frameworks, and tools. This book offers a holistic approach, guiding you through the design and development of a Twitter Bot application, while leveraging Azure Functions. Integrating Serverless Architecture begins with an overview of serverless computing and getting started with Azure Functions. Here, you will create a Twitter bot function which scans Twitter for the latest tweets and makes use of dependency injection. Further, you will learn about Azure Cosmos DB where you will cover its change feed mechanism and the repository pattern. You will create a Cosmos DB trigger-based tweet notifier function, which will broadcast the latest tweets to connected clients. You will explore the basics of Azure Service Bus and create a tweet scheduler function, which will prioritize different keywords for the Twitter bot function. Along the way, you will debug, deploy, and test the functions in the Azure environment. This book shows you how to secure your Azure Function secrets with the help of Azure Key Vault. To further your understanding of the technology, you will learn logging and exception handling in Azure Functions. Later in the book, you will build a Twitter bot web application by using ASP.NET Core and Materialize CSS, which will interact with several HTTP-based Azure Functions. The Twitter bot web application allows users to log in through the Twitter Identity Provider, subscribe to different keywords/hashtags, and browse the latest tweets based on subscriptions. You will get started with SignalR Service and integrate it with Azure Functions and web applications. Towards the end you will go through app service authentication on Azure Functions and discover how to configure continuous integration and deployment to Azure Functions. After reading this book, you will be able to understand the steps involved in design, development, and deployment of a workflow using Azure Functions. What You Will Learn Design and develop a Twitter bot application using Azure Functions with Azure Web App Service as the front end Leverage Azure Cosmos DB as data storage and trigger notifications using its change feed mechanism Store and retrieve secrets from Azure Key Vault Integrate Azure Functions with Azure SignalR Service to broadcast real-time messages Secure Azure Functions by enabling Twitter identity authentication using built-in App Service authentication Build a continuous integration and continuous deployment pipeline for Azure Functions using Visual Studio Team Services (VSTS) Who This Book Is For Developers, software engineers, and architects who design and manage infrastructures and build applications by leveraging Microsoft cloud services.
Module Resources
Virtual Machines
Public cloud subscription