Windows Azure AppFabric: A Strategic Core of Microsoft's Cloud Platform
 
15 November 2010

Yefim V. Natis, David Mitchell Smith, David W. Cearley

Gartner RAS Core Research Note G00208835
 

Continuing strategic investment in Windows Azure is moving Microsoft toward a leadership position in the cloud platform market, but success is not assured until user adoption confirms the company's vision and its ability to execute in this new environment.





Overview



In the nearly one year since Microsoft Azure AppFabric was unveiled at its PDC 2009 conference, much of the promised technology has been delivered, and important new capabilities have been introduced for 2011. The Microsoft cloud application platform is gaining critical technical mass. CIOs, CTOs, project leaders and other IT planners should track the evolution of Microsoft Windows Azure investments and architecture as potentially one of the leading, long-term offerings for cloud computing.

Key Findings
  • Microsoft continues to make strategic investments in product development and marketing, and in financial commitments to achieve leadership in cloud computing. Leadership in cloud computing has become a companywide priority at Microsoft, as leadership in Web computing had been a top priority for the company in the 1990s.

  • Microsoft intends to be a key player in all three layers of cloud software architecture: system infrastructure services, application infrastructure services and application services, and to apply its technology to private and public cloud projects.

  • The Windows Azure AppFabric has emerged as the core application platform technology in Microsoft's cloud-computing vision.

  • Various project teams at Microsoft are contributing to the company's evolving cloud-computing technology and vision. These teams are not always synchronized to deliver coordinated product road maps, which can create confusion in the market about the company's overriding strategy.

Recommendations
  • Microsoft technology users interested in cloud computing can anticipate that the company will deliver in the next two to three years a competitive cloud platform technology. However, the early offerings are incomplete and unproven. Users planning to use Microsoft cloud computing in 2011 should be prepared for ongoing changes in underlying technologies, and some advanced programming effort to build a scalable multitenant application.

  • IT planners considering cloud-computing projects should include Microsoft on their candidate long lists, with the understanding that in the short term the Microsoft cloud platform technology is still "under construction."




Table of Contents



    
Analysis

    
AppFabric Container
    
AppFabric Services

    
Service Bus
    
Access Control
    
Caching
    
Integration
    
Windows Azure AppFabric Composition Model and Composite App Service
    
Other Services

    
Windows Azure Marketplace
    
Influence on Other Microsoft Projects

    
Microsoft Software as a Service (Dynamics)
    
BizTalk Server
    
More Work Is Still Ahead
    
User Advice


List of Figures



Figure 1. 
Microsoft's Windows Azure AppFabric Architecture Plan
 

Analysis



Windows AppFabric was announced in 2009 as two independent technology stacks — one delivered with Windows Server 2008 for use on-premises and the other as part of Windows Azure. The long-term intent was to unify the two sides of the offering despite their initial isolation. This plan was part of the strategic vision of a hybrid computing environment where applications are distributed between on-premises and public cloud data centers. To that end, earlier in 2010, Microsoft announced its Windows Azure platform appliance offering — a cloud-enabled technology available to partners and some IT organizations to establish a Windows Azure cloud service environment outside of Microsoft data centers (as of this publication date, none of these is yet in operation, although several partners are in the process of deploying it).

At its PDC10 conference, Microsoft unveiled the next generation of technologies that will become part of Windows Azure over the next 12 months. In this updated vision, Windows Azure AppFabric becomes a centerpiece of the Microsoft cloud strategy, delivering advanced forms for multitenancy in its new AppFabric Container, integration as a service, business process management as a service and other core middleware services. Windows Azure AppFabric (see Figure 1), together with SQL Azure and the Windows Azure OS form the core Microsoft cloud offering — the Windows Azure Platform.

Figure 1. Microsoft's Windows Azure AppFabric Architecture Plan

Figure 1.Microsoft's Windows Azure AppFabric Architecture Plan

Source: Microsoft (October 2010)
 





AppFabric Container

