MODULE LEARNING OUTCOMES
1. Understand, define, and give examples of Infrastructure-as-a-Service, Platform-as-a-Service, Software-as-a-Service and Data(base)-as-a-Service. Enquiry, Application
2. Understand the challenges and opportunities around web development for mobile applications, and implement effectively for these through following a recognised software design, implementation, and testing cycle Learning
3. Understand Agile software delivery and the role of participants in an Agile team and be able to critically appraise approaches including those such as Scrum. Enquiry, Reflection
4. Understand the Continuous Integration/Continuous Delivery paradigm and be able to implement and critically evaluate it against traditional deployment methodologies through undertaking practical development. Knowledge and Understanding,
Problem Solving, Application
MODULE ADDITIONAL ASSESSMENT DETAILS
Technical Report: Students will be given a case study for an SME, they will prepare a short technical report, using the information in the case study, detailing the key considerations for migrating their infrastructure from on-premise to cloud. (Learning Outcomes 1, 2, and 3)
Practical Demonstration: Using an appropriate web application development environment, students will build and demonstrate a working software pipeline on a local computer. The pipeline should include one cloud repository and one local node configuration. Students will need to show how changes to their application can be integrated into source control and promoted to a live environment (Learning Outcomes 2, and 4)
MODULE INDICATIVE CONTENT
Introduction to the Cloud
Defining digital transformation; transitioning from traditional business models; the increased role of technology; defining cloud.
The role of data in digital transformation; data structures; data quality and management issues.
Key concerns in data consolidation; data infrastructures; the role of cloud systems.
SaaS/IaaS/DaaS/PaaS
Infrastructure and App Development in The Cloud
From traditional website to mobile application; mobile application development platforms; progressive web applications.
Modern user interface considerations; HCI and UX; designing for accessibility; social media integration; cloud analytics.
Deploying apps to mobile marketplaces; key considerations in design and quality for mobile marketplace distribution.
Containerisation vs. virtualisation vs. physical servers.
Content delivery networks, traffic shaping and load balancing.
Installing and configuring Kubernetes
Configuring Docker
Creating a simple web application in PHP; creating and deploying the application as a Docker image on Kubernetes.
Agile Practices
Modern teams: Agile development, DevOps and continuous delivery.
Understanding the Agile Manifesto
The Scrum software development methodology
Scrum tools: Kanban, key ceremonies, sprint planning, backlog grooming and retrospectives.
Alternatives to Scrum: Extreme Programming, LEAN
A critical review of Agile methodologies
Continuous Delivery and the Internet of Things
Continuous integration/continuous delivery; source control; pipelines.
Building a pipeline: From simple PHP application to source -> build -> deployment.
The Internet of Things; the future of digital transformation.
WEB DESCRIPTOR
In this module, you will learn how organisations are transitioning from traditional software deployment methodologies to continuous integration and continuous delivery, supported by Agile team working practices. You will learn how to build a software deployment pipeline, building practical module work to (optionally) integrate Docker on Kubernetes. You will learn about the Internet of Things and the challenges this presents in software engineering, and you will consider the future of digital transformation. This module aims to provide you with an up-to-date view of current trends and paradigms in modern software development, infrastructure, and support.
MODULE LEARNING STRATEGIES
Online class-based sessions (20 hours)
There are 20 hours of class-based teaching delivery presented online, which will include lectures, practical demonstrations, and group work where appropriate. There will be face-to-face/online surgeries to help develop student knowledge of the taught module contents.
Self-led Learning (180 hours)
You are expected to spend 180 hours in self-led learning. This includes working through supplied tutorials, tools practice and background/guided reading.
MODULE TEXTS
Recommended (not essential):
Baron; (2016), "AWS Certified Solutions Architect Official Study Guide: Associate Exam"; Sybex; ISBN 1119138558
Jackson and Goessling; (2018), "Architecting Cloud Computing Solutions: Build cloud strategies that align technology and economics while effectively managing risk; Packt Publishing; ISBN 178847242X
Edelman, Lowe, and Oswalt; (2016), "Network Programmability and Automation: Skills for the Next-Generation Network Engineer"; O'Reilly Media; ISBN 1491931256
MODULE RESOURCES
You will need access to these resources:
1. Blackboard VLE for module information and learning materials
2. Microsoft Teams for module communication
3. Staffordshire University library access (physical or digital) for access to recommended texts
4. It is strongly recommended that you have your own laptop, PC (Windows 10) or Mac (OS X / Big Sur) with Internet access and ability to install and configure software (administrative access).
If administrative access is unavailable on your computer, e.g., it is a loan computer or does not belong to you, then access to VMWare with a Windows image is recommended so that software can be installed.
VMWare download for students: https://staffsuniversity.sharepoint.com/sites/software/SitePages/VMWare.aspx
Windows 10 for Education available via Staffs OnTheHub (register and search for Windows 10): https://staffs.onthehub.com
Software List (all software is free of charge):
Visual Studio 2019 Community Edition
https://visualstudio.microsoft.com/downloads/ (Windows and Mac)
Jenkins
https://www.jenkins.io/download/
Git
https://git-scm.com/downloads
Github account
https://www.github.com
XAMPP (PHP)
https://www.apachefriends.org/download.html
(Optionally)
Docker Desktop