Working with Windows Server AppFabric

One of the new things i have been working on is now Windows Server AppFabric. It's one of the ways that you could create a virtual network of computers in your office/home and use them for load balancing . Interesting eh?

The concept:

Windows Server Appfabric is an installable that can be installed over Windows Servers or Windows 7. With Windows Vista we have some issues using the SDK DLLs and so we avoid it. It's not supported. Once you get the setup downloaded and installed, you would get this prompt to join to an existing cluster of machines or create a new cluster. The best part is, you can simply have a cluster of 1 machine for starters, and later on go on adding new machines to it. The more number of installations you do in your connected network of computers (ensure that these computers are in the same LAN or any private network so they can talk to each other), the more number of machines you have in your cluster. The cluster can grow big and forms a way to perform load balancing across these machines and also caching data across them.

High availability:

You don't need to worry if one of your machines is down, it has a set of commands that allow you to setup High availablity for your machines so that you can make a quorum to ensure uptime of your machines. But you must ensure you have enough of machines to form a set of atleast 2 additional machines for backing up a machine. High availablity by default will not be set. But however, the cluster notifies other machines when one of the machines in the cluster is down so that each is aware.

Two of the features that we get with Windows Server AppFabric:

1. Windows Server AppFabric hosting services

This is a really great feature that allows you to host your Windows workflow or WCF services on machines on the cluster. Because of the way appfabric handles this, you would have load balancing automatically implemented between the machines of the cluster. It would ensure your services are hosted and running at all times and also ensure failover clustering if you have enabled the high availability feature.

2. Windows Server AppFabric caching services

This is another good feature that helps you cache data in the memory of the machines in the cluster. You could do this for large applications that need to store data in the cache servers for quick access. It improves the speed of the data access and also allows you keep them highly available. The user/developer sending application data to the cache cluster using the Windows Server appfabric DLLs, needs to send this data to the cluster and which of the machines in the cluster actually stores the data is not known to the user. It is abstracted to anyone as to where the data is stored; however it is ensured that the data would be present across some of the machines.

For faster access of a group of related data, users have options to create "regions" in the cluster so that groups of data that are needed together need not be stored on difference machines in the cluster. A region would contain a group of data which will always be stored together in one machine.

Apart from the features of caching that the Appfabric provides, there is also a way to store data in the local application machines for faster access and settings in the configuration need to be coded to ensure they have time to live (TTL) periods and expiry.

This post should give you a good overview of the features that you can use and high availablity and load balancing which are great pluses.

More around Windows Server AppFabric would be coming soon as i get my hands dirty on it!