The AppFabric Container is the new core technology announced by Microsoft. Previously, the multitenancy and elasticity of Windows Azure had been implemented exclusively in its Fabric Controller — a feature of the base Windows Azure offering. Fabric Controller, allocating and managing configurations of virtual machines (VMs) on demand, provides the shared-hardware model for multitenancy and elastic resource sharing. The new AppFabric Container introduces a new level of abstraction in the Windows Azure technology stack built on top of the underlying Windows Azure Fabric Controller (Microsoft refers to it as "virtualized middleware," in contrast to the VM layer below it). While applications developed to the level of Fabric Controller use the Windows Azure Software Development Kit (SDK) to achieve the shared-hardware resource sharing, future applications developed for the Windows Azure Platform will use the new AppFabric Container programming model (initially used internally by Microsoft engineering for AppFabric services such as Composite AppService). This programming model (now Microsoft-internal) may represent a new programming model for cloud application development using .NET core languages. AppFabric service implementations, developed using the AppFabric Container programming model and runtime, will be isolated from most cloud-specific programming requirements. The runtime engine of the AppFabric Container will, over time, manage the runtime isolation of tenant execution instances and elastic resource allocation to tenant instances according to the contracted SLA of each tenant. This is the shared-container model of multitenancy — potentially superior in its opportunities for agility and cost reduction, as compared with the shared-hardware model (but requiring the development of new skills to use the new APIs of AppFabric Container). In combination with SQL Azure, AppFabric Container can be used to achieve shared-everything multitenancy, although it is not clear whether Microsoft would initially deliver that integration.

With the introduction of AppFabric Container and the VM role in Windows Azure environment, Microsoft now supports four types of cloud applications using Windows Azure as a platform:

  • Shared-nothing multitenancy (hosting): Using Windows Azure VM role, traditional .NET applications originally deployed off-premises can be transported to Windows Azure VM role. Few, if any, programming changes are required, and some self-service improves the management process, as compared with traditional custom hosting, and creates some sense of "cloudiness." The tenants may be co-located on the same physical machines (due to the use of virtualization), but no resource sharing is happening (thus the "shared-nothing" designation).

  • Shared-hardware multitenancy (basic cloud): Using Web or Worker roles and Windows Azure SDK, there is mostly traditional .NET programming, with some limitations and with the addition of Windows Azure SDK APIs to achieve dynamic allocation of VMs. This can deliver elastic, on-demand allocation of VMs to tenants.

  • Shared-container (advanced cloud; now used only internally by Microsoft engineering): Using Web and Worker roles and the AppFabric Container programming model, some additional skills are required to master the new AppFabric Container APIs, but the language basics of .NET are retained. This delivers fine-grained resource elasticity and low redundancy in the consumption of resources.

  • Shared-everything (advanced cloud, now possible to use only internally by Microsoft engineering): Using the shared AppFabric Container and the shared SQL Azure database as well. Here, all computing resources — process- and data-related — are optimized across tenants to deliver maximum resource utilization, minimal redundancy in resource allocation and the most responsive dynamic elasticity.

The spectrum of offerings might prove confusing to some prospects, but with proper product positioning can amount an advantage; no scenario fits all user situations and needs. Some users will look for cloud services mostly to gain an opportunity for self-service-assisted provisioning of basic computing resources. Others will want to reduce the costs of running their existing applications, others will look for better management of unpredictable workloads of their applications and others yet might look for a cloud platform to build new, socially integrated context-aware applications. Offering a choice in cloud-style platforms as a service, Microsoft may be able to attract user projects of different categories. However, the success of such propositions will depend on Microsoft's opening the direct AppFabric Container programming to external developers, and on the company's ability to clearly and simply explain the trade-offs of the different available approaches that it offers its customers and prospects.




AppFabric Services

The AppFabric Services now listed have all been developed by Microsoft; they deliver middleware functionality and thus begin to complete the platform, but they are also compliant with AppFabric Container application software. If Microsoft developers are enabled to use AppFabric Container programming APIs directly, these new business application services would be similar in architecture and cloud characteristics to the AppFabric Services developed by Microsoft. This shared architecture would position Microsoft for effective management and governance of its executing environment, crossing natively between the middleware and business software executing in its cloud.




