Why is Windows Server App-V a good thing for cloud computing?

With all the pzazz of a Vegas Showgirl, Server App-V was announced at the Microsoft Management Summit (MMS) in Las Vegas last week. Well, OK, Brad Anderson stood there in polo-shirt and chinos to make the announcement but he was as excited as a Vegas Showgirl when he did it… Watch the keynotes on video here.

And this is a very good thing for cloud computing everywhere, from every product-vendor and every cloud-operator. Why? Because it ushers in a new way of looking at the cloud computing platform. Although multi-tenant SaaS cloud applications have been selling for some time now (think of Microsoft’s BPOS, Office Web Apps and soon-to-be-released Office 365), we, as technologists, have tended to think of the serious developer platform as some derivative of an entire virtualised operating system.

One of the very cool things the designers of Windows Azure came up with for the PaaS model it uses, is a separation between the OS and the application. This separation is so extreme that you don’t even perform OS maintenance tasks on the thing that’s running your application; the OS. But it doesn’t all disappear entirely. You can, for example, get an RDP connection to a running instance and explore the OS. You can use Event Viewer to open the error logs, you can use the file system to open up log files, you can investigate network configuration and you can hunt around IIS to try and fathom out why your application isn’t running.

If you (foolishly), applied a patch, hotfix, service pack, security fix etc, you’d find, over the long term it wouldn’t stay. Microsoft maintains the instance image in the way the fabric controller and the data-centre operators knows will provide the greatest stability and security. This gives isolation from the thing which has no inherent value to applications – management. That’s because it’s Microsoft’s image. Of course the exception to this is with VM Role. I made a point of highlighting the role differences in a previous post, where I said:

  • A Web Role is your web site hosted on IIS.
  • A Worker Role is your application hosted on Microsoft’s OS image.
  • A VM Role is your pre-loaded application hosted on your OS image.

What Server App-V does is increase and exaggerate the isolation between the OS and the application. It allows for the separation of application configuration and state from the underlying operating system in a data center environment. It converts traditional server applications into “XCopyable” images without requiring code changes to the applications themselves.

OK, so right now, in the Beta, this only really applies to machines running in your on-premise data-centre. There are challenges right now. For example state and configuration are stored locally and we know that durability of storage across instance reboots is not guaranteed. But Windows Azure does have a highly scalable and durable storage architecture: Windows Azure Storage. It’s only a matter of time before these things are improved.

One limitation of the PaaS model as it stands today is that applications have to be specifically built with the model in mind: to be stateless, scale-out, multi-instance-capable entities. That means if you have a traditional server application, and let’s face it, there are rather a lot of those around, you have to put your white lab-coat on and do some re-engineering. The result for those organisations looking to “get some quick wins” is that they install the app on to a VM and send the VM to a hoster or IaaS cloud operator. They simply replicate what they have in their data-centre in somebody else’s data-centre. As a Microsoft shareholder, I obviously don’t like hearing about this Winking smile. I know the PaaS model is a better long-term bet for them (and for me – remember, I said I’m a shareholder). However, what if they could get all the advantages of the PaaS model but with a traditional server application? Well – go back and read a couple of paragraphs back. I said “It converts traditional server applications into “XCopyable” images without requiring changes to the applications themselves”.

Of course, you can’t possibly get the advantages of a stateless, multi-instance environment, if your app is designed as a huge monolithic lump. This is where Server App-V comes in. There may be significant parts of the application that are difficult to modify, but other parts that can be modified more easily. Using Server App-V as the deployment mechanism to Windows Azure can go a long way to solving those problems. And as time advances, remember what the band D:Ream said – “things can only get better”.

So with Server App-V, you can get those “quick wins” and in the same breath remove that thing I talked about that has no inherent value – management. Microsoft’s Fabric Controller will do it all for you.

Why is this good for the cloud industry? Because such a substantial techno-business proposition is impossible to ignore. All other vendors will be looking at this and I’m sure if they didn’t already have plans to offer a similar technology for a PaaS model, they will be in the process of creating a strategy as we speak. Take Amazon for example. They are the most successful cloud operator with their IaaS model, but they see the benefits of the PaaS model and have introduced their own with Elastic Beanstalk. I believe you can be guaranteed that within a few years, they will also have a Server App-V competitor. I’m sure all the other major cloud operators will do the same. It’s a great stimulator of competition. With competition comes choice. Of course, as a shareholder, I rather hope you’ll choose Microsoft! It seemed a few years ago that other than a few bolt-on services, moving virtualisation to the cloud was about all you could do to innovate. I hope Server App-V really sets the cat among the pigeons and we start to see more and more creative levels of innovation coming out across the entire cloud industry.

I think Microsoft has taken the view of the long-game. When you think, with the core infrastructure components Microsoft has at its disposal, it would have been easy to just host VMs in cloud data-centres on Hyper-V. But that’s not what happens. And to support the long game, there are even additional services to make plugging enterprise applications in to the cloud easy. I’m thinking here of App Fabric Service Bus and App Fabric Access Control Service. With the new ACS in App Fabric Labs (in CTP as I write), it’s not far off selecting a few check boxes and typing in a few URLs to get your Active Directory authenticating users to your cloud applications. As time advances, the simplicity of these sorts of configuration will get simpler and simpler. In fact, it’d be pretty difficult to make them much simpler for accepting authentication from popular sites like Facebook, Google, Yahoo and Live ID. In the new ACS portal, you just click a button!

As more and more core infrastructure services wend their way in to PaaS cloud technologies, this is going to make things easier and easier to deploy applications to the cloud. I can see a day, some years in the future when it will be no more difficult to deploy an application to a PaaS cloud, like Windows Azure that it will to deploy to an IaaS cloud.

image

What I’m showing in the graph are the 2 counter-balancing areas of difficulty that have to be considered when selecting either a PaaS or IaaS model. PaaS applications are more difficult to deploy because the apps have to be specifically engineered to work as scale-out, multi-instance entities. IaaS applications can “just be”. So the movement of an existing application to IaaS is simpler. Create the VM, install the application, fire the VM up in the cloud operators datacentre.

It’s once the application has been deployed that the on-going task of managing the underlying OS has to be taken in to consideration. It’s a sort of trade-off. You trade ease-of-deployment, but it bites later when you are wedded to the management of the OS and everything in the stack above it, for the life of that application.

With Paas, there is initial difficulty in migrating an application to be a good PaaS citizen and that is a one-time piece of work. Once done, you no longer worry about the management of the OS, the middleware, the runtimes etc. As application virtualisation develops, we’ll see PaaS operators move closer to the bottom left corner of the graph. IaaS can never do that with application virtualisation because the OS is the management problem.

As I said – I think this is a great thing for the industry. Many cloud vendors will need to offer similar services and that gives choice. Innovation stimulates the market which makes it better for all of us. I just hope you choose Microsoft Winking smile

Planky – GBR-257