COMP08183 2020 Cloud Development

General Details

Full Title
Cloud Development
Transcript Title
Cloud Development
Code
COMP08183
Attendance
N/A %
Subject Area
COMP - Computing
Department
COEL - Computing & Electronic Eng
Level
08 - NFQ Level 8
Credit
05 - 05 Credits
Duration
Semester
Fee
Start Term
2020 - Full Academic Year 2020-21
End Term
9999 - The End of Time
Author(s)
Colm Davey
Programme Membership
SG_KCMPU_H08 202000 Bachelor of Science (Honours) in Computing SG_KSODV_H08 202000 Bachelor of Science (Honours) in Computing in Software Development SG_KSFTD_K08 202000 Bachelor of Science (Honours) in Computing in Software Development (Add On) SG_KSODV_H08 202100 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 202100 Bachelor of Science (Honours) in Computing SG_KSODV_H08 202200 Bachelor of Science (Honours) in Computing in Software Development SG_KCMPU_H08 202200 Bachelor of Science (Honours) in Computing SG_KSFTD_K08 202200 Bachelor of Science (Honours) in Computing in Software Development (Add-on)
Description

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;

1.

Describe the core services used in cloud application development

2.

Employ a cloud SDK to interact with object and NoSQL storage across multiple regions

3.

Describe the different use cases for, and implement, container, microservice and serverless compute solutions

4.

Implement edge computing and caching

5.

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 & Continuous Assessment
100 %

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
Total Full Time Average Weekly Learner Contact Time 3.00 Hours

Online Learning Mode Workload


Type Location Description Hours Frequency Avg Workload
Online Lecture Not Specified Online delivery 4 Weekly 4.00
Total Online Learning Average Weekly Learner Contact Time 4.00 Hours

Required & Recommended Book List

Required Reading
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

Required Reading
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

Other Resources

Virtual Machines

Public cloud subscription