Service Bus

Microsoft announced this service at PDC 2009, and delivered it in April of 2010. This technology originates with the offering formerly known as Biztalk Services. The Service Bus service in not quite an enterprise service bus (ESB) suite, as the name might imply. In its early version, it simply delivered basic Internet connectivity into the Windows Azure environment. In October 2010, Microsoft released several new capabilities as a Community Technology Preview (CTP; a beta-status technology) of the updated version of its Service Bus service, allowing reliable messaging, representational state transfer (REST)-style and WS*-style access to and from the Windows Azure environment. The now-CTP technology is expected to reach general availability in 2011. Additional protocols, including Advanced Message Queuing Protocol (AMQP)-based messaging, can be expected to be added over time. Integration functionality, usually found in ESB offerings, is planned to be delivered as a separate future AppFabric Service.




Access Control

Microsoft announced the AppFabric Access Control service at its PDC 2009, and delivered the initial version of the service in April 2010. Access Control provides basic security and identity management for access to and from Web and Azure services. In August 2010, Microsoft released as CTP additional functionality for the Access Control service. In addition to its current support of federation with standard Active Directory and Microsoft Live ID, Microsoft added integration of such identity name spaces as Facebook, Yahoo and Google, simplifying the single-sign-on process for social users of cloud resources. According to Microsoft, the updated Access Control service will support a variety of security protocols, including OAuth WRAP, WS-Trust, WS-Federation protocols, and SAML 1.1, SAML 2.0 and Simple Web Token. The now-CTP technology is expected to reach general availability in 2011.




Caching

Microsoft first announced and delivered distributed caching (formerly known as "project Velocity") as part of the on-premises Windows Server AppFabric in June 2010. This new Microsoft technology enabled advanced, embedded caching in its services and offered the capability for application developers to avoid disk interactions by managing large data images in reliable shared memory through provided APIs. From its initial release, the caching memory space was replicated to ensure data integrity without the use of disk persistence. Although the use of on-disk data stores remains essential to most applications, partial replacement of the disk input/output (I/O) with in-memory stores can dramatically improve the performance and scalability of applications. "Gartner Reference Architecture for Application Platforms for Cloud Computing" includes distributed caching as an essential element in delivering the scalability and performance expected of advanced cloud environments.

In October 2010, Microsoft released as CTP a modified version of its on-premises caching technology as an in-cloud AppFabric Caching Service. The AppFabric caching service utilizes AppFabric Container capabilities and a subset of the on-premises Windows Server AppFabric Caching. Use of the underlying AppFabric Container delivers multitenancy characteristics to the new Caching Service — not available (or required) in the on-premises version. The now-CTP technology is expected to reach general availability in 2011. Microsoft intends to preserve full API compatibility between the on-premises and in-cloud version of its caching technology, although the internal implementation will differ in some aspects for some time. Although the early implementations of Microsoft's on-premises and on-cloud caching both feature ability of remote replication, the two technologies are not interoperable (one cannot use the other as a replication target or a space extension). Multiple advanced features including such interoperability will continue to be added in the next three years to match or exceed the caching capabilities of market leaders.




Integration

In 2011, Microsoft will release as CTP its new Windows Azure AppFabric-based integration service — an integration-as-a-service offering. This service will utilize the transport capabilities of the Service Bus service, and will adopt some of the technology currently part of its on-premises BizTalk Server, such as application and other integration adapters and transformation capabilities. This service is not intended to be a direct port of BizTalk Server, although with time the two offerings will become partly functionally compatible to deliver on Microsoft's on-cloud/off-cloud symmetry strategy.

We believe that application integration and related functionality will be a key requirement in cloud computing in the next five years. While the planned functionality of the AppFabric Integration service is a step in the right direction, it is reasonable to expect that over time AppFabric Platform will also include such advanced integration capabilities as rules management, business activity monitoring, support for trading partner communities and other B2B functionality. Microsoft did not offer a road map for availability of any of these advanced integration-related features.




