When deploying Kentico applications to Windows Azure, companies need to give special attention to how the content will be synchronized across multiple instances. In previous releases, Kentico had the “Web Farm Synchronization” module for keeping servers in sync. Basically, this module allowed you to register web farm servers by specifying an internal IP for each one. When content was modified within the site, the underlying API would call each server via the specified IP and update the server’s cache with the new content.
Web Farm Settings 1
Web Farm Settings 2
With the introduction of Windows Azure, this presented a problem. Due to the dynamic (and ever-changing) nature of Windows Azure, companies would have no idea what IP the actual machine(s) would have. To get around this issue, Kentico implemented functionality to “auto-register” Windows Azure servers when they are deployed. This solution proved to work well when a service was initially deployed, however, updates to the instances caused an issue. When an application was redeployed (via Swap VIP, Upgrade, etc.), Windows Azure would cycle the servers, resulting in a change to the internal IPs of the instances. Kentico didn’t always pick up this change when it occurred and the end result was web farm synchronization errors.
Luckily, Kentico quickly recognized this issue and implement a brand new mechanism for web farm synchronization. Instead of relying on user-inputted IPs and servers(or auto-populated ones upon deployment to Azure), the new method utilizes the database and flags to denote when content is updated. This process is much more efficient and ensures content is always propagated to all servers when it is modified. More importantly, it removes the requirement of the servers (instances) and their IPs being entered and maintained.
After applying the 6.0.21 hotfix (or later), you can enable the new module with the following config setting:
<add key="CMSWebFarmUseDBUpdater" value="&true"></add>
This new web synchronization also works with non-Azure deployments, so traditional deployments can also benefit from the new functionality.
Kentico released this new module as part of the 6.0.21 hotfix and is now included in all future releases. This is yet another update to an awesome CMS and an example of how Kentico is committed to providing their customers with the latest updates.
Dominik Pinter at Kentico has a great blog detailing this new functionality and the steps to implement. You can check out his blog here