Back to Modules
CS302

IT Solution Lifecycle Management

1 CreditsTerm 1

Description

Historically, the software development process was linear, and code was deployed infrequently. Today, it couldn't be more different: companies like Amazon reportedly deploy new code every 11.7 seconds, and software development culture in general has shifted towards iterating with agility. In IT Solution Lifecycle Management, students will be introduced to some state-of-the-art practices for building, testing, deploying, and maintaining software, in a way that supports frequent and rapid iterations. In particular, they will study the 'DevOps' approach, which embodies the idea that development and operation teams should work closely together throughout the entire software lifecycle. As well as studying examples of this culture through some real-world case studies, students will also gain hands-on experience, by learning how to build loosely coupled systems based on microservices, and automating the process of testing, containerising, and orchestrating them using a modern continuous integration / continuous delivery (CI/CD) pipeline.

Requisites

Prerequisites: CS203/IS212 - Pre-req

Co-requisites: None

Anti-requisites: CS302/IS213/IS301 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: N/A

Areas: Business Options Econ Major Rel/Econ Options IT Solution Development Core IT Solution Management Core Social Sciences/PLE Major-related

Learning Outcomes

Course Objectives Upon completion of the course, students will be able to: Recognise and explain the main theories and practices of DevOps. Design, build, and evaluate microservices-based solutions. Apply containerisation technology in software deployment. Automate the various stages of the software delivery workflow. Build a complete CI/CD pipeline using modern tools. Manage and monitor deployed systems. Competencies Students will be able to: Describe the main practices and benefits of DevOps culture. Build microservices using suitable programming languages. Design and implement synchronous communication between microservices using REST APIs. Design and implement asynchronous communication between microservices using AMQP. Build external-facing API gateways. Utilise containerisation (e.g. Docker) and Infrastructure as Code (e.g. Terraform) technology. Manage microservices in production using container orchestration solutions (e.g. ECS, Kubernetes). Design and implement automated testing processes. Implement a complete CI/CD pipeline using modern tools (e.g. GitLab). Monitor a deployed application using appropriate tools (e.g. Prometheus).

Graduate Learning Outcomes

Disciplinary Knowledge, Critical thinking & problem solving, Collaboration and leadership, Communication, Self-directed learning

Competencies

Software Design, Agile Software Development, Applications Development, Continuous Integration and Continuous Deployment, Software Testing