Windows Azure AppFabric Composition Model and Composite App Service

Despite the name, this service, expected to begin to be delivered in 2011, is not a business process management or composite integration technology. Composition Model here must be understood to be a manifest of the inventory of characteristics and dependencies of a particular application service. The Composition Model articulates a model for application architecture in terms of the component parts that comprise the application, and the internal and external relationships of these architectural components of applications and application services. Some might recognize a similar objective of this AppFabric service to elements of the Service Component Architecture (SCA) adopted by the leading Java Platform, Enterprise Edition (Java EE) platform providers.

The Composition Model is a metadata schema containing detailed information about an application service and its dependencies. Through Visual Studio, the Composition Model at development time can be used for graphical representation of application architecture, impact analysis and deployment planning. At deployment time, the Composite App Service interprets the Composition Model manifest and packages the application Service implementation assuring that all dependencies are resolved. At runtime, the Composition Model can be used for real-time provisioning and updates of resources without interruption of deployed application services.




Other Services

In addition to Windows Azure AppFabric, SQL Azure offers some additional services to an application developer. These include:

  • Relational database services — first delivered in February 2010 and continuously advanced toward compatibility with the on-premises SQL Server database.

  • Database Reporting — expected as CTP in 4Q10 and for general availability in 2011 — a set of tools for reporting against the in-cloud data managed by SQL Azure. Over time, additional support of analytics is expected, though Microsoft has offered no date for such extensions.

  • Data Market (formerly "Dallas") — part of the Windows Azure Marketplace, Data Market service is available now, providing access to data from various Microsoft-approved sources and offered as cloud information services.




Windows Azure Marketplace

The Data Market offering is part of the larger Windows Azure Marketplace. The other part of the Marketplace, to be delivered by YE10, is an application marketplace, allowing users of Windows Azure platform to catalog their applications and services. Along with the elasticity, tenant isolation, self-service and other key characteristics of cloud services, the ability to advertise and locate available services is critical for a public cloud platform. Microsoft Windows Azure Marketplace will allow its partners and customers to seek adoption for their AppFabric cloud services. Such an application marketplace service is offered by most leading cloud service providers, and is essential to attract independent software vendors (ISVs) to the platform in this aggressively competitive market and to allow prospects to find the solutions they need when they need them. A mature cloud service marketplace must allow full encapsulation of the cloud services behind the documented interfaces, providing sufficient information to potential users to not require contact with the producers of the service in order to use it. As the number of Windows Azure partners and their applications and services grows, an advanced application marketplace service will rapidly become essential, and its absence or insufficient functionality a barrier to the continuing growth of this offering.




Influence on Other Microsoft Projects

Traditional to Microsoft culture, separately run internal projects often pursue independent architectures. However, the strategic high-priority initiatives do cut across all of Microsoft efforts. For example, the Internet and Web browser adoption became a priority for all projects in the 1990s; consistent security policies became the priority across all project groups at Microsoft in the 2000s. It appears that the cloud-computing initiative is in this strategic high-priority category, affecting all relevant independent projects run by Microsoft.




Microsoft Software as a Service (Dynamics)

Microsoft Dynamics offers software-as-a-service (SaaS)-style applications primarily to midsize businesses delivering some core CRM and ERP functionality. The applications are built on their own, independently designed platform technologies. We believe Microsoft has made an internal decision that these applications will all eventually migrate to the AppFabric platform, and will become native and standard AppFabric Services.

Of particular interest is the platform that underlies Microsoft Dynamics CRM — often informally referred to as for any relationship management (xRM). This platform is used today to allow CRM customers to customize and expand their CRM services provided by the core Dynamics offering. It is a model-driven, metadata-based programming model. Once Microsoft Dynamics CRM is indeed converted to use AppFabric Container, xRM might become a new programming model for cloud computing in the AppFabric context. This will allow Microsoft to offer its cloud environment to projects looking for the highest level of productivity in application design. Many of today's cloud platform offerings are targeting exactly that prospect base, with proprietary graphical and scripting programming environments to deliver on a key promise of cloud computing: ease of use and short time to results. Microsoft's current .NET-based programming model, the AppFabric Container Framework notwithstanding, will prove to be too hard for many such projects. The xRM alternative can round up Microsoft's offering by attracting the less technically-advanced projects. Considering that small and midsize businesses and the ISVs targeting them are the primary users of cloud computing in its early years, such an offering can become strategically important to ensure the adoption of Microsoft cloud platform offerings.




