In-Depth

Checkout Azure

Will developers buy into Microsoft's platform as a service?

At its Professional Developers Conference (PDC) 2008 in late October, Microsoft woke up attendees during the 8:30 a.m. keynote with startling news that appeared to turn its traditional application model on its ear. Chief Software Architect Ray Ozzie introduced a Windows operating system for the cloud that would provide the compute and storage services for services-based applications running on Windows 2008 servers in Microsoft's own data centers.

Ozzie also unveiled the Azure Services Platform for developers, which can be used to extend local apps with services as well as build Windows cloud-based systems. The first public preview of the platform as a service, made available to PDC attendees, consists of .NET Services, SQL Services and Live Services for access control, service bus integration, federated identity, data storage and synchronization with devices, and Microsoft's Live family of applications. These tools and services can be used "a la carte," according to Microsoft, for building and testing services-enabled applications designed to scale up or out as needed, on developers' desktops in Visual Studio (VS) 2008.


If the winds of sweeping change hadn't fully registered to the 8,000-plus Windows and .NET developers in attendance, one peek at Office 14 and Microsoft's plans for Web-based versions of Word, Excel and PowerPoint applications delivered a clear message. The software plus services era was in full swing at Microsoft.

Bob Muglia, senior vice president of Microsoft's Server and Tools Business, says services are the "fifth generation platform" following monolithic apps, client-server, Web and Web service -- or service-oriented architecture (SOA). "What we see is there's a lot of evolution between the SOA platform and services platform like Azure in the context of SOA applications that people have built," Muglia explains. "As they modify them to take advantage of the scale out characteristics of Azure, they can take and reuse a great deal of the work that they've done."

How will the role of traditional IT change in an Azure services scenario? Merely outsourcing Windows Server or SQL Server in the cloud doesn't fundamentally change the cost of your operations, asserts Muglia. Services platforms are architected so that they don't need human intervention to keep running. "That's why we say it's a new programming model," he explains. "If you re-engineer the software so that it's self-maintaining, then those costs can be dramatically reduced and we can save IT a boatload of money. This is really what this is about in the long run."

Application by Application
It's important to understand what Microsoft is not doing with Azure, says Al Gillen, vice president of System Software for research firm IDC. "They're not offering a general purpose 'Windows Cloud,' where once you're done managing Windows servers you can take all your apps and data and put them on an Azure Services Platform," he explains. "There really isn't an ability to do a direct migration from your in-house environment out to this services platform."

But what corporate and third-party developers can do is merge the Azure Services Platform together with applications being built internally, he says.

The first community technology preview (CTP) of the platform supports .NET 3.5 managed code only. At PDC, Microsoft announced its plans to support native code, Ruby, Python, PHP and the Eclipse development environment. For now, Microsoft is pursuing the right strategy, believes Gillen, by giving its large base of loyal ISVs an environment they can consume and use almost immediately.

"For an average IT shop with VS skills, to consume the Azure Services Platform is actually not rocket science for them," Gillen says. "It's smart on Microsoft's part to make it easy for this huge group of [VS] developers and turn them into developers that can write for the Web tomorrow."

"Our goal with Azure and Visual Studio is to take and infuse an application model into something that the average developer can build," says Muglia.

First Preview
In the first preview of the Azure technology, developers can build .NET 3.5 apps (Windows Communications Foundation, for example) using VS 2008 ASP.NET Web project templates, and new service project templates found in the Microsoft Windows Azure Tools for Microsoft Visual Studio October 2008 CTP. The tooling allows developers to test and debug their app offline in a cloud simulation environment enabled by VS integration with the Azure development fabric controller and storage found in the Windows Azure SDK. When an app is ready for deployment, developers repackage it for the cloud by clicking "publish" in VS, which brings them to the browser for the Azure Developer Portal, accessed with a Windows Live ID.

"I found it very easy to create a basic, simple data access and update application within Visual Studio with a cloud data source and exceedingly simple to just move the whole thing to Azure," says Roger Jennings, principal at Oakleaf Systems, who used the Table Services in the Windows Azure foundation for data storage.

What preview testers like best is the ease of the cloud deployment in comparison to Amazon.com's Elastic Compute Cloud (EC2), which requires a lot of administrative work, observes Jennings. "With Azure you can move it with basically two clicks," he says. "One to make a stage version for testing and then with one click you can convert that stage version to a production version that's accessible by your customers or by other users. That's really neat -- works like a champ."

