Is it Load balancer is a required component ?

Hello All,

I saw an architecture of Sugarcrm and I like know about the relevance of load balancer in Sugarcrm architecture .

is it a required component in the scalable architecture ?

  • Hi @Sino,

    It is not a required component, It totally depends on the load and the number of request on the server. For the performance enhancement, we use many approaches like external caches, for example, APC, Memcached etc when we have the webserver and DB on the same server.

    On the other side, we can also use the load balancer in which we can place our database on the different servers and according to load, we can pass them to the appropriate server. 

    All the above approaches totally depend on the situation, Like currently, I am working on a project in which neither any load balancer nor any external caches are required. Sugar instance is on the 'ABC' server DB is on the 'XYZ' server and Elasticsearch is on some other server.

  • Hello Maryam,

    Thanks for sharing your experience.

    I have an curiosity to know, which are the required components in horizontally scalable architecture . In the following  Architecture document mention  about  job queue in the server, Elasticsearch,Memcache etc.

     

    So which are the most required or necessary components for an scalable architecture ?

  • Sino Thomas,

    To install Sugar, as a minimum you have to meet all the requirements defined in the Supported platform section: https://support.sugarcrm.com/Resources/Supported_Platforms/ 

    Then how you architect the infrastructure is up to you based on your load profile, scalability needs, DR requirements etc.

    In terms of infrastructure components, for a resilient system, you would need all below components to be clustered and fault tolerant:

    • Web application
    • Background processing (cron) (only an active/passive as one can run at the time)
    • Database
    • Elasticsearch
    • Caching (prefer Redis over Memcache nowadays)
    • Enterprise grade NAS

    If you need to have an enterprise grade system you would need failover at any one single point of failure, so yes, you would need clustering at that point.

    It could also be possible that if you have no specific disaster recovery and scalability requirements and low load, that everything could even fit on a single machine. It highly depends on the requirements.

    Given the questions raised above, if I were you, I would setup to start with on SugarCloud, which is our reliable SaaS cloud service following Sugar's best practices.

    Unless it is a special case, the knowledge and therefore costs needed to setup, maintain and secure your own hosting will most likely out-weight the benefits it will bring you.

    Hope it helps

    Enrico Simonetti

    Principal Technical Advisory Manager

  • Yes, I totally agreed with Enrico Simonetti answer. As he mentioned some are the compulsory components and some totally depends on the requirements.

  • Hello Enrico Simonetti and Maryam Aslam

    Thanks for sharing your architecture level experience and knowledge.

    What I understand and conclusion is Load balancer is not a required or mandatory component of architecture . It will only required based on the load of the server.

     

    The above mentioned components by Enrico Simonetti are necessary or required for a  typical architecture.

    Is it my understanding is in sync ?

  • Hi,

    Yes, you understand correctly. But according to my point of view Cache is also the optional component because if the server has no too much load and DB and Elasticsearch are on the different servers then it will work like a charm without any external cache because due to Elasticsearch results already retrieved very fast.