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

Post on 05-Jun-2020

0 views 0 download

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

Software Configuration Management (SCM)

“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)

“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)

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

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

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

• ?

SCM

.cs .cshtml .js .css

SoftwareDocumentation

.feature .html

TestsB

uild

Build

Run

Run

Professional Workflow (courtesy Claire Mears)

SCM

.cs .cshtml .js .css

Software

.sql

Database

Documentation

.feature .html

Tests CreateB

uild

Build

Run

Run

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

???

IaaSInfrastructure as a Service

• AWS

• Azure

• Google Compute Engine

• Rackspace

• IBM SoftLayer

Script it!

• AWS Command Line Interface

• Azure CLI

• Google Cloud SDK

Azure Web App

Example & Demo: azwebapp.sh

*Technically uses PaaS

Iaas — Iac — DevOps

• Infrastructure as a Service

• Infrastructure as Code

• software DEVelopment and information technology OPerationS

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

Deploy an Entire Custom System

• Puppet

• Chef

• Ansible

• Salt

• Vagrant

• Terraform

Continuous Configuration Automationor

System Configuration Management

• Docker

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

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

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

What are we doing here?

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

+

.g

.stl.*

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

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

Machine Learning is CodeAutoML

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

?