Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration...

27
Software Configuration Management (SCM)

Transcript of Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration...

Page 1: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Software Configuration Management (SCM)

Page 2: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

“the discipline of identifying the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system life cycle.” SWEBOK v3 (Ch. 6)

Page 3: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

“Software configuration management (SCM) is a supporting-software life cycle process that benefits p ro j e c t m a n a g e m e n t , d e v e l o p m e n t a n d maintenance activities, quality assurance activities, as well as the customers and users of the end product.” SWEBOK v3 (Ch. 6)

Page 5: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Fundamental Features

• Manage changes to files over time

• Track changes, provide history, auditing, tracing

• Provide mechanisms to maintain versions

• Allow going backward and forward in time, recover older versions

Page 6: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

More than just Version Control• Version (revision) control of: source code, documentation,

configuration files, …

• Workflow management: branch, merge, pull requests, tagging

• File access: distributed, centralized, permissions

• Manage/facilitate concurrent access: merge model or locking

• Record who made changes, blame

• See: https://en.wikipedia.org/wiki/Comparison_of_version_control_software

Page 7: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Really, more than just Version Control

is the primary enabler of many core SE activities

• Build: build automation, release management

• Test: test automation, code coverage, traceability

• Documentation: doc generation

• Requirements/Specifications

• Modeling: modeling artifacts

• Changes: change management

• Maintenance: defect tracking, bugs, tickets

• ?

Page 8: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

SCM

.cs .cshtml .js .css

SoftwareDocumentation

.feature .html

TestsB

uild

Build

Run

Run

Page 9: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Professional Workflow (courtesy Claire Mears)

Page 10: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

SCM

.cs .cshtml .js .css

Software

.sql

Database

Documentation

.feature .html

Tests CreateB

uild

Build

Run

Run

Page 11: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

SCM

.cs .cshtml .js .css

Software

.sql

Database

Documentation

.feature .html

Tests CreateB

uild

Build

Run

Run

.sh .ps1 .py

Web server Network

Cloud ResourcesDeploy

Deploy .pp .yml Dockerfile .rb

Complete Developer or

Test System

Complete System

Deploy

Deploy

Physical Objects

Create

.g .f3d .scad

???

Page 12: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

IaaSInfrastructure as a Service

• AWS

• Azure

• Google Compute Engine

• Rackspace

• IBM SoftLayer

Page 13: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Script it!

• AWS Command Line Interface

• Azure CLI

• Google Cloud SDK

Page 14: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Azure Web App

Example & Demo: azwebapp.sh

*Technically uses PaaS

Page 15: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Iaas — Iac — DevOps

• Infrastructure as a Service

• Infrastructure as Code

• software DEVelopment and information technology OPerationS

https://en.wikipedia.org/wiki/DevOps

Page 16: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Deploy an Entire Custom System

• Puppet

• Chef

• Ansible

• Salt

• Vagrant

• Terraform

Continuous Configuration Automationor

System Configuration Management

• Docker

Page 17: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Examples

• Examples on official websites, + e.g.

• Ansible: https://github.com/ansible/ansible-examples

• Puppet/Vagrant: https://github.com/jrodriguezjr/puppet-lamp-stack

• Docker: Very simple example Dockerfile

Page 18: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Docker“Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.”

Images: https://www.docker.com

$ docker build -t lab6image . $ docker run -it lab6image /bin/bash

$ docker run -d -p 80:80 —name webserver nginx

Page 19: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Movements• Software Defined Radio

• Software Defined Networking

• Software Defined Storage

• Software Defined Data Center

• XaaS — “Everything-as-a-Service”

Create API and systems to programmatically

initialize, control, change & manage

Then wrap it up as a managed service

Define systems and behavior with code

Page 20: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

What are we doing here?

Page 21: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Inventions by Homo SapiensAmazing

• ? • stone tools • spear, bow & arrow • knife • Pottery • Beer

• The Wheel • cart • bronze age tools • iron age tools • guns • fighter jets • food processor • computers (as

applications)

Revolutionary• ? • dog, cat,

domestication of animals, falconry

• fishing cormorants

• passenger pigeons

• slavery • paid labor

computers (as automatons)

“enter a new era or age”

+

++

+

++

+

+

++

++

+

API, or Scripting Computer Applications

Page 22: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

+

Page 23: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

.g

.stl.*

Page 24: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Rethinking Transportation 2020-2030The Disruption of Transportation and the Collapse of the Internal-Combustion Vehicle and Oil Industries

Disruption, Implications and Choices

A RethinkX Sector Disruption ReportMay 2017

James Arbib & Tony Seba

“TaaS will provide 95% of the passenger miles traveled within 10 years of the widespread regulatory approval of AVs. By 2030, individually owned ICE vehicles will still represent 40% of the vehicles in the US vehicle fleet, but they will provide just 5% of passenger miles.”

See also: Intel predicts autonomous driving will spur new ‘Passenger Economy’ worth $7 Trillion

Page 26: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

http://cs.stanford.edu/people/karpathy/deepimagesent/

Machine Learning is CodeAutoML

Page 27: Software Configuration Management (SCM)morganb/lecture/SCM.pdf · “Software configuration management (SCM) is a supporting-software life cycle process that benefits project management,

Everything as CodeWill we have API’s for?

• making or cooking dinner

• agriculture

• building a house

• filing a lawsuit

• incorporating a company

• gene editing

• ??

WTF

?