I usually shy away from giving a list of tools that we use because people have their particular tool preferences and are sometimes indignant in considering others. However, I realize it’s helpful for people to understand the tool landscape when it comes to Continuous Delivery in the Cloud just so they know where to start looking. After reading my Continuous Integration book, this is often the most common question I get from readers.
I want to say up front that I’m not advocating the use of any of these tools, just that we’ve used some of the tools or investigated when creating Continuous Delivery systems. I’m sure some of the tools that we use on a daily basis won’t make it to this list.
The precise toolset a team may choose to use depends upon numerous factors including project, cost and customer constraints – to name a few. Therefore, I suggest that you focus more on the type of tool and determine which one meets their particular needs for their Continuous Delivery ecosystem. Just because I’m not mentioning a particular tool doesn’t mean I’m not using it or that I don’t think it’s a good tool; these are meant to be illustrative. We tend to focus more on freely-available tools because people can download and use them quickly. There are good reasons to choose commercial tools. As implied before, you don’t need to be using all of these tools to get significant benefit from Continuous Delivery. Start small and build it up. I’ve listed some of the tools in each category for the Java, .NET and Ruby platforms. Since, we lean heavily toward Cloud tools, you’ll see that we opt for the SaaS-based tools, when applicable. Let me know if your preferred tool didn’t make the list. Ok, there’s my disclaimer. On with the list:
Application Containers – JBoss, Tomcat, IIS, Mongrel. NOTE: there are so many app containers, I’m not going to try to list all of them.
Build Tools – Ant, AntContrib, NAnt, MSBuild, Buildr, Gant, Gradle, make, Maven, Rake
Code Review – Crucible
Code Insight – Fisheye
Continuous Integration – Bamboo, CodeShip, Jenkins, AntHill Pro, Go, TeamCity, TFS 2010
Cloud IaaS – AWS EC2, AWS S3 , Windows Azure
Cloud PaaS – Google App Engine, AWS Elastic Beanstalk, Heroku
Database – Hibernate, MySQL, Liquibase, Oracle, PostgreSQL, SQL Server, SimpleDB, SQL Azure, Ant, MongoDB
Database Change Management – dbdeploy, Liquibase
Infrastructure Automation – Capistrano, Cobbler, BMC Bladelogic, CFEngine, IBM Tivoli Provisioning Manager, Puppet, Chef, Bcfg2, AWS Cloud Formation, Windows Azure AppFabric NOTE: There are many names and overlap for this tool “category”.
Dependency Management – Ivy, Archiva, Nexus, Artifactory, Bundler
Deployment Automation – Java Secure Channel, ControlTier, Altiris, Capistrano, Fabric, Func
Information Sharing – Confluence, Google Apps
Installer – InstallShield, IzPack
Integrated Development Environment (IDE) – Eclipse, IDEA, Visual Studio
Issue Tracking – Greenhopper, JIRA
Multi-Type – rPath
Passwords – PassPack, PasswordSafe
Protected Configuration – ESCAPE, ConfigGen
Project Management – JIRA, Pivotal Tracker, SmartSheet
Provisioning – JEOS, BoxGrinder, CLIP, Eucalyptus, AppLogic
Reporting/Documentation – Doxygen, Grand, GraphViz, JavaDoc, NDoc, SchemaSpy, UmlGraph
Static Analysis – CheckStyle, Clover, Cobertura, FindBugs, FxCop, JavaNCSS, JDepend, PMD, Sonar, Simian
Systems Monitoring – CloudKick, Nagios, Zabbix, Zenoss
Testing – AntUnit, Cucumber, DbUnit, webrat, easyb, Fitnesse, JMeter, JUnit, NBehave, SoapUI, Selenium, RSpec, SauceLabs
Version-Control System – SVN/Subversion, git, Perforce