Azure Batch: A mash-up of PaaS and IaaS

As cloud services become more automated, the line between IaaS and PaaS continues to blur -- and large-scale cloud deployments get a whole lot easier

Most cloud architectures focus on the IaaS aspect of cloud, using it as a replacement for infrastructure. It’s a logical first step that builds on tools and techniques you’re likely to find in your own data center. The move from on-premises to cloud can be handled with a simple physical-to-virtual transformation, then an upload, then a switchover.

Take Microsoft’s Azure Batch service, for example. What the tool does isn’t rocket science -- you can use it to create the virtual machines you need, load them with data, and aggregate and process the information they produce. But Batch also provides a PaaS framework to host and batch your code, handling the systems management tasks for you, ensuring that unwanted virtual machines are turned off when no longer needed.

The Azure Batch service creates and runs a pool of similar virtual machines running your software over your data. You don’t need to build, run, and administer the pool -- it’s all handled for you.

Azure Batch is an interesting example of a new generation of PaaS services that look and behave like traditional IaaS, but with the underlying infrastructure and operating system managed for you. It’s a model that makes sense, one on which IaaS is likely to converge.

Tools like Batch are abstractions of existing programming models. Not all applications can be turned into parallel computing problems, but if they can (for example, pharmaceutical design, image rendering, or large-scale financial modeling), then you can use the libraries Microsoft provides to turn your code into batch code, pre-process your data appropriately, and launch an analysis. Talking to one user at TechEd Europe, it’s clear that PaaS tools like this are changing the way people work – in that case, by running financial risk analysis for a wider set of scenarios than they could have with traditional analytical techniques using their own servers.

There are plenty of other places where PaaS can take the familiar IaaS model and lighten the management workload. Cloud-hosted Web servers are an obvious choice, with high-density, high-performance infrastructure that’s completely abstracted from the easy-to-configure website you’re building and running. Treating those Web servers as PaaS implementations makes sense, as the only contact you have with the underlying infrastructure is through portal configuration tools that handle scaling.

It’s  best to think of IaaS as a commodity, with PaaS as a value-add. With IaaS you’re still managing the servers you’re using, even if they’re running on a virtual infrastructure that’s managed by Microsoft or Amazon. You’re responsible for keeping them secure and updated and for ensuring that they’re running the right software. Drill down into a PaaS environment, and it’ll run on that same infrastructure, using the same virtual machine images you’re pulling from the service library.

Other PaaS items go further, adding abstractions from the underlying IaaS fabric. Another relatively new Azure service, for example, is Machine Learning. Looking like a series of RESTful APIs, it too is a cluster of virtual machines running custom software. You don’t need to know what the code is or the specifications of the virtual machines; all you need are the machine learning APIs and a place to store your data.

While many PaaS services hide the underlying infrastructure, the fact that you can combine PaaS and IaaS in a single application makes it clear that the two are often deeply linked -- and the relationship can go both ways. That disk you’ve initialized for your virtual machines on an IaaS platform is likely to be an object in a storage platform, not a space carved out directly from the underlying storage fabric.

It may look like a disk to your apps, but in practice it’s another binary object, under the control of the service’s storage engine. You don’t need to know it’s been globally replicated in triplicate -- you simply use the same code you’ve always used to work with your data.

It’s no longer a question of whether to lift and port existing infrastructure to cloud services. Instead, we now need to look at what we want our software to do and compare that to the capabilities of other cloud platforms.

Those capabilities tend to be hard to manage in IaaS, but trivially easy to take advantage of in PaaS. By letting us mix and match the features we want, cloud platforms make it easier than ever to take advantage of their capabilities. 

Copyright © 2015 IDG Communications, Inc.