1. It is often mentioned that Zope is very scalable. But how does it scale? We currently have an architeture that consists in several backends with SQL databases and NFS servers and about 5 mirrored frontends with Apaches delivering static and dynamic web pages, load balanced by an Alteon Ace Director Switch. Would Zope fit in such an environment ? Are there any case studies or testimonials using something like this?
Well this would be something to look at ZEO for, rather than NFS/etc hacks. ZEO does actual object replication and caching (as well as real-time invalidation). Unfortunately, it's available only to consulting customers. Having said that, we are trying to get performance up for general usage as well. Anything under a few million hits a day shouldn't be a problem in the current situation.
2. How well does Zope performs ? Are there any benchmarks ? I was not very impressed with the results of an "ab" (Apache Benchmark Program) I did to Zserver requesting 1000 pages with 200 concurrent requests. And how bad is it to use PCGI/Apache instead of ZServer ? Is the future of Zope focused in developing Zserver or integrating Zope well with other Web Server such as Apache ?
Yes. ZServer is a great solution if you're just running HTTP/FTP. Apache is better for including other forms of content. The hit right now is pretty harsh, though it should be getting better once FastCGI support is released (it's done, it just needs to be documented and fully tested).
3. It seemed to me that Zope doesn't support mySQL very well, being Oracle mentioned all the time. As mySQL is still our main SQL platform, i ask if mySQL DA is still being supported and/or developed?
Well, we have a bit of an architectural issue with MySQL... we're VERY VERY VERY focused on transaction processing, everything is a transaction in Zope, and the object database implements some very advanced ideas. For application sanity, we expect all databases external to Zope to do the same, and MySQL obviously does not. This has caused us to not develop for it, regardless of its popularity in certain areas. It's simply incompatible with the architecture. Now, having said that, we're more than happy to see other people use it for whatever application they wish; understanding that you could suffer from serious data corruption because of the lack of transactions. Or you can manually lock the database, and wait for it to hit a race-condition. If you're willing to accept these risks, more power to you. Also, supposedly MySQL will get transactions in some form in the future (so I've heard), at which point, I suspect our position will change. For now, we recommend anyone doing heavy SQL work, which contains critical data, to use a database which has a robust transaction system (Oracle, Sybase, etc.). Please understand that one of the primary focuses of Zope is to never loose data, and never corrupt data. Doing so, without any transaction system, is nearly impossible. Chris -- | Christopher Petrilli Python Powered Digital Creations, Inc. | petrilli@digicool.com http://www.digicool.com