Microsoft Azure is an integrated collection of cloud tools for building, managing and supporting applications and services.
Solutions available cover hosting, backup, cloud computing, application development, e-commerce, monitoring, data analysis, and more.
Microsoft Azure also includes a Content Delivery Network. Unusually, this isn't based around Microsoft's own edge servers, and instead offers three plans using other CDN networks: Standard Akamai, Standard Verizon, and Premium Verizon.
One major benefit of using Azure is its integration with Microsoft technologies. You can quickly deploy it alongside other Azure storage or cloud services, for instance. The CDN can be managed from PowerShell or .NET, a big plus for many developers and sysadmins, as well as via a REST API and Node.js.
Azure's 'Standard Akamai' plan covers the basics: custom domain name support (cdn.mydomain.com), HTTPS support with the CDN endpoint (but not a custom domain), geo-filtering (block access by country), HTTP/2 support, load balancing and DDoS protection.
The 'Standard Verizon' plan adds HTTPS support for custom domains and core analytics reports. That's good news, although other CDNs often include these by default.
One not-so-common Standard Verizon addition is "asset pre-loading", which enables specifying objects to be cached before they're requested. The first request from each region will then get the file immediately, without having to wait as it's fetched from the origin.
The full-fat 'Premium Verizon' plan extends the CDN with real-time stats and alerts, advanced HTTP reports, token authentication (hotlink protection) and a powerful rules engine to change cache or header settings, redirect URLs and generally play around with content delivery. Although other CDNs typically offer some of this functionality as standard, Microsoft's implementation is impressive.
The Azure rules engine supports querying more than 40 conditions, for instance, covering device type, location, request details, URL and more. If you're the technical type, check out the CDN overview documentation here.
Purge times may be an issue for some, at 2-3 minutes for Azure Verizon and around 7 minutes for Azure Akamai (settings changes can take up to 90 minutes to propagate with Verizon in some cases). Microsoft suggests the best practice to ensure users always get the latest files "is to version your assets for each update and publish them as new URLs. CDN will immediately retrieve the new assets for the next client requests." That'll certainly work, but it won't be convenient for everyone.
It's not possible to compare Azure's networks based on edge server numbers, as Akamai's locations aren't disclosed. Verizon's network is larger than many with more than 40 POPs (points of presence) spread all around the world. Microsoft recommends you choose a plan based on features rather than the POP list, though, and on balance we'd agree.
Microsoft Azure CDN uses a pay-as-you-go scheme where you're charged for the level of bandwidth you use. As with Amazon Cloudfront, data transfer prices vary depending on the edge server used, so for example serving users in India costs around twice as much as in North America, Europe, the Middle East and Africa.
This isn't the most straightforward of schemes and you'll probably find it hard to predict your potential bills, but the service has few other charges to catch you out. You're not billed for requests (files downloaded), and there's no premium for using HTTPS over HTTP.
The Standard Akamai and Standard Verizon plans are priced similarly to Amazon Cloudfront, with charges starting at $0.087 per GB for North America, Europe, the Middle East and Africa, ranging up to $0.17 for India. Rates drop after the first 10TB, depending on the amount you use (the full pricing table is here).
The Premium Verizon plan costs roughly twice as much for the first 10TB of traffic ($0.17 to $0.34 per GB), and again there's a discounting scheme if you use more.
Overall costs of even the Standard plans can be twice that of budget competitors like KeyCDN, but they're cheaper than many high-end enterprise CDNs, and the integration with Microsoft technologies may make this a price worth paying for some.
If you'd like to get a feel for your costs, the Azure site has a Pricing Calculator to help you figure out your monthly bill. Choose a plan, enter a traffic estimate for each region and the total is displayed immediately. Keep in mind that tech support is priced from a chunky $29 (£23) a month (there's a huge web knowledgebase available for free).
Alternatively, sign up for Azure and you'll get $150 (£120) free credit and 30 days to test the service (the website says $200 – £160 – in some places, but this became $150 when we signed up). This could give you more than 1500GB of traffic, enough to trial even the largest of sites, and it doesn't automatically renew as a paid product so there's no risk.
Azure CDN takes more time and effort to sign up than most. As well as requiring plenty of personal information, you're also required to authenticate yourself by telephone number (the site sends a text or calls you to provide a code, which you then enter on the signup form). You must provide your payment details, too, although Microsoft says there's no automatic billing at the end of the trial month, and you'll only be charged if you explicitly agree to purchase a service.
The Azure web dashboard is complex, crammed with features and functionality, and the most expert user might initially struggle to find their way around. For example, a left-hand sidebar covers 17 different areas (Function Apps, SQL Databases, Load Balancers, Virtual Machines), each of which leads to its own management panel with yet more options.
Typing ‘CDN’ in the Search box led us to the right area, but even there, terminology like ‘CDN profile’ and ‘resource group’ may seem unfamiliar.
Play around for a while, though, and the system starts to make more sense. Create a CDN profile and you can add multiple endpoints. You're able to define their type (Storage, Cloud Service, Web App, more) and URL. Each can have a sensibly-named CDN domain, too, like mytestdomain.azureedge.net.
Unusually, you're able to define whether you'll support HTTP and/or HTTPS at the endpoint creation stage, as well as defining the origin port (80 or 443 by default, replace with 8080 or some other custom option if you prefer).
An optional Dynamic Site Optimization feature accelerates performance with route and TCP optimizations, and object prefetch and mobile image compression with Akamai. This isn't cheap, with prices starting at $0.19, but the $200 of free credit means you can at least try before you buy. The Azure site explains the technology if you're interested.
Once you're set up, Azure works much like any other CDN. Edit your code to use the "mytestdomain.azureedge.net" CDN URL (or add a CNAME record to use a custom domain name) with assets you'd like to cache, and the system will load them on the first request and start serving them to visitors.
Access an Endpoint and you're finally able to explore Azure's CDN settings. These turn out to be flexible, too, far more so than much of the competition. You don't just click a button to turn compression on and off, for instance – you're able to define exactly which MIME types you'd like optimized.
It's easy to decide how the service treats URLs with query strings, too (page.ashx?q=this). In a click or two you can choose to bypass caching for queries (the asset is grabbed from the origin each time), cache the first request and always serve that asset, or treat every request as a unique URL (page.ashx?q=this and page.ashx?q=that would be cached as separate assets, each with their own time to live).
Geo-filtering is well-handled, with no need to learn coding techniques or create scripts. Instead you're able to specify individual files or folders, then allow or block them from your choice of countries.
Other tools are more cryptic, and the interface doesn't always offer much upfront help in figuring out how they work. There is a vast amount of documentation available, and eventually you'll master the basics, but beware: it might take a while.
Will Azure CDN deliver the speed you need? There's really no way to say for sure, as there are so many variables to consider – the locations of your visitors, the Azure plan you're using, the size and types of files, the web applications, and whether you're using extras like Azure's Dynamic Site Optimisation.
CDNPerf offers a starting point by comparing CDN response times experienced by real users across the globe. It's a single figure and can't offer any definitive verdict, but still provides a basic view of how the edge servers compare.
As we write, Azure CDN rates a creditable 7th out of 24 for worldwide response times. Companies like Cloudflare and CDNetworks are higher, but the company outperforms Cloudfront, Fastly and many others.
The service ranks 4th in Europe and 9th in North America. It also scores well in South America (5th) and Oceania (4th), areas which often aren't well served by other CDNs.
Drill down to country-level and Azure's highlight is equal first place in the UK, along with Fastly and Level3. Otherwise the service is typically in the upper mid-range of CDN providers for most locations around the world.
Azure CDN is a must-see if you'll use other Azure services, or might appreciate the .NET or PowerShell management features, but its complexity and relatively high cost mean that most people will be better off elsewhere.