Scaling, load balancing and high availability, "that's all unattended," says Jennings. "All you have to do is set the maximum number of instances that you're willing to pay for. Other than that, it scales automatically and I think that's going to be a big advantage of Azure."

In future CTPs, Microsoft will need to give developers more instances to test. "Right now, you're stuck with one or two instances of applications that you can test," says Jennings. "I want to have more than one app at a time -- five or 10 would be nice."

Roger Jennings, Principal, Oakleaf Systems "I found it very easy to create a basic, simple data access and update application within Visual Studio with a cloud data source and exceedingly simple to just move the whole thing to Azure."
Roger Jennings, Principal, Oakleaf Systems

Prescriptive Architecture
In addition to the app code, developers supply Azure with the role-based service architecture and configuration settings. Building the app in familiar VS 2008 tooling is a huge benefit, but the Azure service architecture may present a challenge for many .NET developers.

Microsoft's architectural approach to Windows Azure is markedly different than the one taken in building the server and desktop versions of Windows. Azure is purposely much more streamlined with a smaller code base and much faster. "When Microsoft builds an OS they think about the millions of combinations of hardware devices and software they must support," says Gillen. "But with the Azure Services Platform they've said, 'we have these two or three storage platforms -- period. The hypervisor will have this set of attributes -- end of discussion.'"

Azure requires a specific architecture. Your Web site is one role, and then there are worker roles, explains Rockford Lhotka, principal technology evangelist for Magenic Technologies Inc., who attended PDC and went to numerous sessions on the technology. "The workers are services but they're only available inside your application. Although this architecture has been around for a long time, it's not a very common architecture because it's asynchronous and it's message-based. For all that everybody talks about SOA, not very many people actually do it. And this is actually SOA."

This architecture is currently found in large enterprise applications at companies like Visa or General Motors, according to Lhotka, where IT has to spin off background batch jobs. "And all of a sudden -- at least in the Microsoft world -- it's being made available to pretty much everybody, even for small applications, so trying to figure out how to use that effectively I think is going to be interesting," he says.

"If you think about the thing as having three parts: there's the client running in your browser, and then there's the Web role running a Web application in Azure, but then if the Web role needs to do background work, it can spin it off to a worker and that worker is kind of behind the scenes to you the consumer, but it's actually a service -- but it's not a Web service," he continues.

"Another scenario is that the client is actually a totally different application that's calling a Windows Communication Foundation service that's hosted in Azure and that would be running in the Web role because it's part of the Web UI and then it might have to do background work that it would also have a worker do. And it's that worker part that I think most people don't do today. I'm not saying it's overwhelming, but I think it's an area where people are going to have to learn how to use it and exploit it and be effective with it."

Jennings downplays the role of existing services for companies looking at Azure. "I think that the use of Azure is probably going to be independent of an organization's use of Web services because the service is going to be somewhat different than today's service-oriented architecture," he says. "It is somewhat like Salesforce. People use Salesforce who may not have any other Web service-based development."

Rockford Lhotka, Principal Technology Evangelist, Magenic Technologies Inc. "My primary thought is, I'll get more excited about Azure once they give us some inkling of the pricing -- does it apply to me and my employer, or only to my biggest customers? That's going to temper how enthusiastic I am -- why learn it if I never get to use it? "
Rockford Lhotka, Principal Technology Evangelist,
Magenic Technologies Inc.

Beyond the Relational Database
Jennings believes the biggest challenge for many developers will be moving from relational data storage to Azure's non-relational storage (BLOBS, tables, streams) and SQL Data Services' entity-attribute-value model. "I would've expected Microsoft to do something like Amazon EC2 and provide SQL Server in the cloud, but they didn't," Jennings says. "The reason is because any relational database has a file-based data source and having multiple server instances connect to a single-file data source isn't practical -- at least with the current version of SQL Server 2008."

This could be a big deal for developers who have never done non-relational work, agrees Lhotka, who started his career before RDBMSes were mainstream. "Effectively we were using what today you would call tables or entity stores, basically where every table was entirely independent and we wrote tons of really great software doing that," he recalls. "I'm not saying that relational is bad or trying to pass a value judgment, but it's not the end of the world if you can't do a join."

