In the first
post we discussed the 3 main concepts that make up Windows Azure AppFabric:
Middleware Services, Building Composite Applications, and Scale-out
In the second
post we started discussing the Middleware Services that already available
in production: Service Bus and Access Control service.
Focus on Caching
In this post we will discuss the Caching service. The
Composite App service will be discussed in the next post as part of Building
Composite Applications, and the Integration service will be
discussed in a future post as well.
As noted in the previous post, the Caching service is available as a Community Technology Preview
(CTP), and the Integration and Composite App services will also be
released in CTPs later in 2011.
The Caching service is a distributed, in-memory,
application cache that can be used to accelerate the performance of Windows
Azure and SQL Azure applications. It provides applications with high-speed
access and scalability to application data.
For instance, if you are developing a web application, you
would use the Caching service in order to store frequently accessed data
in-memory closer to the application, so you don’t have to pay the penalty of
fetching the data from the data store. Examples for such data would be a list
of countries, or a static image that is part of your webpage.
Another very useful usage scenario of the Caching service is
for ASP.NET session state data. Session state is data that is kept
during a user’s specific session with your website. An example for such data is
a customer’s shopping cart information. It would be useful to keep this data
in-memory until the customer confirms the purchase. The ASP.NET application can
be configured to use the Caching service to store the session state data in a cache
without having to change a single line of code, you are only required to
make a few minor changes in the configuration file.
When running a web application using Windows Azure Web
Roles, a single user might be catered by different Web Roles as result of load
balancing activities or in case one of the Web Roles stops working. The fact
that the user’s session data is kept in a central cache makes the user’s data
always available and enables you to provide a consistent experience and
high-availability to the data in such cases.
Another great feature of AppFabric Caching is the “Local
Cache”. When using this feature you can also keep cached data in the
available memory in your web or worker roles, in addition to the central cache.
This way the cached data is even closer to your application.
The image below illustrates how the Caching service keeps
data in-memory closer to the application and accelerates the application’s
performance by saving the need to fetch data every time from the data store:
The Caching service delivers all these great capabilities
while providing inherent elastic scale, low latency, and high throughput. In
addition, it is very easy to provision, configure and administer.
As noted earlier, the Caching service is already available
for you to explore for free as a CTP in our Labs/Preview environment. We
recently released an update to the service that added more cache size options,
and the ability to dynamically change the cache size. More details can be found
The service will be released as a production service with
full SLA in a few months.
This service is based on the Windows Server AppFabric
Caching technology, which is a proven, on-premises technology available on top
of Windows Server. If you are already using the on-premises version of the
cache as part of your application, you should be able to use the Caching
service in Azure AppFabric with only minor changes to your application code, if
at all. Most importantly, as in all other Windows Azure AppFabric services, in
the cloud you don’t have to install, update, and manage the service; all you
need to do is provision, configure, and use. You should note that there are
some on-premises features in Windows Server AppFabric Caching that are not
available in Windows Azure AppFabric Caching, but we will gradually add these
features in each release of the service. For more information, see the Caching
Programming Guide on MSDN.
Using the same technology both on-premises and in the cloud
is one of the basic promises in AppFabric that addresses the challenges faced
by developers discussed in the first
post. More on this will come in
For a more in-depth and technical overview of the Caching
service, please use the following resources:
- Video: What is AppFabric Caching
PDC 10 recorded session: Introduction
to the AppFabric Cache Service | Speaker: Wade Wegner
Azure AppFabric Caching – Interview with Karandeep Anand
Blog post: Introduction to Windows Azure AppFabric
- Wade Wegner’s blog
Programming Guide on MSDN
Basically, any content related to how to use Windows Server
AppFabric Caching will be relevant as well, except for content on how to
install, configure, or manage, which are already taken care of by the platform.
As you can see from this post, the Caching service, like
the Service Bus and Access Control services, makes the developer’s life a
lot easier by providing an out-of-the-box solution to complicated problems that
developers are faced with when building applications.
As a reminder, you can start using our CTP services in our
LABS/Preview environment at: https://portal.appfabriclabs.com/.
Just sign up and get started.
Other places to learn more on Windows Azure AppFabric are:
Azure AppFabric website and specifically the Popular Videos under the
Featured Content section.
Azure AppFabric developers MSDN website
Be sure to start enjoying the benefits of Windows Azure
AppFabric with our free trial offer. Just click on the image below and start
using it already today!
Finally, please leave your comments and questions in the
comments section below.
Itai Raz, Product Manager