We’ve recently been migrating a large Sitecore 6.6 app to Azure. It’s not using the module, instead custom powershell to spin up web-roles and PAAS Dbs. As part of the migration we’ve been benchmarking how long publishes to take when you compare things like: on-premise -> on-premise; on-premise -> azure and azure -> azure.
The stats were taken by republishing the same set of items N times then analysing the logs to look for key entries relating to the publishes starting and finishing. If anyone is interested in how this is done let me know, I have a console app for extracting data from the logs and writing to summaries or CSV’s.
During the initial testing we found the performance into Azure was noticeably slower than on-prem -> on-prem. After things had been tuned up the performance was pretty similar (on-prem to on-prem was roughly 10s benchmark, azure to azure roughly 15s benchmark).
What stumped me for a while was which components to scale up?
You’ve got a few options:
- Core db
- Master db
- Web db
It turns out a combination of all the above plays some part however the item that had the most noticeable effect was actually the core db!
Thinking about this more it kind of makes sense. The core db plays a bigger role in the application than you might realize: all the user details are held in core; the links db is held in core & the eventqueue is used within core. All these factors contribute to ‘chatty’ behavior outside of the master and web dbs.