I am coming from a rails background and I am quite used to put the page in
maintanance mode/shut it down for a couple of seconds even for typo fixes.

The hotswapping of files as it is common in the PHP scene has some dangers,
so even for PHP I would suggest to shut your application down for the
upgrading process.

If you do your usual hot swapping there, you could create
data-inconsistency because your form which asks for data was already
swapped out and asks the user for his mail-address but your actual database
model hasn't change so far and throws away the data the user was aked for
(or depending on your error handling it will throw a bunch of exceptions).

There are other dangers I currently don't remember and I can't find the
talk I watched about that topic right now… Anyway it would be in german…

Also for every upgrade of your software there should be an announcement for
a scheduled downtime. Use that downtime, and schedule 30 minutes for a 5
minutes task. This way your users will know, that they can't use the page
for half an hour and they will be happy if the site is up again 20 minutes
early.

For security upgrade just shut down the site immediately and don't care for
session data (it could already have bugged or exploitet informations) and
upgrade!

This is the way I did it with rails for about 3 years now and I switched to
do this for the few PHP applications I have to maintain.

There are also problems that automate all these steps (google: server
provisioning and deployment tools) Name there are Chef for provisioning and
Capistrano for deployment in the Rails world and both can be used for PHP
for witty if are willing to learn a minimum of ruby. Both only need a very
basic understanding of ruby, it is quite enough to know how a function is
called (type the name and then the parameters, you can do it PHP style with
brackets or ruby style without them), a variable is assigned (just like in
PHP, but do not preceed with `$`, thats a prefix for global vars only!),
how arrays are written (just enclose the values comma separated in square
brackets) and the difference between plain strings and evaluated string
(just like in PHP). Chef is documented very well and quite a handfull of
scripts is already available at the site. Also Capistrano is well
documented, but there are no pre-made scripts available because every
deploy setup is different.

HTH
NobbZ

Chef: http://www.getchef.com/ and https://learnchef.opscode.com/
Capistrano: http://capistranorb.com/


2014-03-26 21:57 GMT+01:00 Jason H <scorp...@yahoo.com>:

> I'm more experienced with developing scripted applications (PHP) for the
> web.
> One aspect of these is you can change out the php file while the webserver
> is running. Existing connections will use the php that was loaded, new
> connections will use new PHP. And in general, these happen on a per php
> script basis.
>
> How would someone do an upgrade? It seems that we have to stop everything
> and start everything for a witty application?
> Or, could witty somehow maintain more than one application at a time, and
> when a newer one comes along, be messaged to use the new one for new
> connections? And as sessions are [re]started, move to the new while current
> sessions remain on the old implementation or are signaled to gracefully
> restart the session. Also how is session data handed off between upgrades?
>
> Many thanks in advance!
>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> witty-interest mailing list
> witty-interest@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/witty-interest
>
>
------------------------------------------------------------------------------
_______________________________________________
witty-interest mailing list
witty-interest@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to