Skip to content
Branch: master
Go to file
Code

Latest commit

chrisparnin committed 1a2129b Jun 28, 2020
Merge pull request #34 from ssmirr/patch-3
pipeline 2: fixing mvn command

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jan 4, 2020
Jun 11, 2020
May 13, 2020
Nov 16, 2016
Jan 8, 2020
Mar 13, 2018

README.md

DevOps: CSC 519


In this course, you will gain practical exposure to the skills, tools, and knowledge needed in automating software engineering processes and infrastructure necessary for continuous deployment of software. Students will have the chance to build new or extend existing software engineering tools and design an automated deployment pipeline.

Course Overview

In the course, a mixture of traditional lectures with activities and in-class workshops will be used. During lectures, we will cover core concepts related to a topic. During the in-class workshops, we will perform sample exercises with relevant tools that reinforce lecture material. Evaluation will be based on tech talks, homework assignments, workshop attendance, and final project.

After the course, students are able to:

  • Programmatically provision images.
  • Automatically apply configuration management to production environments.
  • Automatically create and maintain build environments.
  • Maintain test suites and measure testing quality and coverage.
  • Automatically generate new tests, using feedback-directed random testing, fuzzing, and data-flow analysis.
  • Programmatically measure code quality via static and dynamic code analysis.
  • Understand components of infrastructure.
  • Remotely regulate behavior of deployed software via feature flags and configuration servers.
  • Apply advanced strategies for deployment of software.
  • Monitor and analyze telemetry data.
  • Implement resilience testing on production environments (e.g., Chaos Monkey).

Schedule and Topics—Summer 2020

The following schedule is subject to change.

Class Topics Resources Assignments
➡️ Setup 🥾Engineering Basics 🥾
May 14 Intro+Computing Environments 📹 HW0
May 19 Provisioning 📹 Cloud Providers
May 21 Continuous Deployment Concepts 📹 Summit I, Summit II-III
🧱   Computing Environments    ☢️
May 26 Virtualization concepts 📹 HW1
May 28 Virtualization Workshop 📹
Jun 2 Containers/Docker Workshop 📹 Workshop Attendance Form
Jun 4 Configuration Management 📹 HW2
Jun 7 Building Configuration Server 📹
Ansible Playbooks 📹
🚰    Pipelines    🚀
Jun 9 Pipelines, CI/CD 📹 Verifying Pipelines Build Milestone
Jun 11 Building Basic Pipelines 📹 Workshop Attendance Form
Jun 16 Jenkins 📹
🧪   Testing+Analysis   
Jun 23 Testing + Analysis concepts 📹 Test Milestone
Jun 25 Fuzzing workshop 📹
Jun 30 Test suites analysis and coverage workshop 📹
Jul 2 Static analysis workshop 📹
🚧   Infrastructure+Deploy    🏗️
Jul 7 Infrastructure concepts Deploy Milestone
Jul 9 Building Caches and Queues with Redis HW3
Jul 14 Deploy Strategies and Feature flags
Deployment Workshop
Jul 16 Monitoring
Monitoring Workshop HW4
📈   Ops    🧯
Jul 21 Incidents Slides
Incident call
Jul 23 Feature experiments and chaos engineering
Chaos engineering workshop
🎬   Closing    💯
Jul 28 Final Exam (6am--23:59pm)

Project

The primary objective of the course will be to allow students to gain experience in incrementally building a continous delivery pipeline from scratch. Throughout the semester, students are expected to complete a component of the pipeline by each milestone deadline.

Milestones

Details on requirements for milestones will be released throughout the course. A student's pipeline should demonstrate the following components by the milestone deadline:

[ CM ] -> [ BUILD+TEST+ANALYSIS ] -> [ DEPLOY ] -> [ SPECIAL ]

Communication channels

Papers
Books
Glossary of Tools

Past versions

You can’t perform that action at this time.