This is exactly my situation, when I started to work under drugme.ru -
this is rather big Russian social network website,

Berco Beute:

> - Stack. What would currently be a good combination webserver/protocol/
> database? Possible options: Lighttpd, Cherokee, apache, FastCGI,
> mod_python, wsgi, mysql, progress... I realize there is no 'best'
> solution, but I would like to hear your recommendation.

We started from Apache/mod_python, but this combination is not very
good for high load, thus we are using now Cherokee / FastCGI. It is
extremely fast and rather stable.

> - Database optimization. The database layer is currently the major
> bottleneck. There is currently one database with over 150 tables, some
> of which are quite large. Some queries take close to minute to execute
> (yes, it's that bad). For redundancy reasons the database is
> replicated to another server (master/slave), but that doesn't help
> speeding up the response time. In the new version of the web
> application the database layer should be as scalable and maintainable
> as possible. This probably means using techniques such as 'sharding'
> and partitioning. The question is what both Python and Django offer in
> that respect.
This is not a domain for Django. First of all, try to migrate to
PostgreSQL.
> - Advantages of an ORM.
ORM has many advantages in speeding up development cycle, also has
some disadvantages: you loose in queries speed and ORM gives you a
possibility of memory leaks. First of all avoid to load big number of
objects in one query (for example, if you have for example 50000
users, User.object.all() can kill you application under heavy web site
load).

> - SQL optimization. When using an ORM the SQL gets abstracted away,
> but as discussed above a certain amount of optimization is
> unavoidable. How well does Django support SQL optimization? And if you
> optimize your SQL, how do you then migrate to a new version?
You can use row SQL for optimization of queries, but Django ORM is no
very bad in this field.
> - Database Migration. The database will likely change over time but
> that should lead to as little downtime as possible. What options does
> Django offer?
There are some applications, like django-evolution etc.
> - Speed. The current version of the application is written in PHP and
> is sufficiently fast. How about Django in that regard? Is that
> something I should worry about?
In our project we increased  overall application speed in compared
with PHP version to 5-10 times.
> - Security. Since the web application involves transactions security
> is very important. Any tips/experiences/links/...?
Django is more secure than all PHP frameworks I ever seen.
> - Templating language. Is Django's templating language up to replacing
> Smarty? What are the pitfalls? Is it fast enough?
Django templating language is as powerful as Smarty
> - Caching. Django has quite some caching support built in, but is it
> enough for very demanding sites? What are the limits?
Django has a very good caching framework, very granular (you can
transparently cahche any object - from single variable to full
application) and useful.
> - Build automation and deploy strategy. In the past I have used
> 'maven' when developing Java applications and I liked it. What are
> Python alternatives that I should check out? How do you evolve a
> Django application without interrupting your service?
This is not a Django field. Fro deploy automation you can look at the
Paste or other systems.
> - Unit testing. Python supports many unit testing frameworks. Which
> would you recommend when rebuilding a large application from scratch?
> How would you set up your test environment? How to test all aspects of
> such a large system (preferably automatically)?
This is not a very powerful part of Django. Unit tests are quite well,
but functional testiong is not so good as would it be.
> - Switching a development team to Python/Django. I'm familiar with
> Python/Django myself, but three other developers not (although they
> are eager to learn it). Although Python is one of the most 'learnable'
> languages, it still takes time to find your way in the standard
> library and to become a real Pythonista. Does anyone here have
> experience switching a small development team to Python/Django?
I had. And there are no problem - just demand them to read PEP8 ;) .
> - Bzr or Hg? :)
SVN :)
> There are most certainly many more relevant aspects that I didn't
> mention here but that I would love to hear about. Please share them,
> just like links to relevant sites you may have.
Explore djangosnippets.org time to time.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to