During DNN Connect 2016 a group of interested attendees got together to discuss their experiences of using Azure Web Sites to host DNN Community and Evoq versions. Here is a summary of the notes taken during the session along with the key pieces of advice and top tips. David Rodriguez and César Abreu Falcón were particularly generous sharing their experiences hosting over 3000 web sites for DNN Corp.
The Benefits of Azure Web Sites
Advantages of Azure Web Sites over Azure VMs (or other VM environments) are:
- There is no need to be concerned with the patching of the IIS environment and underlying operating system. Azure takes care of this for you. A good example raised was the patch for SSL3 which was just deployed automatically.
- The environment can automatically scale to support increased / decreased load.
- High availability using multiple web application instances is easy to configure and operate sharing many of the advantages of Azure Cloud Services.
- Both SQL and Azure Web Sites come with automated backup and tools to restore easily.
There were however some drawbacks and other considerations which were discussed:
- There is no remote access to the environment like a VM. As such new tools need to be learnt by seasoned Windows / IIS users to perform standard operations like accessing the event viewer or debugging.
- The most appropriate caching technology for Azure Web Sites is Redis. Redis is also provided as a service on Azure by Microsoft. However many DNN modules do not support the binary serialisation needed to operate with Redis making the best caching solution unusable.
- System stability is depends on Microsoft which requires surrendering control over a hosted solution. The most common issue from attendees related to networking and timeouts between Azure Web Sites and dependent services such as SQL and Redis cache.
- The DNN Platform / Community scheduler does not support Azure Web Sites as the server names running the web site are ever changing as Azure scales up and down, or upgrades underlying machines. There is a solution for Evoq.
- The costs vary by usage. This can make some uses of Azure cost prohibitive compared to all you can eat hosting services.
- SQL databases are assigned Database Throughput Units (DTUs). If the SQL database has insufficient DTUs then this may lead to timeouts, particularly during the start-up phase of a DNN site where more database intensive operations occur. S2 or create DTU configurations were suggested for business critical web applications.
- SQL on Azure should be configured to use the V12 version which has improvements to performance and better compatibility with non Azure versions of SQL Server.
- The SLA for SQL is 99.5% which does allow Microsoft to make some changes. As such this SLA up time needs to be considered when defining SLAs and setting expectations for dependent services.
- Whilst Azure takes care of some aspects of SQL database maintenance you are still responsible for indexing and other data related maintenance. Azure provides an SQL advisor tool which can help. Proper database maintenance may also reduce DTU usage.
- The DNN Store checks for Azure compatibility do not consider Azure Web Sites. Just because a 3rd party module is Azure compatible doesn’t mean it will work with Azure Web Sites. This may change in the future.
- When upgrading DNN the number of DTUs assigned to the SQL database could be increased for the duration of the upgrade. Remember to reduce them again afterwards to avoid increased charges.
From discussion with other attendees throughout DNN Connect as well as those at the session there is some scepticism concerning the use of Azure Web Sites for DNN. Some of this is down to bad experiences, happiness with existing hosting options, and lack of support for the DNN scheduler. However it’s clear Azure Web Sites works very well with Evoq, and with only a few more tweaks DNN Community / Platform can catch up.
DNN Connect 2017 will be an excellent opportunity to review progress.
External Links (courtesy of David Rodriguez):
Use the DNN Dummy Caching provider to develop Redis compaitable modules
Redis Caching Provider for DNN
Kudu for Service Management
Web Site Monitoring with Application Insights