I\'m looking for solutions, preferably open source, that can manage deployments of multiple interdependent java web-applications.
The solution requires an ab
Sounds like you need a chef to cook your configuration :)
Deployment is a complicated business. Maven has many of the plugins you could need to manage a deployment, but it takes some configuration to get it to do exactly what you want. The following describes how each of your issues could be addressed. Though depending on your environment, it might be more trouble than it's worth.
The maven Cargo plugin can be used to deploy the applications. Obviously this can be quite involved but Cargo is a pretty good tool for managing deployments.
The apache config could be packaged as a separate jar by your build process and deployed to the repository, then downloaded/published for use in your deployment jar (the dependency plugin can be used to pull the config jar from the repository). Alternatively Maven has an scm api that can be used to invoke arbitrary commands against your SCM repository (see this answer for an example plugin using the SCM API.
As far as I know there isn't a Maven plugin for dbdeploy, but this blog post shows how the maven-antrun-plugin can be used to script the deployment.
I've very similar requirements. Focusing on application deployments instead of environment deployments, seems that http://www.kwatee.net/product perfectly fits!
Looks like Apache Ace will solve your problem with some other tool like Aries. ACE keeps track of dependencies. You can collate your feature and form a distribution. You can then select targets on which distribution needs to be deployed. It provides RESTful API also.
Apache ACE
Apache ACE is a software distribution framework that allows you to centrally manage and distribute software components, configuration data and other artifacts to target systems. It is built using OSGi and can be deployed in different topologies. The target systems are usually also OSGi based, but don't have to be.
http://ace.apache.org/
glu seems to be a very nice choice for automating deployments. Description from its web site:
What is glu?
glu is a free/open source deployment and monitoring automation platform.
What problems does glu solve?
glu is solving the following problems:
- deploy (and monitor) applications to an arbitrary large set of nodes:
- efficiently
- with minimum/no human interaction
- securely
- in a reproducible manner
- ensure consistency over time (prevent drifting)
- detect and troubleshoot quickly when problems arise
How does it work?
glu takes a very declarative approach, in which you describe/model what you want, and glu can then:
- compute the set of actions to deploy/upgrade your applications
- ensure that it remains consistent over time
- detect and alert you when there is a mismatch
It is maintained by Yan Pujante and originated at LinkedIn which used it in-house.
Smart Frog is also worth looking at.