2

I'd like to get some insight from people who are currently using Concrete for a large content site.

The dev team i'm working with has decided to use that as our CMF for our next project.

I have some concerns regarding this system.

Scalability

Can this system continue to operate smoothly while continually growing in users and the amount of data?

Speed

I've encountered a few concrete pages that are awfully slow. This is one of my biggest worries. What are page load speeds like? With the addition of new pages does this effect the speed of the entire site? What kind of optimization techniques are available?

Front-End Flexibility

Are you limited to what you can do on the front end?

Plug-ins

Pros and cons of using plugin-ins vs. building custom coded solutions. (ex. speed, additional queries)

I'm doing my best to ensure that the system we start development on allows for growth and.

Disclaimer: I am designer and front-end dev. I have no back-end experience.

3 Answers3

1

Concrete5 is fast, if used correctly. Like anything if you abuse it and do not maintain it then it will get slower.

I suggest you read this https://www.concrete5.org/documentation/using-concrete5/dashboard/system-and-maintenance/jobs/cache-and-speed-settings/

The only limit on the front end is the ability of your developers. I am a developer and not really ever come up against something impossible.

There are loads of add ons and creating your own is easy too, especially with http://www.concrete5.org/marketplace/addons/designer-content/

I run a whole host of sites in C5, none are slow. All use Varnish cache though and Amazon's CloudFront - to get the most from my hardware.

See for yourself:

Jake N
  • 10,535
  • 11
  • 66
  • 112
1

I can't comment, but maybe a second answer will help you deciding on that.

Scalability

Can this system continue to operate smoothly while continually growing in users and the amount of data?

Yes.

Speed

I've encountered a few concrete pages that are awfully slow. This is one of my biggest > worries. What are page load speeds like? With the addition of new pages does this effect the speed of the entire site? What kind of optimization techniques are available?

The System has a Block and a Full-Page cache. If you make sure to run it on a host with APC (maybe additionally APCu with PHP 5.5), you should have no problems.

Front-End Flexibility

Are you limited to what you can do on the front end?

Not at all.

Plug-ins

Pros and cons of using plugin-ins vs. building custom coded solutions. (ex. speed, additional queries)

If you have a problem that needs a solution that is available in the Marketplace, you can go for it. Usually they are ok. Sometimes it is better to buy sth from the marketplace and just adapt it - but concrete5 gives you a free hand in writing everything by yourself.

Edit: We now have another "big" page running on Concrete5, and its more dynamic than the first one. It serves constantly > 500 pages per minute, with peaks going anywhere you can think of, on one single server. While you could've run the first bigger page completely on the Page Cache or on Varnish / Cloud Flare, the second one is an online shop. Still, the flexibility of Concrete5 allows you to chose the way to go. The page is different in every aspect on almost every page due to the way it has to look like, and still I feel safe using Concrete5, as I can change every behaviour I want - and it wont kill me for it.

Nukey
  • 326
  • 3
  • 10
0

Concrete5 is designed for flexibility at the cost of performance.

A very simple page can typically make 3,000 - 10,000 database queries in a single request which is utterly staggering.

For public websites you will need to enable full page-caching (or run an HTML cache like Varnish) which reduces the need for so many queries. Some blocks and plugins run into issues with full-page caching, however. As of v5.7 our experience is that it's buggy and requires thorough testing.

On intranets and community sites (where users need to login and permissions need to be checked), full HTML caches will not always be effective. In these cases you may need to audit your custom code and minimise the use of query-heavy Concrete5 functions, replacing with your own custom SQL queries.

Even the CEO of Concrete5 admits this:

You’re right that concrete5 uses quite a few database queries to render a page. It’s also true that if one is designing an application from scratch to serve one purpose, it’s quite easy to solve most problems in a handful of queries. As you know however, concrete5 provides a tremendous amount of flexibility right in the core. While I’m sure there will always be opportunities to clean up queries and the number of objects loaded, you’re always going to hit the database a lot when you have page, block area, and block level permissions that can each include multiple exceptions, timed releases, etc..

Our experience has been that its more important to look at actual use instead of abstract terms and gut based rules. We see concrete5 being used in two very different fashions at the enterprise level. Sometimes organizations are building extranet/intranets for their staff, dealers or partners. These often require complex permissions and workflow, which concrete5 allows a product manager to do without touching code. These sites, even at the enterprise level, are usually serving tens of thousands offers, and can run just fine on a well provisioned web server.

Other times organizations are building front end focused informational sites. These tend to be pretty flat in terms of interactivity and complex permissions. The benefit is from the ease of editing. What we do in those cases is run Varnish cache before concrete5, which makes the site faster than apache and static HTML files. I think you’ll find this to be much easier than gutting parts of the system on an as needed basis.

– Franz Maruna, CEO concrete5, March 2013

His response came from this article which explains the query problem well: http://www.headenergy.co.uk/2013/02/concrete5-enterprise-ready-not-entirely/

Our development agency maintains several sites in Concrete5, but after encountering too many bugs and performance issues we've chosen not to build any future sites on Concrete5.

Community
  • 1
  • 1
Simon East
  • 55,742
  • 17
  • 139
  • 133