If you cannot use a tool like flyway you can do it by hand, too.  The key is 
that all database changes need to be backwards compatible.  For example:

So, if you want to drop a column:
1. Deploy new version of app that doesn't require column X
2. Shutdown version which does
3. drop column X

If you want to rename a column:
1. Deploy new version of app that writes data to old column name + new name
2. shutdown old version
3. drop old column

We generally test out our old version of an app running against the new 
database schema to make sure this process will work.

-Dave

-----Original Message-----
From: jieryn [mailto:jie...@gmail.com]
Sent: Thursday, December 03, 2015 1:32 PM
To: Tomcat Users List
Subject: Re: Zero downtime deployments

Use http://flywaydb.org/ to perform database migrations. You will need at least 
3 versions in order to perform an incompatible database change. v1 is existing 
behavior, v2 is a shim that bridges v1 and v3, and then v3 cleans up the shim 
and removes all the unnecessary hacks.
When you have v1 rolled out against N images, then you can start rolling out 
compat shim v2 which adds some temporary work for the db and coexists, then 
when all instances are at v2 you can move to v3 which uses all the new stuff.

I haven't found anything better or more efficient than the 2-step deployment 
with live code.

On Thu, Dec 3, 2015 at 2:21 PM, Kevin Hale Boyes <kcbo...@gmail.com> wrote:
> Thanks for this link to the presentation.
> How do you all deal with some of the other dependencies that the web
> application has?
>
> For example, if v2 of my application needs new database columns or
> worse, a change to an existing column how can I have v1 and v2 running
> at the same time?  We use Oracle as our database though the problem
> exists for many database servers.
>
> Thanks,
> Kevin.
>
> On 3 December 2015 at 01:31, Neill Lima <neill.l...@visual-meta.com> wrote:
>
>> Hello Jason,
>>
>> This approach of using httpd in front of 2+ Tomcats via AJP works
>> well in my company. There is a bit of config necessary at httpd level
>> so httpd is aware of all the Tomcats and also Tomcat config needs to
>> be set to listen to AJP port instead of default port but it is not rocket 
>> science.
>>
>> This facilitates the deployment of nodes sequentially with no
>> downtime. Of course, there is a shared session server to take care
>> the sessions are not lost when Tomcats flip up and down.
>>
>> Reply in pvt if you need help setting up this.
>>
>> Thanks,
>>
>> Neill
>>
>> On Thu, Dec 3, 2015 at 12:08 AM, Jason Britton <jbritto...@gmail.com>
>> wrote:
>>
>> > Thank you Christopher, reading now and we'll see if I can swing the
>> > conference :)
>> >
>> > On Wed, Dec 2, 2015 at 4:00 PM, Christopher Schultz <
>> > ch...@christopherschultz.net> wrote:
>> >
>> > > Jason,
>> > >
>> > > On 12/2/15 4:07 PM, Jason Britton wrote:
>> > > > I was looking for information for how those on the list achieve
>> > > > zero downtime deployments of their tomcat hosted web
>> > > > applications.  I
>> > imagine
>> > > > this can be achieved in a variety of ways, but would love to
>> > > > hear
>> what
>> > > > works for you.  In our current environment we front multiple
>> > > > tomcat instances with apache httpd, each tomcat instance
>> > > > hosting one or more unique web apps.  In order to support this
>> > > > effort we do have the
>> > > resources
>> > > > where we could spin up multiple tomcat instances to serve
>> > > > requests
>> for
>> > a
>> > > > single application.  I know there is mod_proxy_balancer
>> > > > available for httpd, and I understand starting with tomcat 7
>> > > > there is support for parallel deployment of versioned wars, and
>> > > > tomcat also supports clustering.  I'm just unsure of what
>> > > > approach I should start digging
>> > into
>> > > > and would very much appreciate any of your experiences.  The
>> > > > servers
>> > > we'll
>> > > > be rolling out will be using the latest versions of tomcat 8
>> > > > and
>> apache
>> > > > httpd 2.4.  Thanks for any insights!
>> > >
>> > > Check this out:
>> > >
>> > >
>> >
>> http://people.apache.org/~schultz/ApacheCon%20NA%202015/Load-balancin
>> g%20Tomcat%20with%20mod_jk.pdf
>> > >
>> > > Start on slide/page 41.
>> > >
>> > > Then come to ApacheCon NA 2016 and discuss it!
>> > >
>> > > -chris
>> > >
>> > > -----------------------------------------------------------------
>> > > ---- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> > > For additional commands, e-mail: users-h...@tomcat.apache.org
>> > >
>> > >
>> >
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

This e-mail and any files transmitted with it are confidential, may contain 
sensitive information, and are intended solely for the use of the individual or 
entity to whom they are addressed. If you have received this e-mail in error, 
please notify the sender by reply e-mail immediately and destroy all copies of 
the e-mail and any attachments.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to