Jacob Hanson wrote:
> I'd like your thoughts and advice. I've been evaluating different
> middleware for a few years...testing and comparing and so forth. In
> the process of launching a new web application business (Alpha
> Motion, ETA 4/9), I've had to give everything another look and
> decide on a dominant platform to use. I've done the rounds...PHP,
> ASP, CF, J2EE, ASP.NET, Ruby, and various Python frameworks. Coming
> from a PHP background w/some Java, Webware is a great fit. But,
> unfortunately, it doesn't seem to be that easy.
> In trying to find affordable hosting for my clients, *everyone* offers
> PHP, so that's an easy choice. But, I have issues with PHP's CGI
> methodology, nevermind its messy function library, less than spectacular
> OOP support, and verbosity. If you're willing to spend more, a lot of
> times you can get ASP/ASP.NET, CF, or Java. But, Python is not often
> supported as a web application platform. I have found some hosts that
> have Python available, but they lack the hooks into Apache that would
> make it worthwhile, e.g. FastCGI or mod_* (I'm very concerned about
> performance). Hosts seem to think that FastCGI poses possible security
> and stability problems. I haven't used it, but it sounds pretty sweet.
> The other sticking point is that no one wants you to have long running
> processes, e.g. WebKit.
That is true. It's not even worth trying to set up WebKit on a shared
host unless they specifically support it.
> Another concern is actually using WebKit in a multi-client situation.
> I do not know if WebKit has the necessary security and sandboxing to
> keep applications separate for different users. If it doesn't, a
> WebKit instance per-user does not sound appealing.
There's no real security or insulation between applications running on
the same application server, so yes, you need a separate instance for
each client. That's just one more process. Personally I don't think
it's a big deal, and it lets you use different Unix users and avoid the
kinds of challenges that, say, Zope has to take on (and multiple WebKit
processes are still a lot lighter than one Zope process).
> I also have concerns about the need to restart WebKit in order to
> introduce module changes (and sometimes application changes, in my
> experience). That's one nicety of some J2EE app servers--hot swapping
> apps, etc. It would be nice to *never* have to shutdown WebKit.
It's not a big deal to shut down the AppServer in my experience. It can
be restarted in a second, without losing session data, and without
losing any connections. In-place code updates are hairy in Python, and
I think it's a lot more reliable to simply avoid them.
> So, from where I'm standing, unless I'm ready to co-locate and
> essentially 'be a host' myself, Webware doesn't seem like the right
> choice. I know many of you are using Webware for commercial purposes.
> What do you?
If you don't want to do your own hosting you should look for a host that
specifically supports Python environments. There's several listed here:
While they are somewhat more expensive than commodity hosts, you can
still find very reasonably priced hosts.
Most of these issues will be issues in other Python web frameworks as
well, and in attempting to address them some add significant complexity
or make the environment difficult to work with (e.g., I don't get a good
impression of how mod_python deals with code changes).