Azure WebSites and Distributed caching - azure

What is the right way to implement azure websites (not webroles) that use distributed caching?
Does Azure have anything built in or a 3-rd party has to be involved?
Edit:
I have been struggling with suggested Windows Azure Caching. The server kept responding with error ErrorCode<ERRCA0019>:SubStatus<ES0001>:Check the client version. It should be within the allowed version range on the server. If necessary, upgrade the client to the allowed version.
After looooong search I have stumbled upon this link that fixed it all.
Bottom line, when looking for NuGet package, DO NOT use Windows Azure Caching, but Windows Azure Shared Caching v1.7.

Windows Azure Cache Service (Preview) has just been released. That is the best way to use distributed caching with Azure Websites.
The Shared Caching service is being deprecated!

Well the easiest way is to just use Azure Shared Caching for distributed caching. You will have to provision the caching in the Azure Management Portal but then after that the API is pretty straightforward.
Here is a link to the Nuget package for the libraries: Windows Azure Caching
The prices for distributed caching are pretty outrageous still: Azure Cache Pricing

Related

Regarding Kentico 9 site deployment on Azure

I want to deploy Kentico 9 site on Azure and want to use shared file system for my media content, can you please suggest which Azure configuration (Azure Cloud Services or Azure Web Apps) I should referred?
I'd highly recommend going with Web App over Cloud Services. Mainly because Web App is almost like running on a regular server where Cloud Services is quite a bit different and harder to work with in my opinion.
Check this article out regarding some issues with Kentico and Azure Blog storage as well as how to setup your storage provider to only store media files.
http://www.kehrendev.com/blog/brenden-kehren/may-2016/problems-with-azure-and-kentico
Could you describe what do you mean by shared file system for my media content?
From my experience - it`s (a little bit) easier to deploy (and maintain) Kentico to Azure Web Apps but they do not provide so many customizations - in my humble opinion - the biggest one is you are not able to connect via remote desktop (but this is supported by Azure Cloud Services).
Please note - if you are using Cloud Services you must use Azure Blob Storage - source - which could be in conflict with your requirements.
You can find more information about Web Apps vs Cloud Services vs Virtual Machines on the mentioned page.
TL;DR; - if you do not need customizations, remote desktop and startup tasks - go for WebApps. If not, try to specify more requirements.
You can also check comparinson of the technologies from the Microsoft`s point of view here.
It's not clear who you want to share the media with...
If you want to share the assets amongst more Kentico instances or with a 3rd party system, I'd probably use the Azure Blob Storage. Kentico comes with a dedicated file provider for this exact use out of the box. It's called CMS.AzureStorage.
Using the blob storage is not a limiting factor in terms of hosting your app. You can still use all available options: Web Apps, VM or Cloud Service. There are some technical implications, of course. But they're all described in the documentation.
I recommend checking the comparison matrix to find a hosting option that suits your need best. Kentico recommends using App Service (Web Apps) for most projects as it's easiest to maintain. However, you can't use certain features like Kentico Windows services, for instance. Question is, do you really need them?

Umbraco 6.05 on Windows Azure

I am deploying Umbraco 6.05 to Windows Azure. I am currently using "Azure Web Sites" to do this, but from what I can glean, it appears that this may cause future problems with the storage of media being on the local file system (both due to space limitations and also due to scaling considerations). The site was created and uploaded using WebMatrix.
I have found various articles about using Blob Storage for this, but they all refer to "Cloud Services" and "Web Roles" - none of which seem to match with the current terminology used on Azure, and to be totally honest I am not that familiar with Azure yet anyway. I have also found various "accelerators" for previous versions but nothing for this version.
Can anybody provide any links to a definitive guide to the installation of this version of Umbraco as an Azure Web Site, utilising Azure Blob Storage where appropriate? If this is not feasible, perhaps further advice can be provided as to the recommended way of hosting Umbraco in Azure.
There are no different in term of how they store the file whether you use Web Sites or Cloud Services as long as you didn't modify the Umbraco.
Both Web Sites and Cloud Services keep the file, in this case, the Media folder in their local storage unless you modify Umbraco to save into Blob Storage to have a better scaling.
You can write and modify your own custom Media location or try to look at this URL http://our.umbraco.org/projects/backoffice-extensions/universal-media-picker

