Trending Tags

Follow

About Michael J. Miller

Miller, who was editor-in-chief of PC Magazine from 1991 to 2005, authors this blog for PC Magazine to share his thoughts on PC-related products. No investment advice is offered in this blog. All duties are disclaimed. Miller works separately for a private investment firm which may at any time invest in companies whose products are discussed in this blog, and no disclosure of securities transactions will be made.

The Emerging Cloud: Thoughts From PDC

I've spent the past couple of days at the Microsoft Professional Developers Conference, mostly attending sessions on its various cloud services. I continue to believe that cloud computing is going to transform IT over the next few years, and Microsoft has perhaps the widest set of solutions currently available for cloud computing. Of course, competitors like Amazon Web Services, Salesforce.Com, and Google continue to add lots of features as well. But the more I hear and the more I think about what that means in a real corporate setting, the more I worry that there are lots of things that still need to be solved.

After the jump are some thoughts on and what developers face if they choose to use cloud computing in general, and Microsoft's offerings in particular.

While the move to cloud computing sounds pretty straightforward, there are lots of details behind it. Of course, there are many levels of cloud computing ranging from Infrastructure-as-a-service--things like Amazon Web Services (where the provider maintains the data center hardware, but the customer can run whatever software or platform they want, but are responsible for maintaining it) up to software-as-a-service (Saas) like the Salesforce.com CRM application, Google Apps, and Microsoft's Office 365.

Microsoft is clearly positioning Azure in between those cases as a Platform-as-a-Service (PaaS) offering, where developers can create their own applications, but Microsoft creates and maintains the software stack, including the operating system and the run-times. (Other PaaS providers include Salesforce's Force.com and Google AppEngine.)

As such, Microsoft calls Windows Azure is "an OS for the data center" as it lets a developer treat the data center as if it was a machine with a shared pool of compute, disk, and network. But just to confuse things, Microsoft just announced a new "VM role" for Azure, which lets a customer run their own virtual machine, where the customer is responsible for setting that up and maintaining it (which pretty much makes that an infrastructure-as-a-service play.)

This is in addition to a "Web role" for hosting a Website and the most common "worker role," where the customer creates their own code. Many applications will have both a Web role and a worker role.

You typically provision an application through a portal, which sets up lots of things within Azure, including setting up multiple instances of your application (typically at least two, so one can fail or be updated while the other runs, keeping the service available.) You can set things such as limits on resources (such as how much computing power you want to use) and set locations for your data.

Once the application is provisioned, you can create code using various languages and runtimes (Microsoft has been pushing its own .NET and .ASP runtimes, but just announced support for Java as well.) And you can hook up multiple other services, using Azure AppFabric, the services bus.

Azure offers a variety of storage options. Windows Azure storage has structures ranging from simple BLOBs (for storing individual "large objects"), page BLOBs, an Azure Drive (essentially a page BLOB that can be loaded as traditional drive); to a Windows Azure Table (essentially a massively scalable no SQL database for structured data). For other applications, developers would choose SQL Azure for storage.

But there are limits on size and throughput, so a developer would likely need to partition the application. There seem to be many other storage issues as well, so developers can optimize their applications. Of course, these are issues developers face with traditional applications, but the methods and details are different.

Large enterprises never move everything at the same time, so it's just not realistic to believe that one day a company will be running traditional servers and then they'll flip a switch and everything will be in the cloud. To the extent that companies move to "the cloud," it will be a long process - and that means traditional data center equipment and applications will need to connect and interoperate with both emerging "private cloud" infrastructures and the public cloud.

Microsoft either offers (or is planning to offer) all sorts of ways of connecting servers, applications, and data - because there are lots of different applications with different requirements - for data security, latency, compliance, etc.

Windows Azure Connect, which is set to go to a community tech preview release shortly, lets applications connect on an IP level, which works for having one application talk to another. In the future, Microsoft says it will offer solutions for connecting on-premises VPN devices. There are lots of security issues, so the company has different tools for connecting Active Directory or federating identity among Azure and a company's directory. An AppFabric Service Bus provides application layer connectivity and messaging using a secure connection; and that's probably an answer for aggregating multiple services.

SQL Azure Data Sync synchronizes data among SQL Azure in the cloud and on-premises SQL Server databases. That makes sense if the same data needs to be used by multiple applications, some in the cloud, some not; or if you need a local copy of the database for regulatory or compliance reasons. Additionally, there's a new caching service that lets you cache data in the cloud, which would make sense for performance in some cases; or perhaps if you have data that you don't want to have a permanent copy in the cloud. Of course, in all of these cases, there are lots of issues around security, authentication, and latency. Some of these products are out now, but a lot seem to be in very early stages or are just promised for the near future.

Some organizations will want to run a cloud-style application, but would like to host it in their own data centers. Microsoft developers were clear that Azure itself will not be available for sale for companies to deploy on their own hardware, citing the need to manage the software and how it only supports a very prescribed number of hardware configurations. Instead, the company has announced the Azure appliance - but right now, that's only being tested by a handful of select companies - and Microsoft hasn't set a data for public availability.

So far, Microsoft says Azure has 20,000 applications to date, both from startups and corporate developers.

Among the examples Windows Azure General Manager Doug Hauger discussed were applications from RiskMetrics, which runs a financial analysis service on Azure today, and Lokad, which provides retail sales analysis for some of the largest retailers. He said a retail bank was running its front-end customer service on Azure, connecting to its core in-house back-end data services.

Microsoft's Jamin Spitzer agreed that regulated industries - such as healthcare, insurance, and financial services firms are among the slowest movers to the cloud, because of concerns about compliance and personally identifiable information. Spitzer said Microsoft needs to deliver and demonstrate security and privacy issues "beyond the shadow of a doubt." But other companies are moving, with Microsoft citing particular wins in the public sector with city and state governments, such as the City of Miami.

Obviously, applications like mail and collaboration (where Microsoft's 365 service is competing with things like Google Apps for the Enterprise) and CRM have been early wins for Software as a Service applications. But for enterprise applications, things like very "burst-y" applications and development and test are likely to be the first choices, Spitzer said.

Over time, cloud computing should let small and mid-size businesses to run the kind of applications only large enterprise could do before - you can already see this for CRM, which Salesforce has been pushing for a decade now. And large enterprises should be able to create all sorts of new applications that can require a lot of hardware.

It's all very exciting - it's likely to change how companies view IT pretty dramatically. But there are lots of things that providers have to improve and that developers have to learn before this can really be the model that defines enterprise computing.

Automatic Renewal Program: Your subscription will continue without interruption for as long as you wish, unless
you instruct us otherwise. Your subscription will automatically renew at the end of the term unless you authorize
cancellation. Each year, you'll receive a notice and you authorize that your credit/debit card will be charged the
annual subscription rate(s). You may cancel at any time during your subscription and receive a full refund on all
unsent issues. If your credit/debit card or other billing method can not be charged, we will bill you directly instead. Contact Customer Service