Despite playing catch-up to Amazon Web Services, Microsoft Azure has quickly become a contender with its powerful Platform-as-a-Service and Infrastructure-as-a-Service offerings. With constant innovations around usability, open source and cross-platform compatibility, infrastructure management and evolving software development paradigms for new devices and applications, it can be hard to get your bearings within the vast platform.
First things first: What comprises the Azure platform? It’s not turtles all the way down; in Azure principal program manager Scott Hanselman’s words, the underlying layer, the “infinite hard disk in the sky,” is Azure storage, where you can drill down to every virtual hard disk (VHD) image in your deployment. The next level up comprises virtual machines, which you choose, configure and manage.
On top of those VMs is a middle ground between IaaS and PaaS: Worker Roles, which are stateless cloud apps that can scale their VMs up or down. Above Worker Roles we are clearly in PaaS territory, with Web Apps, Azure Batch and HDInsight (Hadoop) for Big Data analysis. And at the top there are Web Jobs, Mobile Apps, and Media Services. These pieces are among those also available as the Azure Stack for on-premise datacenters or hybrid cloud applications.
(Related: PaaS gets a new lease on life)
“The first distinction to make as an Azure customer is, do I want to consume VMs, or do I want to consume the platform that Azure provides me?” said Esteban Garcia, Visual Studio ALM MVP and chief technologist for Nebbia Technology, and Azure company in Orlando. “Within PaaS, we typically do a Web app and SQL services. Those are pretty straightforward and easy to discover.”
It’s likely that most cloud problems you’re facing have already been solved somewhere in the Azure community, advises Corey Sanders, director of program management for Azure. “Make sure you look at the full breadth of services we offer, because they solve a lot of different problems. That’s the value of having a broad platform such as Azure,” he said.
Read on for tips from these Azure experts.
1. Saving pennies, saving dollars
The promise of the cloud is elasticity: sizing your deployment according to demand. Too often, Azure users are surprised by the multiple dimensions of pricing, from storage to transactions, support, bandwidth and more. The first step toward transparency in billing is not to “set it and forget it” but to monitor, measure and adjust frequently.
“One aspect of VMs that is not well known but that I think is super cool is the wide variety of VM sizes that we now offer,” said Sanders. “And the fact that when we stop a VM through the portal, we actually stop billing for it. The combo of those two has resulted in very few points of contention around billing.”
The Azure Billing Alert Service can create customized billing alerts for your Azure accounts, and the pricing calculator is your friend.
2. Elastic Scale for Azure SQL Database
Performance and price limits on Azure SQL Database, which offer a subset of SQL Server features, can slow you down while also burning cash.
“People use SQL Service instead of the full server,” said Garcia. “Whenever you do that, you pay for Database Throughput Units. You could be paying for 10 databases with five DTUs [database throughput units], which is a small number of DTUs to use. What you can do is start using this elastic scale, say ‘I’m going to assign 100 DTUs to 10 databases,’ and they are going to share that processing power among all the databases.” In other words, a P3 tier database costs US$4.65 per DTU per month, while the same number of DTUs scaled out rather than up on an S2 instance cost $1.50 a month.
“They are all able to use that shared pool of resources rather than being constrained,” said Garcia. “It gets along with the idea that cloud allows you to draw resources from anywhere as needed.”
Currently in preview, Elastic Scale simplifies the scaling of data tiers from just a few to thousands of database shards via .NET client libraries and Azure service templates. High-volume OLTP, multi-tenant SaaS, and continuous data collection from telemetry and Internet of Things applications are likely use cases.
3. Preview pricing
The aforementioned Elastic Scale is just one example of many new features available at preview pricing, which may be free or 50% less than the general availability pricing. Taking advantage of preview pricing lets you play with new features, stay ahead of the technical curve, save money, and possibly beat the competition by having production-ready deployments when the features go live for all customers. A list of preview services for Azure is available here.
4. The Azure Portal
Also in preview is the Azure Portal, a new dashboard for accessing IaaS and PaaS deployments.
“I was not happy with the portal at first, but now it’s growing on me,” said Hanselman in his June 2015 TechDays UK keynote. “If you double-click on the background, you can change the theme to dark. This made me so happy.”
Right-clicking on a given window pins it to the start board. Charts can be edited to show, say, CPU percentage, pricing, disk usage and more. “Don’t discount the portal quite yet; it’s fantastic,” said Hanselman.
5. Keyboard shortcuts
Every computer user knows the mouse can be deadly, in terms of ergonomics and efficiency. The best economy of movement is achieved with keyboard shortcuts. Launched with version 5.0 of the Azure Portal, the shortcut menu can be accessed by hitting shift + ?. Luckily, there aren’t too many to memorize. You’ll want to use these and more:
Hubs (left menu) shortcuts:
H – show startboard
N – open Notifications hub
A – open Active Journeys hub (a Journey is the current opened group of blades; a blade is card/tab/subpage that contains some group of tiles, e.g. website properties or analytics)
/ – open Browse/Search hub
B – open Billing hub
C – open Create/New hub
Changing focus between blades shortcuts:
J – move focus to the previous blade
K – move focus to the next blade
F – move focus to the first blade
L – move focus to the last blade
6. Azure resource manager
The complexity of managing websites, virtual machines and databases just got a little simpler with the addition of the resource manager in the new Azure Portal. Group and view resources (such as an instance of Application Insights along with a Web application and SQL database) as a single resource group. Deployment templates in Visual Studio are also aided by IntelliSense that surfaces new resource providers and template language functions to you as you write deployment templates, avoiding pesky naming errors.
“Azure resource manager has an exciting, growing community,” said Sanders. “We’re seeing in templates for the resource manager—starting about six months ago—a pretty exciting pickup in the community. We seeded GitHub with a set of these templates and put them all out fully open source. Now we have over 140 contributors and more than 200 templates available. It’s a delightful outcome to see this service that we didn’t do a huge amount of coverage on get this kind of response.
7. Scale Sets
Do you have Big Data or container-based workloads? You may want to orchestrate these complex, large-scale deployments with Scale Sets. Also in public preview, Azure Virtual Machine Scale Sets let you manage and configure virtual machines as a set of identical Windows or Linux images.
“A customer can come in and say, ‘I want VM Scale Sets in groups of 10, and I want to configure them all with a tool like Chef or Puppet,’ ” said Sanders. “The other aspect with Scale Sets that’s exciting is the deep integration with Azure Insights autoscale, which restricts cost and spending by only using the compute resources you need, responding to traffic changes.”
A Denial of Service attack can hurt your wallet, hamstring your business and harm your customers. Like other cloud providers, Microsoft aims to share its security knowledge as well as build in basic protections. Azure Security Center’s view lets you set policies across all your subscriptions and monitor security configurations. The good news is, the days of accidentally raising DDOS flags by testing or polling your own app are over, thanks to cutting-edge threat intelligence around malformed requests and traffic sources.
9. Site extensions
Another powerful way to add custom administration features to your Web apps is with site extensions. Write them yourself or choose from the new Site Extensions Galler These live on the SCM (site control manager) site for administration and debugging that runs over SSL and is created with every Azure website. The URL for your SCM site is the hostname plus “scm”. Thus, “sdtimes.azurewebsites.net” would have a corresponding SCM site at “sdtimes.scm.azurewebsites.net”.
10. PowerShell cmdlets
Whether you want to clean up a deployment where you have some extra VHDs and VMs lying around, provision VMs, set up cross-premises networks, or other production tasks, you’ll enjoy the Unix-like scripting power of PowerShell and the new PowerShell cmdlets. As of the November 2015 update of the Azure SDK 2.8 for Visual Studio 2013 and Visual Studio 2015, the PowerShell script for deploying Azure Resource Manager templates now works with PowerShell cmdlets. Find scripting solutions already crafted for you in the PowerShell Gallery.
11. Service fabric
Riding the microservices revolution, Service Fabric is Azure’s platform for assembling cloud applications from a large collection of services. “Service fabric offers a platform that runs on Azure but also on-premises,” said Sanders. “This is a platform for deploying, managing and maintaining microservices. Discovery is handled for you, and it supports stateful and stateless microservices.”
The explosion of ways you can tinker with cloud resources, from remote desktops and SSH to portal shortcuts, has only just begun. According to Hanselman, the microservices revolution means there will soon be even more options to choose from.
“Simply stated, if I’ve got a tiny little 10MB PHP app sitting inside of a 5GB VHD, that’s a lot of VHD, a lot of virtual machine for a small Web application,” he said. “Does it really need that weight? That much security and isolation? It just needs to be in a container, and it needs to be deployable in a reliable way. Docker will provide that.”
“The excitement around Docker is very real. It makes it incredibly easy to deploy in ways that have never been possible,” said Sanders, who notes new integration of Docker support into Visual Studio and the Azure marketplace.
“My biggest tip and trick with Docker containers is just to deploy one. If you’ve never done anything with Docker, there’s a way to quickly deploy with a fully packaged VM and Docker in the Azure marketplace. No bringing down of the Docker engine, no pulling down the hub.”
13. Azure DevTest Labs
How do you avoid using up all your MSDN credit while testing on Azure? The preview of Azure DevTest Labs lets you spin up Windows and Linux environments to deploy and test applications while avoiding cost overruns.
“With Azure Dev/Test labs, the idea is that a lot of times developers have to wait for someone to spin up labs for them,” said Nebbia’s Garcia. “This allows you to spin up environments much quicker. You can choose for it to run a maximum eight hours, and after that it gets shut down. It’s a quick way to provision environments but avoid the problem of leaving it up and running. You can push a button and have whole sandbox.”
14. Application Insights
“Application Insights allows you to dig down and find the root cause of any application issues and understand how people are using the application,” said Garcia. “I’ve been using it for a year and half…as a Microsoft MVP.” For example, he uses it for availability testing from different geographic locations, either as a static test that checks a single page, or as a test of dynamic application flow.
15. Kudu, CloudBerry and Sendy
The Kudu open-source project is a useful troubleshooting tool and client-side process explorer for capturing memory dumps or looking at deployment. It’s also a site extension and welcomes community participation.
Another useful freeware tool is CloudBerry Explorer for Azure Blob Storage, which offers a file manager-style user interface to Azure Blob Storage.
If you’re already mucking around in the cloud, you may have e-mail update needs that can be met by Sendy or similar tools. Sendy was designed to work with Amazon Simple Email Service, but can be adapted for Azure as well. The cost savings versus a hosted e-mail solution such as MailChimp can be enormous.
16. Remote debugging
In its September 2015 white paper, “Practical Guide to Platform-as-a-Service Version 1.0,” the Cloud Standards Customer Council notes that no PaaS worth its salt should be without remote debug capabilities. “Application developers should have access to tools that enable them to control activities in the PaaS—for example, uploading (‘pushing’) application code, binding services to applications, controlling application configuration, starting and stopping application instances,” it said.
“Such capabilities should be provided in a way that fits well with the other tools used by the developer—command-line tools, graphical tools, embedded components for development environments. Ideally these tools should work via an API that is exposed by the PaaS system—cloud service customers should look for these APIs and assure themselves that the API can be used by a variety of custom tooling code.”
Remote debugging with Visual Studio fits the bill: Developers interact with cloud applications as if they were on-premise. Best used with Visual Studio 2013, remote debugging lets you manipulate memory, set breakpoints, and step through code—with the caveat that breaking a running process could break your live website. Save this one for pre-production sites.
17. Performance testing
Another public preview that is currently free to use, performance testing, allows you to generate thousands of virtual users from around the world and test your application against the load.
“We started using performance testing in the past six months,” said Garcia. “If you spin up a Web application, you’re able to do a performance test right from Azure, right in the cloud. Before, it was more on the Visual Studio side. So I can see what it looks like if 1,000 people hit my app at once. It’s very useful in knowing how to scale the application: We can have fewer servers, but make them stronger by adding this performance testing feature right within the Azure portal when you first launch an application.”
18. Easy ROI: Lift and shift
Want an instant return on your cloud investment? Eliminate idle servers that only handle periodic loads. “This is something people forget about when they’re thinking about the cloud,” said Hanselman. “Azure storage, that’s an infinite disk that’s out there. You probably have a machine sitting under your desk and it’s got a VM, running maybe an expense reporting system. It’s something that you need to lift and shift into the cloud. There are migration tools that can help you. Literally, it’s Hyper-V in the cloud, but that’s only the most basic way of using Azure. So, Step 0: Lift and shift. Then start thinking about other ways to exploit stuff.”
19. Developer services marketplace
Before you reinvent speech recognition, check the Developer Services Marketplace for free and paid ways to extend functionality, turbo-charge development, and manage cloud deployments with certified Azure tools such as io for event-driven computing, or face APIs from Project Oxford.
20. Ride the IoT wave
No set of tips would be complete without instructions on how to program the proverbial light bulb. These days, Internet of Things projects are everywhere. Hanselman, a type 1 diabetic, movingly demonstrated in a November 2015 keynote video how he tracks his blood sugar and insulin pump in the cloud with Azure technologies.
Microsoft Azure IoT Hub offers SDKs, management and security solutions to harness a plethora of IoT devices, and once the data is collected, there are new machine-learning tools available to process data stored in HD Insight, Microsoft’s version of the Hadoop Big Data store. Have fun!
Start your engines
Use these 20 tips as a checklist for leveraging the vast Azure platform. The more you understand Azure, the more you see where it’s headed: “We’re seeing a blurring of IaaS vs. PaaS and starting to just see a compute platform,” said Sanders.
Redmond has clearly learned to embrace today’s polyglot cloud, and you can use that flexibility to your advantage. “Azure is not only a Windows server; they have Ubuntu, they have Linux servers, they have a new agreement with Red Hat, you can spin up an Oracle database… There’s so many different non-Microsoft technologies to choose from,” said Garcia.