Cloud Computing for IT Pros (4/6): Fabric Controller and AppFabric
Technorati Tags: service,cloud,azure,fabric,saas,paas,iaas
This series focusing on cloud essentials for IT professionals includes:
- Part 1: What Is Service
- Part 2: What Is Cloud
- Part 3: Windows Azure Computing Model
- Part 4: Fabric Controller and AppFabric
- Part 5: Publishing Windows Azure Application to Public Cloud
- Part 6: Building Private Cloud of IaaS
One very important concept in cloud computing is the notion of fabric which represents an abstraction layer connecting resources to be dynamically allocated on demand. In Windows Azure, this concept is implemented as Fabric Controller (FC) which knows the what, where, when, why, and how of the resources in cloud. As far as a cloud application is concerned, FC is the cloud OS. We use Fabric Controller to shield us from the need to know all the complexities in inventorying, storing, connecting, deploying, configuring, initializing, running, monitoring, scaling, terminating, and releasing resources in cloud. So how does FC do it?
Key Enabler
A key technology makes cloud computing a reality is virtualization. An apparent and production example is that Windows Azure abstracts hardware through virtualization and creates a virtual machine (VM) for each Role instance. Here, VMs and the underlying Hypervisor together offers multiple layers of isolations and virtualizing a computing resource further allows it to be moved to any number of physical hosts in a data center. The following schematic illustrates the implementation of Windows Azure computing model discussed in Part 3 of the series. Each instance of either a Web Role or a Worker Role is running in an individual VM. And depending on the configuration of an application, there can be multiple instances of a given Role.
A virtual machines is physically a virtual hard disk (VHD) file which has a number of advantages. For instance, not only it is easier to manage files compared with that of working with physical partitions, disks, and machines, but a VHD file can be maintained while offline, i.e. without the need to boot up the OS image installed in the VHD file. Virtual Machine Servicing Tool (VMST), is a such tool freely available from Microsoft. There have been many and active discussions on server virtualization, desktop virtualization, Application Virtualization (App-V), and Virtual Desktop Infrastructure (VDI). And many IT organizations have already started consolidating servers and introduced various forms of virtualization into their existing computing environments, as reported in many case studies.
Make no mistake nevertheless. Virtualization is not a destination, but a stepping stone for enterprise IT to transform from then a hardware-dependent and infrastructure-focused deployment vehicle into now and going forward a user-centric and cloud-friendly environment. Although virtualization is frequently motivated for cost saving, I believe the long-term and strategic business benefits are however resulted from deployment flexibility. Facing the many challenges and unknowns already in place and ahead brought by Internet, IT needs to make sure new investments are strategic, at the same time transform excising establishments into something flexible and agile. IT needs the ability to manage computing resources, both physical and virtualized, transparently and on a common management platform, while securely deploying applications to authorized users anytime, anywhere and on any devices. Fundamentally, virtualization provides abstractions for manageability and isolations for security to dynamically scale and secure instances of workloads. For enterprise IT, virtualization is imperative, a critical step towards building a cloud-friendly and cloud-ready environment. The takeaway is that virtualization should be in every enterprise IT’s roadmap, if not already. And a common management platform with the ability to manage physical and virtualized resources transparently is essential and should be put in place is as soon as possible.
Fabric Controller
The concept of fabric in Microsoft’s implementation in production exhibits itself in the so-called Fabric Controller or FC which is an internal subsystem of Windows Azure. FC, also a distribution point in cloud, inventories and stores images in repository, and:
- Manages all Compute and Storage resources
- Deploys and activates services
- Monitors the health of each deployed service
- Provisions the necessary resources for a failed service and re-deploys the service from bare metal, as needed
For FC to control a deployed instance inside of a VM and carry out all the above tasks, there are Agents in place. The following schematic depicts the architecture.
When FC is building a node in data center, Fabric Agent (FA) is included in and automatically initialized in the root partition. FA exposes an API letting an instance interact with FC and is then used to manage Guest Agent (GA) running in a guest VM, i.e. child partition. The manageability is logically established with the ability for FC to monitor, interact, trust, and instruct FA which then manages GAs accordingly. Behind the scene, FC also makes itself highly available by replicating itself across groups of machines. In short, FC is the kernel of cloud OS and manages both servers and services in the data center.
AppFabric
This is another term getting overused and confusing. I am as guilty as anyone for using the term frequently without putting it in context. Not all AppFabrics are exactly the same after all. There are, as shown below, Windows Server AppFabric and Windows Azure AppFabric. The former is available as extensions to the Application Server role of Windows Server, while the latter provides cloud-based services to connect users and applications across the Internet. Both are part of Microsoft’s application infrastructure (or middleware) technologies.
Relevant to Windows Azure, many seem assuming Windows Azure AppFabric and FC are the same, similar, or related. This is incorrect, because they are not. Windows Azure AppFabric is a cloud middleware offering a common infrastructure to name, discover, expose, secure, and orchestrate web services on the Windows Azure platform. A number of services Windows Azure AppFabric includes:
The Service Bus service can traverse firewalls and NAT devices without forfeiting the security afforded by these devices to relay messages from clients through Windows Azure to software running on-premises. The Access Control offers a claims-based mechanism federated with Active Directory Federation Services (AD FS) 2.0 accessible by Windows Azure, other cloud, and on-premises applications. For those would like to know more technical details and develop cloud applications based on Windows Azure AppFabric, there are good references including: an overview whitepaper and An Introduction to Windows Azure AppFabric for Developers.
In an over simplified description, FC is the kernel of Windows Azure (a cloud OS) and manages the hardware and services in a data center, while Windows Azure AppFabric is a cloud middleware for developing applications. For IT pros, I consider a must-read overview article of Windows Azure is available elsewhere. And a nicely packaged content, Windows Azure Platform Training Kit, is also a great way to learn more more about the technology.