Skip to main content

Cloud Native Computing

Pre-requisites

Computational Statistics with Python (pre-requisite).

Cannot be taken in conjunction with Information Systems Management (ISM)

Introduction

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[1]) through to finance (e.g. Goldman Sachs[2]). 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:
  • The 12-factor app methodology (and its extensions)
  • The agile methodology, DevOps and DataOps
  • Version control systems (with GitHub)
  • Service orientated architecture and microservices
  • Infrastructure as Code and Configuration Management
  • Containerisation (with Docker)
  • Container Orchestration (with Kubernetes)
  • Continuous Integration / Continuous Deployment (with Jenkins)
  • Testing, blue/green deployment, and canary deployments
  • Platforms-as-a-Service (with Pivotal Cloud Foundry)
  • Cloud migration assessment (with a custom-made tool)
The module will conclude with a hands-on, capstone project completed in teams. The project brings together all of these technologies to modify an application to meet the principles and standards of cloud-native computing. Prior to attending the course, participants will complete pre-workto familiarise themselves with Linux and server operations.

[1] https://www.martinfowler.com/microservices/#who

[2] https://www.americanbanker.com/news/why-tech-savvy-banks-are-gung-ho-about-container-software

Objectives

Upon successful completion participants will be able to:

  • Demonstrate a comprehensive understanding of the key concepts of cloud native computing
  • Critically evaluate complex applications and services in respect to current professional standards
  • Critically evaluate software development lifecycle practices, and design conceptual and practical workflows
  • Demonstrate a sound conceptual understanding of advanced virtualisation techniques (such as containerisation), and an ability to practically implement these architectures
  • Critically evaluate systematic and operational risks associated with cloud native practices, and the use of autonomous systems to mitigate against them.

Syllabus

    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
    • Platforms-as-a-Service
    • Cloud Foundry

    4. Capstone Project

    • Application assessment
    • Modernisation
    • Containerisation
    • 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.

    Assessment

    4000 Words Post Module (70% weighting) and In module Assessment (30% weighting)

    Duration

    1 week, including 12 hours of lectures, 1.5 hours of seminars, 16.5 hours of practical classess