Configure Windows Azure Caching (preview) Cache Client Programmatically

Trying to convert from Windows Azure Shared Caching to Windows Azure Caching (Preview) where I was able to programmatically configure the DataCacheFactory via the DataCacheFactoryConfiguration class. Is the possible in the Caching (Preview)? If so, what are the values that need to be set for the server configuration?
Take a look at the old documentation ( http://technet.microsoft.com/en-us/library/gg618003.aspx ) I have not been able to find the "preview" version of this documentation.
The "How to" documentation on using Windows Azure Caching Preview is here. To include nuget package for Caching Preview please check section "Getting Started with Windows Azure Caching (Preview)" and also take a look at the section "Working with Caches" which shows code on how to use API.
As these two cache are fundamentally different because on is locally available and another one is in cloud, the libraries and API to configure Cache and Cache objects are different in between two. The key difference is that Caching Preview uses the following different reference:
using Microsoft.ApplicationServer.Caching;
and the code which is depend on above is different as documented above in provided links i.e.
DataCacheFactory cacheFactory = new DataCacheFactory();
DataCache cache = cacheFactory.GetDefaultCache();

How to publish dotnetnuke website to azure?

I am looking at migrating a dotnetnuke website to Azure. I need both staging and production versions of the site to be running.
I have looked at using Azure Websites, but at the moment there is no support for SSL on custom domains so this can't be used for the production website. I have migrated the staging site to an Azure Website and now have numerous options for publishing updates (ftp, git, using web matrix).
Due to the constraints of Azure Websites, I used the DNN Accelerator to create a cloud service for the production environment. This set up will allow me to have control over IIS and therefore manage SSL certificates (I think).
The problem I have with this is there does not seem to be any publishing options. The only way I can publish is by connecting to the Azure instance via RDP and then copying the website files onto the files system.
Are there any other ways of publishing? I have looked at converting the website to a WAP, but I believe this has implications when it comes to updating to new DNN versions.
You should never publish your application through RDP since these changes are non-persistent (meaning what you published might disappear after a hardware failure / ...). Adding new instances would also mean that these instances don't have the files you published before.
I suggest you start by looking at the DotNetNuke Azure Accelerator first. If this doesn't fit your needs you might always try to build something yourself, but if you want to say with a regular website and not a web application I wouldn't count on Visual Studio support. In that case you might want to look at creating a package from the command line and using startup scripts to add your website in IIS.
Sounds like you need to use a Start-up task to install the files in the correct place for a Web Role (Cloud Service) Smarx has a nice overview here, MSDN has a wealth of info too http://blog.smarx.com/posts/introduction-to-windows-azure-startup-tasks
Another option is IAAS for Azure with a persisted VM, more work mind you, Cloud Service would be the most efficient and correct solution...

Configuring New Distributed Cache for Azure Websites Preview

UPDATE: Nevermind I've found it. It's not done via the Azure Portal but inside the Azure Project Properties Dialog inside Visual Studio.
Anyone know where the new Distributed Cache Feature (I'm not talking about Azure AppFabric Cache) that Scott mentioned in his post can be configured for a website?
Adding information for those who may be wondering what is it:
Yes "Distributed Cache" is a instance specific feature which can be configured during development time with Windows Azure June SDK, via Role properties in Visual Studio as seen in this screen shot:
This feature is available only for Windows Azure Virtual Machine and roles but not for "Windows Azure websites (FREE) in Shared Mode".
The distribute cache is not available in the Azure Website Free or shared because you are not alone on your instance. It should become possible on a reserved, but still not available. Don't forget that the distribute cache is still in preview, so always evolving.

Resources