[nycbug-talk] Django Web Framework
nycbug-list at 2xlp.com
Tue Jul 3 12:54:27 EDT 2007
On Jul 2, 2007, at 8:15 PM, michael wrote:
> First.. what happened to good 'ol Perl? [grin]
still very active. mod_perl still dominates the ecommerce enterprise
market and many of the top visted sites. and to be nycbug related...
all the IAC properties ( ticketmaster, evite, etc ) run perl on a
freebsd server farm. freebsd is actually the only quasi-officially
supported platform for mod-perl/libapreq -- one of the core devs
ports new releases to the ports tree as soon as they're released.
none of the other operating systems get that :) i think the closest
is CentOS which is only 2 versions behind the current.
> Django, Turbogears, and Pylons are *some* of the top choices.
> There is
> Also.. reading up on WSGI, python's "Web Server Gateway Interface"
> is suggested.
all those apps were migrating to WSGI middleware spec last time i
> 127.0.0.1:5000 (or whatever port you choose) and have Apache proxypass
> requests. This is REALLY flexible when scaling. Apache can do what
> it is good at: handling traffic. One could see redundant Apaches,
> passing to redundant webapp servers behind the firewall.. with
> potentially redundant database servers.
apache is f***ing awful at handling traffic. you'll hit a huge
bottleneck in your system if apache is proxypassing to everything else.
run something like nginx , lighttpd , squid, or any of the other
micro-servers / proxy servers. they're built for handling traffic.
apache is built for getting http done right -- no one comes close to
it being correct and stable like that, but it does so at the cost of
speed and memory.
apache dies under high concurrency though. there have been tons of
keepalive issues too. unless you're using apache for a specific
apache feature, you're best off staying away.
> Of course you could remove Apache all together and go lighty!
not if you're proxying. unless they fixed that damn memory leak
finally-- i was reporting it every day for 2 months, and it never got
fixed. i recall bob was leaking 60mb an hour on mochimedia or
something stupid big like that. i just don't trust lighty-- i mean
its written by a mysql dev in his spare time ! (though jan might be
the smartest person at mysql)
I don't know pylons well, so I won't speak to it...
but my experience with Django & TurboGears was this:
Django worked very well, but was so engrained to a publishing model
that i couldn't use it. That's apparently changed a lot -- its way
more flexible now. that new site pownce is running it ( which amazed
me, it has a very twisted python feature set )
TurboGears seems like a good idea... But its honestly a mess. i
don't want to go into details, but I learned my lesson trying to use
it and be active on the development. unless its been rewritten from
scratch and svn privs from the bulk of committers revoked, i would
not run it at all.
whatever you choose, i strongly suggest using sqlalchemy or whatever
its sucessor is. there were a lot of neat orms in python, but they
were like the rails ones -- they created and required mindless not-
scalable database schemas. sqlalchemy was nice, because you can
quickly change the schema or map it to an existing db.
if i had to choose a python framework, i'd go for pylons or django --
they have the more impressive projects built with them out of all the
frameworks, and they have the most varied. the other systems all
seem to limit what you can do.
on a side note...
TAL is the best thing ever. you can jump between frameworks and
languages , while keeping the same templates. some of the newer
python templating toolkits are even better featured, but they lack
the portability of tal. i'd strongly look into using it.
// Jonathan Vanasco
More information about the talk