Stack management and monitoring tools

Solution space

Tool

Class

Language

Application code management

Package creation

/etc Configuration

Packages

Daemons

Users/keys

State monitoring

Trend monitoring

Subversion

Version control

C/C++

(green star)

(error)

(error)

(error)

(error)

(error)

(error)

(error)

Bazaar

Version control

Python

(green star)

(error)

(green star)

(error)

(error)

(error)

(error)

(error)

git

Version control

Multiple

(green star)

(error)

(green star)

(error)

(error)

(error)

(error)

(error)

Capistrano

Application deployment

Ruby

(star)

(error)

(star)

(star)

(star)

(star)

(error)

(error)

Ant

Application deployment

Java

(star)

(tick)

(star)

(star)

(star)

(star)

(error)

(error)

Fabric

Application deployment

Python

(star)

(error)

(star)

(star)

(star)

(star)

(error)

(error)

Puppet

Configuration management

Ruby

(question)

(error)

(green star)

(green star)

(green star)

(green star)

(question)

(error)

bcfg2

Configuration management

Python

(error)

(error)

(green star)

(green star)

(green star)

(green star)

(tick)

(error)

cfengine

Configuration management

C/Perl

(error)

(error)

(star)

(star)

(star)

(star)

(error)

(error)

Hudson

Continuous integration

Java

(error)

(error)

(star)

(error)

(error)

(error)

(tick)

(error)

Nagios

State monitoring

Perl

(error)

(error)

(error)

(error)

(red star)

(error)

(tick)

(error)

Munin

Trend monitoring

Perl

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

Cacti

Trend monitoring

Perl

(error)

(error)

(error)

(error)

(error)

(error)

(error)

(tick)

(error) Not supported
(tick) Supported
(red star) Monitoring only
(green star) Declarative
(star) Imperative

Notes

There must be at least one application performing configuration management. The big question is which approach to take for application code management:

  • Use both a configuration management and an application deployment system.
  • Package the application as an RPM (relatively easy) and deploy using the configuration management system.