Computational Statistics with Python (pre-requisite).
Cannot be taken in conjunction with Information Systems Management (ISM)
|The way that software is developed, consumed and maintained has fundamentally changed in recent years. The mass availability of cloud computing has led to a reimagining of the software development lifecycle (SLDC) and inspired new patterns and approaches to managing portfolios of applications. Spearheaded in organisations such as Google, eBay and Amazon, cloud native principles, particularly containerisation and microservices, are becoming widely used across a whole host of organisations and industries from media (e.g. Netflix) through to finance (e.g. Goldman Sachs). As such, the module covers an important need in the overall eBusiness Management curricula for students on a more technical pathway to gain experience in these key new technologies and approaches that are in high demand among employers. This module will explore these changes through a mixture of lectures, seminars, case studies, and, in particular, hands-on lab sessions. The key themes will include:
Upon successful completion participants will be able to:
1. What is Cloud Native Computing?
- Cloud computing
- The 12-factor app
- Service orientated architecture and microservices
2. Cloud Native Computing in Practice
- The five R’s methodology for cloud migration
- Cloud migration assessment
- Agile, DevOps and DataOps
- Infrastructure as Code and Configuration Management
- Microsoft Azure labs
2. Containerisation and Container Orchestration
- Virtual machines and containers
- Docker labs
- Container Orchestration
- Kubernetes labs
3. CI/CD and IT operations
- Continuous Integration / Continuous Deployment
- Jenkins labs
- Cloud Foundry
4. Capstone Project
- Application assessment
- Building a CI/CD pipeline
- Scaling the application
A more detailed explanation of these topics is below.
An overview of what cloud computing is, and how it presents challenges and opportunities for application development, deployment and maintenance. Understanding the key design principles of the 12-factor app methodology and related concepts (particularly microservices).
Practical experience of application assessment for cloud readiness factors and for migration pathways (the 5 R’s methodology). Examination of the agile methodology and DevOps, and the various opportunities and challenges associated. Introduction to cloud provisioning via Microsoft Azure, and discussion of infrastructure as code and configuration management solutions.
An evaluation of the development from traditional server-based computing, through to virtual machines and then containerisation. Practical workshops using Docker for containerisation of applications. Container orchestration for managing multiple applications and containers at enterprise-scale. Practical workshops using Kubernetes to manage container workflows.
The evolution from application release management, through to continuous integration and continuous deployment. Exploring the importance of testing in this process, and systems of management including green/blue deployments and canary deployments. Practical labs building a Jenkins CI/CD pipeline. An evaluation of platforms-as-a-service and cloud foundry, and exploration of where such systems can be deployed to further automate containers and cloud operations.
A capstone project that will bring these aspects together in a realistic application migration workload. Participants will work in teams to modernise an application and release it to the cloud.
4000 Words Post Module (70% weighting) and In module Assessment (30% weighting)
1 week, including 12 hours of lectures, 1.5 hours of seminars, 16.5 hours of practical classess