Stack management and monitoring tools
Solution space
Tool |
Class |
Language |
Application code management |
Package creation |
|
Packages |
Daemons |
Users/keys |
State monitoring |
Trend monitoring |
---|---|---|---|---|---|---|---|---|---|---|
Subversion |
Version control |
C/C++ |
||||||||
Bazaar |
Version control |
Python |
||||||||
git |
Version control |
Multiple |
||||||||
Capistrano |
Application deployment |
Ruby |
||||||||
Ant |
Application deployment |
Java |
||||||||
Fabric |
Application deployment |
Python |
||||||||
Puppet |
Configuration management |
Ruby |
||||||||
bcfg2 |
Configuration management |
Python |
||||||||
cfengine |
Configuration management |
C/Perl |
||||||||
Hudson |
Continuous integration |
Java |
||||||||
Nagios |
State monitoring |
Perl |
||||||||
Munin |
Trend monitoring |
Perl |
||||||||
Cacti |
Trend monitoring |
Perl |
Not supported
Supported
Monitoring only
Declarative
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.