All Projects → garystafford → Cd Maturity Model

garystafford / Cd Maturity Model

Licence: apache-2.0
Continuous Delivery Maturity Model - Gap Analysis Visualization Tool, using D3.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Cd Maturity Model

terraform-aws-concourse
Terraform Module for a distributed concourse cluster on AWS
Stars: ✭ 12 (-73.33%)
Mutual labels:  infrastructure, continuous-delivery
terraform-provider-spinnaker
Terraform Provider to manage spinnaker pipelines
Stars: ✭ 36 (-20%)
Mutual labels:  continuous-delivery, cd
community-edition
Zebrunner is a Test Automation Management Tool
Stars: ✭ 171 (+280%)
Mutual labels:  infrastructure, continuous-delivery
Terrahub
Terraform Automation and Orchestration Tool (Open Source)
Stars: ✭ 148 (+228.89%)
Mutual labels:  infrastructure, continuous-delivery
Argo Cd
Declarative continuous deployment for Kubernetes.
Stars: ✭ 7,887 (+17426.67%)
Mutual labels:  continuous-delivery, cd
software-factory
The ready to use Continuous Integration platform
Stars: ✭ 17 (-62.22%)
Mutual labels:  continuous-delivery, cd
flagsmith-js-client
Javascript Client for Flagsmith. Ship features with confidence using feature flags and remote config. Host yourself or use our hosted version at https://www.flagsmith.com/
Stars: ✭ 42 (-6.67%)
Mutual labels:  continuous-delivery, cd
Slashdeploy
GitHub Deployments for Slack
Stars: ✭ 150 (+233.33%)
Mutual labels:  continuous-delivery, cd
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (+902.22%)
Mutual labels:  continuous-delivery, cd
Pipe
Continuous Delivery for Declarative Kubernetes, Serverless and Infrastructure Applications
Stars: ✭ 341 (+657.78%)
Mutual labels:  infrastructure, cd
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (+451.11%)
Mutual labels:  continuous-delivery, cd
Abstruse
Abstruse is a free and open-source CI/CD platform that tests your models and code.
Stars: ✭ 704 (+1464.44%)
Mutual labels:  continuous-delivery, cd
Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (+382.22%)
Mutual labels:  continuous-delivery, cd
bitops
Automate the provisioning and configuration of cloud infrastructure.
Stars: ✭ 28 (-37.78%)
Mutual labels:  continuous-delivery, cd
Nevergreen
🐤 A build monitor with attitude
Stars: ✭ 170 (+277.78%)
Mutual labels:  continuous-delivery, cd
www.go.cd
Github pages repo
Stars: ✭ 39 (-13.33%)
Mutual labels:  continuous-delivery, cd
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (+3313.33%)
Mutual labels:  continuous-delivery, cd
Gradle Nexus Staging Plugin
Automatize releasing Gradle projects to Maven Central.
Stars: ✭ 132 (+193.33%)
Mutual labels:  continuous-delivery, cd
flagsmith-nodejs-client
Flagsmith Node JS Client. Flagsmith lets you manage features flags across web, mobile and server side applications. Get builds out faster. Control who has access to new features.
Stars: ✭ 13 (-71.11%)
Mutual labels:  continuous-delivery, cd
Lambdacd
a library to define a continuous delivery pipeline in code
Stars: ✭ 655 (+1355.56%)
Mutual labels:  continuous-delivery, cd

Build Status

CD Maturity Model - Gap Analysis Visualization Tool

A gap analysis visualization tool for the 'Continuous Delivery Maturity Model'. Based on model from the book, 'Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation', by Jez Humble and David Farley, available on Amazon.

This JavaScript-based application displays a visual comparison, based on a radar graph, also known as a spider graph, of the six areas of practice of the CD Maturity Model, across multiple applications platforms, business units, or functional divisions within your SDLC.

