We need a back out plan for a web app whose first maintenance release is going to production soon. The issue we are facing is even if we back out new EAR and deploy old one , the data which was keyed in using new release would not support old business rules(current), since there is enormous changes in business rules. Can you suggest how do we tackle this issue?
This generally requires a systemic approach that places constraints on how you evolve the app. For instance, it's better to roll out schema changes first and have them sitting benignly in the old app. Then, if possible, roll out the new system in parallel with the old, and hit it using test accounts. Finally, you roll out to customers, ideally in a staggered approach.
Without knowing the specifics of your app, I can't say how viable this approach is for you, but I will say that it usually requires a lot of thought at the early stages of design for a new release.
That's a VERY difficult question to answer without prior knowledge of the system. Would there be an upgrade path for the old data to work correctly with the new release? If so you probably don't need to worry. You might have something like the following scenarios:
- The new release is so bad it cannot be used and has to be rolled back - no new data worth speaking of will be entered, just restore old version with old data
- New release is OK, some problems with it, you'll need to temporary roll back - new data will not be available, you could manually adjust some of it if absolutely necessary, meanwhile your team works like mad on fixing new release and re-deploying
- New release is fine, server crashes - you just restore from the backup you've made after the installation with all the new data converted to use new rules