Hi all,
I know that the recomendation for Umbraco load-balanding systems is to allow the request of /umbraco administration only for one of the servers balanced, but I would like to balance the administration too, so, why that recomendation? what is the reason? and someone has ever done it?
Let's say you have the following setup, staging to production (load-balanced).
StagingServer
->Load Balancer
Prod1
Prod2
Prod3
Your courier setup would normally connect to Prod1, from StagingServer When you perform a sync to Prod1, a DB entry is added that a sync was performed. Prod2 and Prod3 polls for those changes and if there was a change, they pick up sync and process accordingly. (This is a very loose explanation, if someone would like to expand on it, please feel free)
Is your environment set up differently?
If not, here is my option on the matter:
There is no reason (except to potentially delete content,), that you would ever want to make changes on production without first making the on dev/staging and syncing to production. Otherwise, your environments would be out of sync. The problem with what your proposing can cause 3 issues: 1. Going through the load-balancer, if you are on a standard round-robin configuration, you don't know what server you are going to hit, 2: If you make changes on one Prod server, you have to republish on subsequent servers to ensure that the changes show up, 3: You are now out of sync with dev and staging servers.
Moral of the story, I would stay out of the Umbraco admin on Prod unless, you are troubleshooting, or need to delete content.
I have the Umbraco administration balanced in my production environment (two different server instances).
The load-balancer is configured to access 50-50 to the servers so sometimes a server request is being responded by server01 and sometimes by server02.
The frontend website is responding well, but I am having too many issues with the administration; for example:
I am changing a specific content > "Save and publish".
Then I navigate to the frontend website and sometimes I read the new content and sometimes I read the old content (the database is shared by both server instances and it is placed in a different server).
As the database server is the same I think the only explanation for the problem is about the instances server01/02 caches.
¿there is a way to manage the Umbraco server cache in that kind of load-balancer system?
It's really not possible to load balance the Umbraco backoffice in a safe and supportable way. The main reason is that Umbraco does not currently use database level locking so there is no way to ensure data integrity during a transaction. At some point, almost for certain, you will encounter data corruption and that could negatively affect your site's front end as well.
I encourage you to follow the load balancing guide in the docs closely and to not load balance the backoffice (admin) instances - it will most likely lead you down a dark path with untold trouble ;-)
Yes, I read that umbraco statement before buy I wanted to find someone who had the same problem as me.
It's really a pity not be able to load balance the Umbraco backoffice. Many applications, as my current project, that use multi-language with many administrators will suffer this inconvenience.
I hope in the future this will be a improvement in next Umbraco versions.
Load-Balancing and Umbraco administration
Hi all, I know that the recomendation for Umbraco load-balanding systems is to allow the request of /umbraco administration only for one of the servers balanced, but I would like to balance the administration too, so, why that recomendation? what is the reason? and someone has ever done it?
Thanks a lot!
Let's say you have the following setup, staging to production (load-balanced).
StagingServer
->Load Balancer
Prod1 Prod2 Prod3
Your courier setup would normally connect to Prod1, from StagingServer When you perform a sync to Prod1, a DB entry is added that a sync was performed. Prod2 and Prod3 polls for those changes and if there was a change, they pick up sync and process accordingly. (This is a very loose explanation, if someone would like to expand on it, please feel free)
Is your environment set up differently?
If not, here is my option on the matter:
There is no reason (except to potentially delete content,), that you would ever want to make changes on production without first making the on dev/staging and syncing to production. Otherwise, your environments would be out of sync. The problem with what your proposing can cause 3 issues: 1. Going through the load-balancer, if you are on a standard round-robin configuration, you don't know what server you are going to hit, 2: If you make changes on one Prod server, you have to republish on subsequent servers to ensure that the changes show up, 3: You are now out of sync with dev and staging servers.
Moral of the story, I would stay out of the Umbraco admin on Prod unless, you are troubleshooting, or need to delete content.
Granted, this is all based on my experience.
Thanks for your response!
I have the Umbraco administration balanced in my production environment (two different server instances). The load-balancer is configured to access 50-50 to the servers so sometimes a server request is being responded by server01 and sometimes by server02. The frontend website is responding well, but I am having too many issues with the administration; for example:
I am changing a specific content > "Save and publish".
Then I navigate to the frontend website and sometimes I read the new content and sometimes I read the old content (the database is shared by both server instances and it is placed in a different server). As the database server is the same I think the only explanation for the problem is about the instances server01/02 caches.
¿there is a way to manage the Umbraco server cache in that kind of load-balancer system?
Thanks!
@Raúl -
It's really not possible to load balance the Umbraco backoffice in a safe and supportable way. The main reason is that Umbraco does not currently use database level locking so there is no way to ensure data integrity during a transaction. At some point, almost for certain, you will encounter data corruption and that could negatively affect your site's front end as well.
I encourage you to follow the load balancing guide in the docs closely and to not load balance the backoffice (admin) instances - it will most likely lead you down a dark path with untold trouble ;-)
Here's the official statement from HQ https://our.umbraco.org/documentation/Getting-Started/Setup/Server-Setup/load-balancing/#faqs
Ok, Thanks @Paul.
Yes, I read that umbraco statement before buy I wanted to find someone who had the same problem as me.
It's really a pity not be able to load balance the Umbraco backoffice. Many applications, as my current project, that use multi-language with many administrators will suffer this inconvenience.
I hope in the future this will be a improvement in next Umbraco versions.
Thaks a lot for your response!
is working on a reply...