BizTalk Server

BizTalk Server is Microsoft's long-standing flagship integration platform. The newly announced Windows Azure AppFabric-based Integration service will borrow some technology from BizTalk Server, but is not intended to be a port of BizTalk Server to the cloud. Microsoft's plan to deliver the on-cloud/off-cloud symmetry (portability between the on-premises and on-cloud versions of the same purpose technologies) is not based on the idea of porting existing on-premises, single-tenant products (such as the BizTalk Server) to the multitenant Windows Azure Platform. Instead, Microsoft engineering takes the position that it is easier and more productive to port the multitenant superset version of a product down to the single-tenant subset.

We expect that while some components of BizTalk Server will be used to build the AppFabric Integration service, its core technology will be designed anew to natively support the demands of a multitenant cloud execution. Once established, we expect that the Integration service will be made available on-premises in a single-tenant version to become a new version or a replacement of BizTalk Server. Microsoft is committed to deliver an on-premises version of its cloud Integration service within two years of the availability of the cloud service. Meanwhile, users of BizTalk Server are advised to continue to take full advantage of this popular integration product.




More Work Is Still Ahead

The technology vision that Microsoft pursues is credible and, if executed well, will likely make Microsoft one of the leading cloud platform providers. However, the specific plans, as they stand today, remain incomplete. Consistent execution will be an essential requirement for fulfilling the promise of the company's vision. This execution can be endangered by internal disputes, less-than-sharp-focused leadership and distractions of other natures — all not entirely unknown to Microsoft from past experiences. However, potential challenges notwithstanding, it is also notable that Microsoft is substantially ahead of its main enterprise competitors (Oracle and IBM) by having committed to cloud computing the first among them

Here are some potential pitfalls:

  • There is no support for version control, so the ISVs using Azure Platform to build business applications as a service will find they are on their own when they need to update the version of their applications without disturbing the business of their customers (tenants).

  • There is only minimal support today for event processing and publish/subscribe interactions. These, however, are essential "in the cloud" because interactions between services that reside in different cloud and on-premises data centers will require strategic reliance on messaging, publish/subscribe middleware and eventing.

  • The programming model of AppFabric Container, while an improvement over the basic .NET programming, is still relying on compiling of the encoded business logic down to binary code, making customization of multitenant applications difficult.

  • The programming model of AppFabric Container is now only available internally to Microsoft engineering. While it is a good strategy to test technology internally before offering it for general use, this leaves Microsoft developers without a progressive shared-container or shared-everything multitenant platform. Third-party developers are left with the shared-hardware Windows Azure SDK as their best option.

  • The continuing commitment to the synchronicity of on-premises and on-cloud developer and user experience may be targeting a wrong model. Although Microsoft is now strategically committed to service-oriented architecture (SOA) through its Model-View-Controller (MVC) and Web/Worker roles design patterns in the synchronicity approach (formerly known as Software + Services), the company does not recognize the potentially distinct roles to be played by the on-premises and the on-cloud SOA-style business software.

  • There is no clear recognition that development projects coming to the Windows Azure Platform will differ between the ISVs building multitenant applications, IT organizations building opportunistic or mainstream-systematic applications and the special high-end projects building unique, highly demanding applications. The development tools, programming frameworks and even the runtime environments for these three constituencies cannot be the same if Microsoft aims to be the best-of-breed provider of a platform for each.

  • The ISV users of Windows Azure Platform will look for assistance to establish a relationship with their customers (tenants). One of the key elements of such a relationship requires the tracking and billing capability to monitor tenant operations and resource use, and to have flexibility in establishing pricing and billing policies. In the absence of such services, the ISVs are forced to develop this capability in their applications — an unwanted and unnecessary burden for them.

  • Microsoft's strategic motto for the user adoption of the cloud is "Move, Enhance, Transform," suggesting that some applications can be simply moved to the cloud (Microsoft now provides the VM role for that purpose) without change, other applications can be moved and enhanced to take advantage of the cloud and yet other applications might be moved and re-envisioned to become native cloud services. These scenarios describe well the options users must face with regard to their current business applications — conceived in the context of on-premises computing. What is missing in this motto is the forth scenario — Invent. Users must be encouraged to imagine new types of services that have not been possible in isolated on-premises environments. Microsoft will have to recognize that simply supporting migration of the current customer workload to a new environment for some incremental gain does not amount to industry leadership. The leadership and industry influence is with the innovating projects that build new solutions, inspired by the distinct characteristics of the new environment. Attracting these innovating ISVs and IT projects must be a high-priority aim at Microsoft. The cloud platform provider that attracts the leading cloud application innovations will likely emerge as the industry leader in the all-important cloud platform marketplace.




