Azure does infrastructure
by Simon Bisson
New facilities in Windows Azure open up new possibilities for managing your infrastructure. Simon Bisson finds out more.
HardCopy Issue: 57 | Published: September 1, 2012
Microsoft’s Azure cloud service recently gained a new set of capabilities, adding support for persistent virtual machines. That’s a big change for Microsoft’s cloud service platform, adding to its reach and competing with Amazon’s EC2 cloud infrastructure. With Azure’s new infrastructure capabilities, Microsoft is also reaching out to start-ups and established companies that may not think of using Microsoft tools, thanks to its support for major Linux servers, and a Web-hosting service that works with many of the best-known open-source Web applications. To understand more about what Microsoft is doing with this latest Azure release we spoke to two of the folk behind Azure, Scott Guthrie (Senior Vice President of Microsoft’s Business Platform Division) and Mark Russinovich (Technical Fellow in the Platform and Services Division), at TechEd 2012 which was held recently in Orlando, Florida. We also spoke to Michael Newberry, the Windows Azure Lead at Microsoft UK.
Platform as a Service
Giving a quick overview of Azure’s history, Mark Russinovich noted that “Azure began life as a controlled Platform as a Service (PaaS), but people wanted to run software that wasn’t compatible with the model. So we began to relax the programming model, adding features to let existing code come in.” Describing the recent updates to the service as “on-ramps”, he told us that “Each of them is a bigger and bigger step to bringing a whole server application into the cloud.” Getting those server applications into the cloud is Microsoft’s goal, and a cloud infrastructure offers many advantages over traditional on-premises servers.
The Azure PaaS offering is designed around stateless applications, a very different approach to that used for traditional application and operating system installations. The various roles aren’t persistent, and there’s no continuity between instantiations of the same role (unless you take advantage of Azure’s storage features and write your own session handling code). That can make it hard to port applications to Azure, as any application requires significant re-engineering if it is to work in a stateless environment. It’s an approach that’s good for green-field development, but not so good where applications already exist and need to be moved to the cloud. Michael Newberry says that “Azure prior to the spring release was a wonderful development story.” But adding support for virtual machines has extended it’s scope, as Newberry continues, “As well as a developer story, Windows Azure is now an IT pro story.” Under the covers Azure uses much of the same code as Microsoft’s Windows Server 2012, which means it can take advantage of kernel-level technologies like Hyper-V. With Hyper-V support also baked into the Linux kernel, Azure’s new virtual machine support means that modern Linux servers can run in the cloud alongside Windows as first-class citizens, something that Scott Guthrie describes as “Microsoft and open source ecosystems together – that combination is the special sauce.” With Azure offering compatibility between on-premises infrastructure and the cloud, it’s now valuable to both start-ups and large enterprises – no matter how they intend to use cloud services. Working with Azure’s infrastructure service is easy. Once you’ve created a VM and uploaded it to Azure then the portal you use to manage your VM instances is the same as the portal you use to manage Azure applications. As the portal is an HTML5 application you can use any desktop operating system to work with Azure-hosted infrastructure – or indeed any tablet operating system as the portal does support touch. That’s important if you’re approaching Azure from a non-Microsoft background: it means you can manage any Azure VM from Ubuntu, Mac OS, an iPad or an Android phone.
Reasons to be virtual
here are many reasons for using virtual machines on Azure. One option is just to move existing services to the cloud, using physical-to-virtual tools to image a server and move it lock, stock and barrel to Azure. There’s no need to run physical infrastructure, with all the purchasing, installation and maintenance involved, and you can immediately take advantage of Azure to scale applications, moving elements of applications to different VM containers. As Russinovich puts it, “If it runs on a server, you can put it in a VM.” Building on Azure also means that businesses will be able to take advantage of cloud scale, spinning up virtual clusters of servers to handle large scale business analytics, working with big data that would be uneconomical to analyse conventionally. As Guthrie notes, you can just “Spin up a thousand servers for an hour to crunch data and then shut them down: there’s no long term commitment.” Azure’s infrastructure services go beyond simply hosting virtual machines. Microsoft provides a range of infrastructure services for use with hosted virtual machines, and with applications written to run on the Azure platform. These include networking services, which can be used to provide a secure connection between virtual machines and on-premises data and servers – allowing organisations to use Azure to process data in the cloud, while the data itself is stored on-premise in order to comply with regulatory requirements. Once an application or service, or a server, is uploaded into the cloud, it’s able to take advantage of these features, and their support for cloud-based design patterns. Newberry describes this as “blurring the lines between Infrastructure as a Service and Platform as a Service.” Azure’s new Web hosting tools are part of this, allowing you to move an existing Web site to Azure and treat it as managed infrastructure. Once done you can quickly take advantage of Azure’s platform features, scaling Web sites up and down in response to demand. Giving Azure tools for handling virtual machines allows IT departments to quickly take advantage of these features, while still being able to use existing development skills and techniques. Russinovich indicated that Microsoft had options for handling IaaS on Azure: “We took the option with the two sitting next to each other, working together.” It’s an approach that also lets Azure carry on adding features without affecting the virtual machines that run on it, allowing developers to move at their own pace while the underlying platform gains features and flexibility.
Mix and match
One scenario that Russinovich suggests is for businesses with 3-tier applications. After taking a service wholesale into the cloud, elements can be selectively moved to use the Azure platform. Web elements can be moved across to Azure Web roles (using tools like Azure support for node.js) and the data can be moved to SQL Azure while you keep the core business logic on a VM until it too can be re-engineered to run on Azure worker roles, a process that Newberry describes as “Mix and match according to your application architecture.” Migrating elements of applications to Azure can be very simple – for example, just changing a connection string to get access to a cloud-hosted data source. The final stage, Russinovich suggests, “is just ‘sun-setting’ an old application; a transition”.
Azure will also help secure existing applications, handling infrastructure security automatically. You’ll also be able to use the virtual networking tools built into Azure to define management and user networks, using the same techniques as you’d use in your own network. Newberry describes this as Microsoft opening up Azure, “We want people to use our data centres, with as much support for the existing technology stack as possible.” That’s bringing Microsoft new customers, with new ideas and new applications. Newberry says “We’re giving business owners very different options, different ways of getting the business results they want.” Microsoft is keen to blur the differences between a pure IaaS solution using virtual machines, a hybrid that uses a mix of VMs and Azure services, Azure’s Web hosting platform and the Azure cloud development platform. Instead of infrastructure, services or platform, the company is instead talking about compute as a service, networking as a service and storage as a service – even identity as a service. Newberry describes the change as making Azure, “Just a place where you can run your stuff, and it doesn’t matter what that stuff is – it’s your call.” The ability to use the same sign-on infrastructure in the cloud as in your own data centre is one of Azure’s key advantages, thanks to it offering the same federated Active Directory tools as Office 365 and Microsoft’s Windows InTune management platform. Azure is becoming a jack-of-all-services platform where organisations can bring their existing applications and services, without needing to make any changes. New developments can take advantage of Azure’s buffet of services, with the added advantages of scaling and support for big data, while still operating as part of a managed set of services and processes that can migrate between on-premise and the cloud. As Russinovich says, “The future is Platform as a Service, but we can help take the existing to the cloud, so it is no longer an all or nothing proposition.” The mix of open source technologies and Microsoft’s platform is important, especially for development teams that don’t have the budget for server resources. Cloud support for VMs changes the economics of application development, getting development started quickly, with working prototypes, without having to invest in infrastructure. Now IT departments will be able to host VMs in Azure at little or no cost, giving them the flexibility to develop and test new applications quickly, and helping IT departments become more agile and responsive. As Guthrie says, “It’s the democratisation of IT and the cloud. The role of IT changes, but it’s not a zero sum game.” Newberry adds, “Time-to-market is as important as agility. It’s enabling a powerful conversation.”