We are maintaining a website that is built with static content and a J2ee web application (JSP/Struts).
Our development process includes 4 environments: DEV and STAGE that we host, QA and PROD that our client hosts.
For now, when a change has to be done we roll our modified application (static content and webapp) step by step on those 4 environments.
We'd like to integrate a CMS to be able to make static content changes (mostly business content) without having to do a roll.
Looking at existing CMS solutions, it looks like their design is made for only 2 environments : online and offline. So I am wondering how people do, when they need validation of content done on 4 different environements.
Do people have different instances of a CMS for each box? Then how do you go from one environment to the other? Do CMS have import/merge tools (I haven't seen that)?
Or is the CMS shared by the 4 environements, which means we have a state given to each content that allow to retrieve the right content for the right environment ? Also it means that each box is able to talk to this shared CMS...which can lead to infrastructure/security problems.
Also, where to host this instance, or these instances? On the same application server than the webapp ? On a company server? On a client server?
Does your webapp talks to the CMS to retrieve content or do you export the content of the CMS on a web server (file system)?
Lots of questions, but I mostly would like to have an open discussion about this. What is your experience? What do you think is a best practice?
Thanks for sharing!