The Maturity Model Gap Analysis Tool is applicable to many discipline, not only Continuous Delivery. The application is built to be fully configurable and easily adaptable, by modifying the data file (js/data/data_radar.js). The default data file contains a sample data set, based on a fictions financial institution's gap analysis.

CD Maturity Model - Gap Analysis Visualization Tool

Quick Start

To install this project locally, git clone the requirejs branch from GitHub:

git clone --branch requirejs --single-branch --depth 1 \
  https://github.com/garystafford/cd-maturity-model.git
cd cd-maturity-model

D3.js Data-Driven Documents

The application is a browser-based tool, which uses the D3.js JavaScript library. Visualizations are rendered using JavaScript and SVG.

RequireJS Optimization

Module-based project uses RequireJS. After making any javascript or css changes, optimize the project using RequireJS Optimizer. Optimizer combines related scripts together into build layers and minifies them via UglifyJS (the default). This project requires Node.js.

npm install -g requirejs
mkdir dist/ || echo 'dist/ folder already exists...'
cp -f js/require_2_3_5/require.min.js dist/
cp -f favicon.png dist/
node build/r_2_3_5/r.js -o build/build.js
node build/r_2_3_5/r.js -o cssIn=css/radar.css out=dist/main-built.css

Optimizing Project

Data-Driven Visualization

Currently, the CD Maturity Model data is stored in the js/data/data_radar.js file, as an array of JavaScript object literals. It would be very easy to convert the project to use a data source, such as a static JSON or YAML file, or MongoDB database.

CATEGORIES = [
    "Build Management and Continuous Integration",
    "Environments and Deployment",
    "Release Management and Compliance",
    "Testing",
    "Data Management",
    "Configuration Management"
];

applications = [
    "Core Banking Application",
    "Internet Banking Application",
    "Human Resources Application",
    "ATM Management Application"
];

maturityData: [
    [{ //Core Banking Application
        "app"  : applications[0],
        "axis" : CATEGORIES[0],
        "value": -1
    }, {
        "app"  : applications[0],
        "axis" : CATEGORIES[1],
        "value": -1
    }, {
        "app"  : applications[0],
        "axis" : CATEGORIES[2],
        "value": 1
    }, {
        "app"  : applications[0],
        "axis" : CATEGORIES[3],
        "value": -1
    }, {
        "app"  : applications[0],
        "axis" : CATEGORIES[4],
        "value": 0
    }, {
        "app"  : applications[0],
        "axis" : CATEGORIES[5],
        "value": 2
    }]
];

Hosting Project

To host this project, after optimizing, you only need the following items:

  • index.html file
  • dist/ directory

Hosting Project on Apache with Docker

This project includes a Dockerfile for local development and hosting of the app, on Apache web server, in a Docker container. After running the 'RequireJS Optimization' commands above:

docker build -t apache2 .
docker run -d --name cd-maturity-model -p 8082:80 apache2

Point your browser to http://localhost:8082/

Rapid Development

To quickly rebuild and re-containerize the application, during development, run the following:

rm -rf dist/* \
  && cp -f js/require_2_3_5/require.min.js dist/ \
  && cp -f favicon.png dist/ \
  && node build/r_2_3_5/r.js -o build/build.js \
  && node build/r_2_3_5/r.js -o cssIn=css/radar.css out=dist/main-built.css \
  && docker rm -f cd-maturity-model \
  && docker build -t apache2 . \
  && docker run -d --name cd-maturity-model -p 8082:80 apache2

Infrastructure as Code Maturity Model

This project now includes a second data file (js/data/iac_radar.js), based on the IaC Maturity Model. To use IaC sample data, rename the file to data_radar.js; it will be automatically included in the build. Alternately, change the name of data file that gets included, by modifying the build/build.js and js/radar/common.js files. The data file contains a sample data set, based on a fictions financial institution's gap analysis.

IaC Gap Analysis

The CD Maturity Model can be easily adapted to the evolving Infrastructure as Code (IaC) Maturity Model.

IaC Maturity Model

Helpful Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].