User Advice

Users committed to Microsoft platform technology will note that Microsoft is clearly strategically committed to cloud computing (Microsoft CEO Steve Ballmer declared on several occasions "we are all in," in reference to Microsoft's cloud-computing strategy). Indeed, it seems that the company's attitude toward cloud computing is similar to its response to the emergence of the Web in the 1990s. Like then, Microsoft is committing its resources across all divisions to endorse, implement and exploit the opportunities of the new computing patterns and business models of the cloud. Microsoft's vision of cloud computing is evolving in the right direction, and we believe it is on track to offer a competitive and native comprehensive cloud-computing platform, although it is not there yet, and a period of experimenting and inventing is still ahead for the company and its customers. Nevertheless, we believe that users committed to Microsoft technologies (Windows, .NET and others) can figure that in the next three years they will be able to offer competitive cloud services using then-current Microsoft offerings. The transition will not be seamless, and some changes to the programming practices and software architecture will be inevitable when moving from Microsoft on-premises to Microsoft Cloud, but we believe Microsoft will indeed arrive there successfully.

Users that are not committed Microsoft customers will naturally examine all available options for their cloud initiatives. Today, salesforce.com's Force.com is the most accomplished and most-mature (though proprietary) environment, and Google offers easy-to-use technology for some Web applications, but is not yet present in any enterprise cloud projects. A variety of small vendors, such as LongJump, Heroku, Engine Yard, Rollbase, Apprenda and others offer innovative cloud-computing solutions, but are relatively weak on long-term viability. Oracle has just turned around to endorse cloud computing, yet it still has a long way to go to deliver a credible, native multitenant environment required to be a competitive cloud-computing platform provider. In this context, Microsoft represents an unfinished but promising option — based on its business commitment, advanced engineering talent, credible, though evolving, vision and well-established IT-market presence.

Some opportunistic vendors may deploy their unchanged on-premises applications on Windows Azure VM role and claim to offer a Windows Azure cloud application. While this claim would be technically correct referencing Windows Azure, users are advised to understand that cloud-computing characteristics are only available when an application is based in Windows Azure Platform. VM role-based applications will only offer some procurement self-service and hosting in a Microsoft (or partner) data center. This may be sufficient for some application users — those seeking ease of procurement of computing resources and none of the elasticity characteristics — but it can barely be considered cloud computing.


© 2010 Gartner, Inc. and/or its affiliates. All rights reserved. Gartner is a registered trademark of Gartner, Inc. or its affiliates. Reproduction and distribution of this publication in any form without prior written permission is forbidden. The information contained herein has been obtained from sources believed to be reliable. Gartner disclaims all warranties as to the accuracy, completeness or adequacy of such information. Although Gartner's research may discuss legal issues related to the information technology business, Gartner does not provide legal advice or services and its research should not be construed or used as such. Gartner shall have no liability for errors, omissions or inadequacies in the information contained herein or for interpretations thereof. The opinions expressed herein are subject to change without notice.