What is the con of using a alfresco community edition when it comes to scalability? If no. of transactions and number of users increase in future such that one box setup becomes very slow, do I have any other option apart from buying the license?
Solved! Go to Solution.
Alfresco is open source, so of course there are always ways to do a certain feature X that is only available in Enterprise Edition (as provided by Alfresco), as long as it does not require a specific commercial system / software (e.g. Alfresco Cloud integration would be near impossible for anyone to implement in Community Edition since Alfresco Cloud is fully operated / protected from access by Alfresco). Clustering is a commodity functionality nowadays, with various open source libraries that can be used to achieve it. Actually, the clustering in Enterprise Edition is based on a fully open source library (Hazelcast), and Alfresco has only chosen not to put their management- and glue-code under thei LGPL license because that clustering feature can be used as a "unique selling point" for its Enterprise Edition offering, which they need to get revenue to keep on developing Alfresco. You can read Richard Esplin's post https://community.alfresco.com/community/ecm/blog/2016/03/29/applying-the-open-core-model-in-alfresc... to learn about the differentiation that Alfresco makes when deciding which features are Enterprise-only and which are made available to the Community Edition.
Regarding scaling out and "results we want": I said "some" members of the community are argueing that scaling out does not work as (they) expect(ed). The clustering and service architecture is in some cases not designed in an optimal way, and does indeed incur overhead in a clustered setup. Scaling Alfresco out from 1 to 3 systems will typically not end up increasing your "parallel user count limit" by a factor of 3, because such overhead is eating away at the gains. At some magic number - due to some point-to-point communication done in a cluster - you might actually see overall performance decrease when new cluster nodes are added.
In practice though, I have never observed any instance of this worst-case nightmare. I have worked with clusters of half a dozen servers, and with some tweaking of configuration, the overhead was negligible unless you really brute-force overloaded the system with requests, or cut away at some infrastructure component.
It is worth noting that Alfresco is (long-term) working towards a more micro-service like architecture, where various bits&pieces (functional modules) can be extracted from the core platform and scaled individually, not necessarily requiring clustering to scale out your system. The Alfresco DevCon in January 2018 will likely contain some talks about the upcoming changes in Alfresco 6.0 that are first/next steps in that direction...
Most scalability limitations stem from the infrastructure (database, IO, CPU and memory), use case / choice of interfaces and customisations introduced in an Alfresco system. The only technical scalability limitation which Alfresco will typically mention is that clustering is not supported for Community Edition. This is true with regards to the out-of-the-box functionality, but should not be meant to understand that clustering is generally not possible. A skilled Alfresco / Java expert should have little trouble implementing that if required (speaking from experience, as I have done that). Also, there are some members in the community that argue that clustering isn't really helping the scalability case, as the architecture of Alfresco is not optimised for scaling out and benefits more from simply scaling up...
Thanks for your reply
I am little confused. Alfresco community edition does not support clustering. Are you saying clustering is still possible with community edition which is not out of box but there are ways to do it?
Eventually you will get to a point that either the cost becomes uneconomical or there is no bigger hardware made when you are scaling up. In this case alfresco system might need to scale out but are you saying that the alfresco architecture might not give the results we want due to its architecture?
Alfresco is open source, so of course there are always ways to do a certain feature X that is only available in Enterprise Edition (as provided by Alfresco), as long as it does not require a specific commercial system / software (e.g. Alfresco Cloud integration would be near impossible for anyone to implement in Community Edition since Alfresco Cloud is fully operated / protected from access by Alfresco). Clustering is a commodity functionality nowadays, with various open source libraries that can be used to achieve it. Actually, the clustering in Enterprise Edition is based on a fully open source library (Hazelcast), and Alfresco has only chosen not to put their management- and glue-code under thei LGPL license because that clustering feature can be used as a "unique selling point" for its Enterprise Edition offering, which they need to get revenue to keep on developing Alfresco. You can read Richard Esplin's post https://community.alfresco.com/community/ecm/blog/2016/03/29/applying-the-open-core-model-in-alfresc... to learn about the differentiation that Alfresco makes when deciding which features are Enterprise-only and which are made available to the Community Edition.
Regarding scaling out and "results we want": I said "some" members of the community are argueing that scaling out does not work as (they) expect(ed). The clustering and service architecture is in some cases not designed in an optimal way, and does indeed incur overhead in a clustered setup. Scaling Alfresco out from 1 to 3 systems will typically not end up increasing your "parallel user count limit" by a factor of 3, because such overhead is eating away at the gains. At some magic number - due to some point-to-point communication done in a cluster - you might actually see overall performance decrease when new cluster nodes are added.
In practice though, I have never observed any instance of this worst-case nightmare. I have worked with clusters of half a dozen servers, and with some tweaking of configuration, the overhead was negligible unless you really brute-force overloaded the system with requests, or cut away at some infrastructure component.
It is worth noting that Alfresco is (long-term) working towards a more micro-service like architecture, where various bits&pieces (functional modules) can be extracted from the core platform and scaled individually, not necessarily requiring clustering to scale out your system. The Alfresco DevCon in January 2018 will likely contain some talks about the upcoming changes in Alfresco 6.0 that are first/next steps in that direction...
I would only make two additions to the information shared by Axel Faust.
1. It took a lot of engineering for our clustering capability to be reliable across a wide range of usage. It may be possible to cluster Alfresco Community Edition in specific scenarios, but I would test thoroughly and be cautious.
2. If your usage causes you to think you need clustering, then I highly recommend you talk to an Alfresco sales representative. Odds are that you would benefit from our commercial offering for more than just increased repository scalability.
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.