Course Title: Systems Deployment and Operations

Part A: Course Overview

Course Title: Systems Deployment and Operations

Credit Points: 12.00

Terms

Course Code

Campus

Career

School

Learning Mode

Teaching Period(s)

COSC2759

City Campus

Undergraduate

171H School of Science

Face-to-Face

Sem 1 2020

Course Coordinator: Shekhar Kalra

Course Coordinator Phone: +61 3 9925 9500

Course Coordinator Email: shekhar.kalra@rmit.edu.au

Course Coordinator Location: 14.10.10A

Course Coordinator Availability: By appointment, by email


Pre-requisite Courses and Assumed Knowledge and Capabilities

  • ISYS 1117/1118 Software Engineering Fundamentals
  • This course can NOT be taken in conjunction with COSC 2299/2428 Software Engineering: Process and Tools or ISYS 1088/1089 Systems Architecture


Course Description

Current modern software development processes divulge require software to be deployed across different platforms, either physical hardware or virtual cloud-based, under a variety of possible operating systems and environments. So-called Dev Ops are important members of Software Engineering teams and take responsibility for packaging a system into a “containers” that can be easily deployed into different environments. Moreover, requirements regarding scalability, security and other system qualities require decisions to be made regarding deployment configuration and architecture.   This course introduces concepts related to system release management and deployment, as well as factors impacting operational decisions. The material will refer to modern SE processes and current software tools, including workflows for continuous deployment, tools such as Docker, and reference architectures for ensuring a variety of system qualities under different software environments. Students taking this course will be well versed in the concepts and toolkit required by the Dev Ops role.

 


Objectives/Learning Outcomes/Capability Development

On completion of this course you should be meeting the following Course Learning Outcomes (CLOs):  

  1. Understand the importance of the Dev Ops role within modern Agile Software Engineering process;
  2. Understand the issues associated with deploying software systems, including code repository workflows and how to manage risk in a continuous deployment environment;
  3. Be capable to using modern tools to manage flexible deployment across a range of environments;
  4. Understand the issues involved in ensuring system qualities to meet the non-functional requirements of a system;
  5. Be capable of working closely with developers in a Software Development team and managing the deployment and operation of software systems produced by that team.

 



Overview of Learning Activities

The learning activities for this course include:

  • Key concepts will be explained in lectures, classes or online, where syllabus material will be presented and the subject matter illustrated via demonstrations and examples;
  • Tutorials and/or labs and/or group discussions and activities (including online forums) focused on projects and problem solving will provide practice in the application of theory and procedures, allowing exploration of concepts with teaching staff and other students, to provide feedback on progress and understanding;
  • Assignments, as described in Overview of Assessment (below), including group assignments, will provide simulation of workplace activities and an opportunity to demonstrate an integrated understanding of the subject matter; and
  • Private study, working through the course materials as presented in class and gaining practice at solving conceptual and technical problems.


Overview of Learning Resources

The course is supported by the Canvas learning management system which provides specific learning resources.

It is a requirement of this class that you have your own laptop, which you will need to bring with you. At the start of the semester you will be advised to install free software required to successfully complete the course.


Overview of Assessment

This course has no hurdle requirements.

 

The assessment for this course comprises practical work involving working with team members, class tests, and a final exam.

 

Assessment Task 1:

Set up a CI process for an application including:

Unit testing, Static Code analysis, Code Coverage report and Multiple failure scenarios & Packages artefacts for deployment
Weighting: 20%
This assessment task supports CLOs 1, 2, 3 & 5.

 

Assessment Task 2:

Set up CD process for application, building on top of assessment 1: Expand CI to support feature branches, Deploy into environment test (including infrastructure for database), Validate deployment success, Run test against environment, Tear down test environment, Multiple failure scenarios & Deploy changes into production environment with no downtime.
Weighting: 20%
This assessment task supports CLOs 2, 4 & 5

 

Assessment Task 3:

Mid-semester test to be held during week 7

Weighting: 20%
This assessment task supports CLOs 1, 2, 3 & 4

 

Assessment Task 4: a final technical exam to provide a comprehensive analysis of students’ understanding of core concepts introduced in the course.
Weighting: 40%
This assessment task supports CLOs 1, 2, 3 & 4