Azure: Flex on IaaS, Keep PaaS Pure

I recently commented on Mary Jo Foley’s post Can Microsoft Save Windows Azure?  The key point of my post was that IaaS is good for Azure because it is good for adoption rate.

This change does raise concerns for software developers, however. On the topic of increasing IaaS in Azure, Mary Jo wrote:

This means that Microsoft will be, effectively, following in rival Amazon’s footsteps and adding more Infrastructure as a Service components to a platform that Microsoft has been touting as pure PaaS. [highlight added]

For software architects and developers, Microsoft PaaS approach with Azure has been a boon. Many non-developers would be surprised to know how much “infrastructure impact” creeps into system architectures and implementations. The (historically) pure PaaS Azure, however, provides us with the ability to implement highly available, scalable and performant systems with almost no infrastructure concerns.

Many consider Amazon to be the top cloud computing provider.  Amazon Web Services (AWS) provides a very good set of building blocks which (increasingly) work well together. From a developer’s perspective, however, these building blocks require too much “IaaS overhead.”   Determining which building blocks will be needed is the first hurdle. But then come the “which to use in what?” hurdles. Which distro and version of one of the Linuxes, which database type (SQL, NoSQL), how will the various systems communicate with each other, etc., etc., etc.

With Windows Azure, however, a developer can implement code on a developer workstation (using the Compute and Storage emulators).  When ready, the developer can deploy code to Azure directly from Visual Studio.  Relative to just about every other cloud provider, Azure developers start out much further down the road (= saves a lot of time).

 

In PaaS, Purity Matters

So how does Azure’s IaaS push impact developers?  Developers will be negatively impacted by letting IaaS pull in PaaS impurity.  In other words, if Microsoft muddies the existing Azure development platform (code interfaces), the level of “IaaS Overhead” increases.  As the level of IaaS Overhead increases, the time and cost benefits of PaaS erode.

Consider the Win32 days: Microsoft’s progressive push toward a standard set of API’s for Windows created a competitive advantage.  Although there were gaps (e.g., API’s supported on Windows NT, but not Windows 95), Win32 was far more pure than any other API at the time.  Companies that developed software for the myriad Unix systems encountered far more platform related costs than companies developing for Windows.  If Microsoft had tried to support Sun, IBM, HP and other Unix libraries, the advantages of Win32 would have vanished.

Hopefully Microsoft plans to keep the PaaS side of Azure pure, while letting the IaaS side flex.  Otherwise, they will undermine one of their most significant competitive advantages – a pure PaaS.

Periodic Table of Cloud Computing

David Pallmann, General Manager at Neudesic has published one of the best explanations of Cloud Computing in Windows Azure Design Patterns.  The title is a double misnomer – it isn’t just about Azure, and it is far more than Design Patterns.

Pallmann’s Periodic Table of Cloud Patterns is one of the best tools for visually capturing the various components and facets of Cloud Computing.  He uses these elements very effectively to touch on Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS) before delving into Windows Azure’s PaaS offerings.

Although the slides cover Windows Azure, Pallmann’s points are easily abstracted to Cloud Computing in general.  And he provides a very solid foundation for digging into areas such as:

 

  • Claims-based Security
  • Service Bus (resilient queue)
  • Storage – Blobs, Tables, Queues
  • Database – SQL Azure
  • Compute Instance Types

 

Overall an excellent presentation for Cloud Computing and well worth reviewing!

Azure 1.4 SDK and Tools

Yesterday (3/9/11) Microsoft announced updates for the Windows Azure SDK and Tools (VSCloudService.exe).  As the download page indicates, this SDK release’s primary purpose is to address stability issues.  Other improvements include:

  • Azure Management Portal – Improved responsiveness
  • Azure Connect – Multi-admin support and installation for non-English Windows
  • Azure Content Delivery Network (CDN) – Provides for delivery of secure content via HTTPS

Be aware also that the 1.4 SDK installer automatically uninstalls previous versions.  So, if you need 1.3 for a while still, you’ll need to keep it safe.

Download the SDK & tools here.

Amazon CloudFormation – BYO PaaS?

Amazon Web Services (AWS) recently announced the addition of CloudFormation to their offerings. With this addition, AWS continues to grow from an IaaS provider toward becoming a PaaS provider.  Will AWS will become a PaaS provider in terms a consistent programming interface (API) that abstracts the underlying cloud resources?  It not likely; certainly not soon.  Microsoft’s approach with Azure – start with the platform and then open the infrastructure – is better for true PaaS.  AWS offers so many divergent resources that building a consistent API for PaaS is near impossible.  From a technical perspective, their best approach might be to adopt (and heavily influence) OpenStack which has been experiencing good growth and adoption recently.  That direction is not good for business, however, since applications would be inherently portable to other providers.

So what’s the point of CloudFormation?  Amazon’s announcement states that CloudFormation aims to provide “an easy way to create a collection of AWS resources and provision them in an orderly and predictable fashion.”  Is this an IaaS or PaaS capability?  CloudFormation primarily falls into the Systems Management space which is definitely IaaS.  (The fact that AWS does or may expose programmatic interfaces to CloudFormation reaches into the PaaS arena, but it isn’t Cloud Formation’s raison d’être)

This new AWS functionality will certainly benefit SaaS providers.  I worked with a SaaS provider a year or so ago which hosted its own servers.  Their clientele were Fortune 500-types, so the company hosted a new set of hardware for each new client.  If the company were able to host its SaaS in AWS, it would save on capital outlays for new customers. CloudFormation would further cut costs on administrative personnel, freeing people to stand up temporary SaaS environments in AWS, for example, which would facilitate the sale process.

Interestingly, companies wanting to build special purpose (niche) cloud platforms should be able to leverage CloudFormation into their own PaaS.  As an example, companies could use AWS to host OpenStack and use CloudFormation for provisioning and management.  Such a company may gain enough customers and attention to be gobbled up by Amazon itself.