DevOps

DevOps Motivation

Michael L. Collard, Ph.D.

Department of Computer Science, The University of Akron

Overview

  • What is DevOps?
  • Why a course on DevOps?
  • Why led me to create this course on DevOps?

Related Courses

  • 3460:480 Software Engineering (SE)
  • 3460:4XX Software Testing (ST)
  • 3460:428 UNIX Systems Programming (UNIX)

srcML

  • Build
    • 151 source-code files, 32 KLOC of code
    • 2 KLOC of CMake for C library and CLI
    • Must build on macOS, Linux, Windows
  • Testing
    • Client CLI, Library, Parser
  • Release
    • 23 platforms
    • macOS, Windows, 19 Linux distributions
    • rpm, deb, exe, pkg
  • Maintenance
    • Platforms added continually
    • Bugs fixed continually

Time periods/modes

  • Development
  • Operations

Development

  • Features are being implemented to fulfill requirements
  • Lots of coding
  • Testing may be limited to unit testing
  • Follows an agile process

Operations

  • Feature is "released" and is ready for use
  • Typically considered part of Information Technology
  • Includes deployment, making the developed feature ready for use
  • Typically performed by a different team than the development team
  • May not follow an agile process

Professionalism

  • Working with a wide variety of stakeholders
  • Continuous development
  • Documentation
  • Tracking of progress
  • Adherence to standards
  • Planning for the future

Wide variety of stakeholders

  • Users
  • Users' management
  • Other developers
  • Operations people
  • Other parts of the organization