Our build / deployment process is very tedious, quite manual, and error prone. Could you give suggestions for improvement?
So let me describe our deployment strategy and build process. We are developing a system called Application Server (for short AS). This is essentially a servlet-based web application hosted on the JBoss web server. AS can be installed in two "environments". Each environment is a directory with webapp code. This directory is placed on network attached storage. Storage is mounted on several production servers where JBoss instances are installed. The directory is linked to the webappsJBoss directory . Thus, all instances of JBoss use the same code for the environment. The JBoss configuration is separate from the environment and is updated based on each instance.
So, we have two types of patches: webapp patches (for different environments) and configuration patches (for each configuration)
A patch is an executable file. This is actually a bash script with the rpm built-in binary package. Installation is pretty simple: you just execute the file and maybe answer some questions. The important point is that the patch is not the system as a whole - it contains only some classes with corrections and / or scripts that modify the configuration files. Classes are copied to WEB-INF / classes (AS is deployed as an exploded directory).
The way to build these patterns is:
- We take some previous patch files and copy them.
- . RPM. , rpm bash , . , . , . , .
- webapp . , rpm.
- , rpm, VCS
- build.xml, . .
- CruiseControl copypasting ant
- ,
, , Java. .