Developers will have to set up table storage, for example, so that Microsoft knows how to scale the apps on demand. "If you have a lot of address data for the United States, you might tell [Azure] that your federation column is a state, and that basically you're giving Microsoft permission to put each state on a different server," says Lhotka. "I do think that Microsoft will scale for you but you have to help them because they can't necessarily guess what your data looks like, or where the hot spots are in your application."

Web developers who use session-state will also likely have to rethink how they build their applications. "I suspect that if you're running something for Azure and you expect to get fault tolerance and super scaling you'll probably have to not use session-state," says Lhotka.

The Windows Azure storage in the CTP works, Jennings says, but Microsoft still needs to provide a full set of C#- and VB-supported libraries for Table Services and for all of the SQL Data Services. "The current helper library they're providing isn't adequate for production use," he says.

When to Use It
Building a Web service is one thing, but deciding when and how to use Web services and other background services to support a growing population of desktop and mobile device users may present the larger challenge.

"The reality is, a Web services platform like Azure is as broad in its target as Windows or Windows server is, so it really ultimately targets everybody," says Muglia. "The kind of questions you have to ask in some sense is, where are you targeting first? We really are going after a couple of major audiences in the early days."

Early adopters targeted by Microsoft include Web startups, hobbyists who can get something up and running quickly, and enterprises with unique business problems, such as those that need to connect with a variety of suppliers and customers. Azure technologies such as the "Internet" services bus and federated identity technologies (code-named "Geneva") planned for .NET Services can be adapted to address these types of issues, according to Muglia.

Microsoft's pricing model will also be a deciding factor for many developers and IT shops, says Lhotka. "My primary thought is, I'll get more excited about Azure once they give us some inkling of the pricing -- does it apply to me and my employer, or only to my biggest customers? That's going to temper how enthusiastic I am -- why learn it if I never get to use it?"

Muglia says Microsoft is planning three pricing models. Some of the services, such as Live ID, will be advertising-funded. Others will use a per-user charge similar to the SharePoint and CRM model. The third pricing model will be subscription-oriented or utility-based, with per-usage fees for some services. "The specifics of that we're still working through and we'll announce those sometime [this] year," says Muglia.

Get off of My Cloud
In addition to questions about pricing, Microsoft's platform-hosting model -- which demands that users run Windows Azure services out of Redmond's mammoth data centers -- may do little to entice corporate IT shops to try out Windows Azure.

Some industry observers believe, however, that Microsoft will eventually give its traditional Web hosting partners a piece of the Azure action. "When the Azure Services Platform matures to a certain level, will Microsoft sell subscriptions to hosting partners? I don't think they'll have any choice. Once it reaches a certain level of maturity the partners can support it themselves," says IDC's Gillen.

Microsoft sees Google Inc. (Google Apps Engine) as its primary competitor, and views Amazon.com Inc. as a competitor, customer and potential partner. "They're now hosting Windows and we're thrilled about that, and I want to work with them to broaden their usage of Windows as much as possible," says Muglia.

Google's App Engine is less flexible than Amazon's platform, which supports multiple operating systems and database servers, in that it requires a stack similar to the one used by the search powerhouse -- Python app servers, Bigtable data storage and the Google File System.

More to Come
With Azure, Microsoft has already made a lot of the cloud architecture choices for you. "Microsoft has basically said, 'this is how we're making it work,'" says Lhotka. "And I look at that and I think, 'well, that's OK because -- frankly -- a lot of people make bad decisions and the architecture that Microsoft has put out with Azure is not the easiest one, but it is a good one."

Jennings is very optimistic about the Windows Cloud based on what he's tried out in the first CTP. "I think the functionality is going to be frozen for quite a while. I think they want user response to what functionality they should implement," he explains.

"There's a lot more coming, this is just the beginning," says Microsoft's Muglia, who notes that services will likely become available at different times. "We expect the major services to come online in 2009 and certainly by 2010 we will be seeing all of these things become production quality."

"The ability to publish something into the cloud easily is great," says Lhotka, "but for business software, there needs to be some control over who publishes into the cloud and how you do it, such that it doesn't cause issues with current users and that sort of thing. I think that Microsoft still has to finish telling us their story -- or maybe they don't have that part yet, I don't know -- but there are things like that that are still questions in my mind."

Ed Scannell contributed to this article.

Reader Comments:

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above