Forums / General / ez publish for huge community project?

ez publish for huge community project?

Author Message

Ken Kap

Friday 19 October 2007 11:37:17 am

Hi ez users!

I am planning to build a typical web 2.0 community and trying to find out if it would be a good choice to take a (E)CMS/Framework or to do everything from scratch by "hand". The system should be very scaleable and the performance should be okay even if up to 50.000 people are logged in at the same time. Does anybody know a big community project which runs on ez publish, or is its strength more in the intranet and business (static pages) world?

Thanks a lot.

greeting from Austria.

André R.

Friday 19 October 2007 1:17:25 pm

This depends on the time line you plan for this project, you can not currently throw in millions of objects of a specific type (user/forum post/article and so on) without ending up with scalability problems.

But at least for users, this is planned to be fixed in the near future.
Also generally, scalability and performance is our top priority for the next 3 upcoming versions (4.0, 4.1....), so if you’re not going to do a flying start it is realistic.

Alternatively if you want to write from scratch, then you can use eZ Components witch will make your life a lot easier.

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

*- pike

Sunday 21 October 2007 4:33:46 am

Hi

take a look at http://www.labforculture.org ..

the community is not "huge" ... and performance is a constant hassle already.
ezPublish does come with a number of features that may ease your life; user- group management and roles&policies (permissions) management are quite good. this, together with versioning and multilingual aspects, would be really hard to set up from scratch.

but that does come with penalties: if you *don't* need some of these functions, they will still be there and may be bothering you. for example, the bare contents of your database may be much more puzzling than what you would actually need for your application. or some performance overhead will be taken by functionality you're not actually using.

In the short run, you can install ezp and run a community with built-in features in a weeks time. But if you plan to develop much custom functionality, be prepared to live with ezpublish interfaces; and with not much ezp developers around (not as much as php developers anyway), and a lack of documentation (...), this may slow down your intended development timeline in the longer run.

I'm curious what you decide to do. Keep us updated !

$2c!
*-pike

---------------
The class eZContentObjectTreeNode does.

Ken Kap

Monday 22 October 2007 2:35:34 pm

First, thanks for the informative answers. In the last weeks I have tried many open source CMS (=WCMS, ECMS, CMF etc.) , which use Ruby, Python and PHP (.net and Java-aps are simply too complicated, especially JSP). I came to the conclusion that Drupal and ezPublish (Typo3 has imho bad code) are the “best” on the PHP market, Silva and Plone on the Python side and Ruby has Goldberg, but in reality the only web application for Ruby which matters is Ruby on Rails, but this isn’t a competitor, simply because it is a Framework.
Okay, I decided to choose PHP because I am too lazy to learn the specifics of Ruby and Python- although Python looks very promising and powers important software as e. g. Zope or Django.
Drupal is cool, but there are imo two problems: First the performance (especially when you have many Modules), second I would be afraid to update because the modularity makes this procedure painful. Because of that ezPublish won overall.
But then I thought about using a PHP Framework, so I looked at Akelos, Zend Framework and ezComponents. All three are quite different, Akelos is a “real” Framework like RoR, ezC is more a PEAR alternative and ZF is imo a mixture between the other both.
If I choose a Framework, I probably will use ezComponents because I don’t like the MVC of ZendF. Perhaps I will make some stress testing when ezP 4.0 is in a stable version and make my decision afterwards.
@pike: Thanks for the info. Perhaps your hardware causes the performance problems? Can you tell us the specifications of the server?

*- pike

Monday 22 October 2007 5:06:38 pm

Indeed, using a framework might be a better option then using a fullblown CMS. I'm not familiar enough with ezComponents to say something about it. Python would definitely draw my attention. Silva is document-based, so it may not suit your needs ? You categorize Zope as a CMS, but wouldn't it suit as a framework ?

Yes, ofcourse my hardware causes the performance problems :-) But it shouldn't, given the size of the site and the activity on it. However, if I read the mysql logs, I can understand what's happening; remember every attribute is a versioned record on it's own with a relation to a versioned object on it's own, with translations - and a bunch of roles and permissions for every desired action on it - and then I think about the template parser and a dozen of caching mechanisms going wild on top of it, ... the question is, do I really *need* all that ? If I would finetune the application to the specific tasks at hand (supposing i had the time to do that), this site could probably run on a pentiumII. or, well, III.

It's not - it's running on a Dell Power E 1850 , with a Intel Xeon processor 3.2GHz,2 x 146 GB 10,000rpm Ultra, hotswap, remote powerboot, the works.

---------------
The class eZContentObjectTreeNode does.

*- pike

Monday 22 October 2007 5:08:35 pm

The question is, *could* I 'finetune the application to the specific tasks at hand' using ezPublish as a framework ? I think I could, nowadays. I would skip the template parser. Parsing templates with a interpreter language seems like a bad idea in the first place :-) So I would create an extension for the whole site - define every possible link as a view, and simply dump the output from php. That would save me from a range of obscure mechanisms, allthough I don't know how much performance I'd win. I assume ezComponents is a bit like that. In any case, using such an approach towards my current kernel (3.x.x) will get me in trouble on every minor update ...

To end again with a very general remark - if you know in advance exactly what your desired functionality is, you may not need an abstract CMS or even framework. You can just code it by source. But in reality, your desired functionality is a moving target, and you want a CMS as a kind of surfboard to navigate towards it ...

again, keep us updated!
*-pike

---------------
The class eZContentObjectTreeNode does.