9

I've recently learned about Tomcat 7's feature to allow multiple versions of the same webapp deployed at the same time:

http://www.tomcatexpert.com/blog/2011/05/31/parallel-deployment-tomcat-7

http://www.javacodegeeks.com/2011/06/zero-downtime-deployment-and-rollback.html

Our sites regularly get 10-20,000 user sessions per day, and quite a lot of them are transactional/stateful type of webapps. Parallel deployment seems perfect for what we want, but I haven't really heard much about people's experiences using it on their servers.

If you use this feature of tomcat 7 in production, have you had any issues with it so far? Have you had to make any changes to your webapps to "play nice" with this Tomcat feature?

trafalmadorian
  • 1,630
  • 1
  • 15
  • 20
  • 3
    @Robert Harvey How can this be "not constructive"? A lot of the questions you've made also "solicit opinion", much more than this one. Finding out people's experiences with a product feature definitely involves "facts and expertise". There are very few questions dealing with this aspect of tomcat 7. Please reopen. – trafalmadorian Oct 06 '11 at 06:31
  • I've changed the close reason. If you can make your question more specific, and more relevant to software development, I will reopen. But questions soliciting opinions are generally off-topic throughout the SE network. – Robert Harvey Oct 06 '11 at 15:03
  • 1
    @RobertHarvey Of course this relates to programming and software development. A lot of developers use Tomcat as an application server for deploying Java webapps. I am soliciting people's actual experiences using this feature on their production servers. How is someone's experience in using a product considered an "opinion"? There are a lot of existing questions relating to Tomcat deployment, so how can this not be with the scope of SE? – trafalmadorian Oct 06 '11 at 23:19

2 Answers2

6

I didn't use this feature in production. My first thougths are:

  • What if you apply database schema changes? You'll have two applications running on same schema with different database handling (for example different JPA entities).
  • What if you have some scheduled tasks? They'll run paralell. Your application must be ready for this.
  • What if you apply some very important bugfixes? You'll have good and buggy application running together. They'll together make changes to database until all old sesions expires.
  • Why do you want your users to see old version of an application if you apply some new features or bugfixes.
  • Your application must be prepared the same way you prepare it to run on cluster with sticky sessions. It's just the same, but on same Tomcat.
  • Are you sure your application can be redeployed on Tomcat without well-known perm gen issues? I heard they say it can be done now. I still restart Tomcat with each redeploy.
Piotr Gwiazda
  • 11,796
  • 12
  • 53
  • 87
3

We didn't have much luck getting this to work consistently in our test environment, so no way we'd consider it for production.

The question is, do you need the ability to do hot upgrades in your environment? Often this is theoretically nice but not needed.

SteveD
  • 5,236
  • 21
  • 32