KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Two main ways to deploy a J2EE/Java Web app (in a very simplistic sense): Deploy assembled artifacts to production box Here, we create the .war (or whatever) elsewhere, configure it for production (possibly creating numerous artifacts for numerous boxes) and place the resulting artifacts on the production servers. Pros : No dev tools on production boxes, can re-use artifacts from testing directly, staff doing deployment doesn't need knowledge of build process Cons : two processes for creating and deploying artifacts; potentially complex configuration of pre-built artifacts could make process hard to script/automate; have to version binary artifacts Build the artifacts on the production box Here, the same process used day-to-day to build and deploy locally on developer boxes is used to deploy to production. Pros : One process to maintain; and it's heavily tested/validated by frequent use. Potentially easier to customize configuration at artifact creation time rather than customize pre-built artifact afterword; no versioning of binary artifacts needed. Cons : Potentially complex development tools needed on all production boxes; deployment staff needs to understand build process; you aren't deploying what you tested I've mostly used the second process, admittedly out of necessity (no time/priority for another deployment process). Personally I don't buy arguments like "the production box has to be clean of all compilers, etc.", but I can see the logic in deploying what you've tested (as opposed to building another artifact). However, Java Enterprise applications are so sensitive to configuration, it feels like asking for trouble having two processes for configuring artifacts. Thoughts? Update Here's a
Tags (comma-separated)
Save Edits
Cancel