Evaluating App Fabric as a Data Store (Part-I)


What is AppFabric?

Windows Server AppFabric extends Windows Server to provide enhanced hosting, management, and caching capabilities for Web applications and middle-tier services.

Key Features

Following out of the box features are supported by AppFabric:

  1. Hosting
  2. Management
  3. Caching
Let’s understand them in brief.

  • Hosting

    • The AppFabric hosting features add service management extensions to Internet Information Services (IIS), Windows Process Activation Service (WAS), and the .NET Framework 4. This includes Hosting Services and Hosting Administration tools that make it easier to deploy, configure, and manage Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) based services
    • This helps in setting up a hosting environment for an application that includes WCF and WF based services easily.

  • Management Tool

    • AppFabric hosting features provide a rich set of extensions to the IIS Manager for service management which gives you visibility into the health of a system, and the unified configuration user interface gives you control over your service configuration. You can perform many applications management tasks within the IIS Manager, rather than jumping from tool to tool or editing configuration files manually.

  • Caching

    • AppFabric caching features can help scale your .NET applications easily and inexpensively by allowing you to combine the memory capacity of multiple computers into a single unified cache cluster. These features include Caching Services, the Cache Client, and Cache Administration tools. 
    • The AppFabric Caching Services are highly scalable, allowing many computers to be configured as nodes of a cache cluster that is available as a single unified memory cache. 
    • The Caching Services provide a high-availability feature that supports continuous availability of your cached data by storing copies of that data on separate cache hosts. When high availability is enabled on a multi-server cluster, your application can still retrieve its cached data if a cache server fails.
    • The AppFabric Cache Administration provides a full set of administration tools for the creation, configuration, and management of in-memory caches.

Pros

  • Simple design and easy to setup.
  • Persisting Workflows

    • Uses SQL persistence store to create a default persistence database that your applications can leverage which allows you to scale your stateful services across a set of computers. SQL can be used to persist the WCF and WF service configurations.

  • Monitoring Services

    • AppFabric Hosting Services and Hosting Administration enable you to perform health monitoring and troubleshooting of running WCF and WF services, and to control those services.

  • Developing Services
    • With AppFabric Hosting Services, there are no special requirements for creating an application beyond ensuring that the application can be hosted in the IIS/WAS hosting environment using the Windows Process Activation service (WAS).

  • Deploying Services
    • AppFabric Hosting Services leverage the Microsoft Web Deployment tool (also called the Web Deploy tool) to deploy services into its hosting environment.

  • Hosting Services and Administration Extensibility
    • The AppFabric hosting features provide extensibility points for you to create custom solutions. You can add a module to the IIS Manager, and you can create your own UI tools on top of AppFabric Hosting Administration cmdlets.

Cons

  • Cache Elasticity

    • Master/slave architecture is employed. If some of the “lead nodes” or the configuration file server goes down, the entire cache could potentially go down. So, 100% uptime is not guaranteed.

  • Very basic Cache Administration GUI

    • Basic GUI is supported. PowerShell based Cmdlets provided for monitoring.

  • Security & Encryption
    • No encryption provided for data in the cache.
    • Basic Authentication/authorization provided.

  • Limited Object Caching Features
    • CRUD operations and locking provided. Limited support for expirations. And no streaming API provided.

  • No Data Sources Synchronization is supported.
  • SQL-Like Search Cache is not supported.
  • No Third Party Integrations are supported

    • Any official support for NHibernate, Entity Framework is not supported.


Happy Learning!

Comments

Popular Posts