Automated Deployment solution for multiple Java we

2019-01-30 19:31发布

I'm looking for solutions, preferably open source, that can manage deployments of multiple interdependent java web-applications.

The solution requires an ability to create and store a release specification containing multiple items for release - specific versions of each application and relevant other artifacts (database config, apache config etc.).

The specification then needs to be parsed and each item then need to be deployed/executed on a target environment. Target environment is linux based. Web-apps are vanilla wars running on a j2ee standard app server.

A lot to ask?

Currently I think all the bits are in place - the binary artifacts are released with the maven release plugin and hence available from our maven repo for deployment, the database is versioned with dbdeploy and the apache config is versioned in svn. However I don't know of any tool that can put all these steps together on multiple applications.

My current preferred approach is to use a form of a parameterised build for hudson to create the specification. Then a second parameterised build to select a pre-created specification and deploy/execute it on a chosen environment.

However this seems to be a lot of work and a less than optimal custom solution.

Anyone know any prebuilt better ideas? or suggestions for for how to approach this - maybe a workflow engine would be better than hudson? maybe a custom web app?

Notes:

The target environments are prebuilt with all requirements in place - e.g. java and app server installed, database running etc. This is less of an environment configuration question and more of a deployment question.

Automating deployment of single apps is a problem with many solutions e.g. cargo, ant deployment scripts etc. However I need something that can wrap multiple deployments. E.g. kick off cargo on specific versions of multiple apps and their requirements.

9条回答
我命由我不由天
2楼-- · 2019-01-30 20:28

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/

查看更多
地球回转人心会变
3楼-- · 2019-01-30 20:29

Check out ControlTier, an open source deployment tool based on a Configuration Management Database (CMDB) repository that aims to be a complete, enterprise-ready system for automating the deployment and management of multi-tier and distributed application services. According to its website:

ControlTier is a community driven, cross-platform software system used to coordinate application service management activities across multiple nodes and application tiers. The project is fully open source and many of the project contributions come from DTO Solutions ongoing consulting work for large scale e-commerce, software-as-a-service, and financial services operations. Go to Installation to get and install the software.

alt text http://controltier.org/mediawiki/images/d/d2/ControlTier_HighLevel.png

查看更多
祖国的老花朵
4楼-- · 2019-01-30 20:30

Smart Frog is also worth looking at.

查看更多
登录 后发表回答