AppFabric Caching Services:

advertisement
AppFabric Caching Services:
•
•
•
•
•
•
•
•
•
About Me
Overview of Caching
Server AppFabric Caching Architecture
Demo: Server AppFabric Configuration
Server AppFabric Caching Concepts
Demo: Implementing Application Cache
Beyond On-Premise Caching
Demo: Azure AppFabric Caching
Conclusion
About Me
• Microsoft Certified Professional
• Phoenix Connected Systems User Group
Leadership Team
• 6+ years building mid-tier solutions using
Microsoft technology including, but not limited
to,
• BizTalk Server (2006, 2010)
• MSSQL Server (2000, 2005, 2008)
• .NET Framework (1.1, 2.0, 3.5, 4.0)
• Windows Communication Foundation
• Microsoft.Web.Services3
• .NET Remoting
• Currently working for Cable One, Inc.
Overview of AppFabric
• Provides hosting services
• Provides caching services
• Provides robust tools and services for managing
applications on-premise and off-premise
• Tracing
• Dashboard
• Key point: Difference between Server AppFabric and
Azure AppFabric
• Windows Server AppFabric is on-premise
• Windows Azure AppFabric is in the cloud
• APIs attempt to be seemless
The Dilemma
• Even though we’re light
years beyond the
traditional paper filing
method of the past,
users still find the
application driven
processes too slow.
Users will be happy to
learn that technology
once again has
provided a solution:
Caching
Common Questions
• How do we increase the speed of data
access and the application as a whole?
• How can we make our caching
solutions more scalable?
• How do we ensure our application is
not only fast and scalable, but also
maintain it’s robustness?
Cache Concepts
• Cache
– Storing a copy of data closer to application logic, and away
from it’s source
– Increases application speed
• Distributed Caching
– A set of nodes in a farm that coordinate to create a unified
view of a cache to a caching client
– Assists in creating a scalable caching solution
• Expiration and Eviction
– When an object is removed from the cache because of
stalenes or due to low memory conditions
– Assists in maintaining a robust caching solution
Caching Overview
Server AppFabric Cache Architecture
• Runs on top of Windows Server and IIS via Windows
Server AppFabric Caching Services
• Cache Host exists on the server as a windows service
• Multiple cache servers can run in a clustered
environment
• Administered through PowerShell
• Configuration can be shared across multiple servers
through the use of a database or XML file located on a
UNC share
• Cache client communicates with the cluster rather than
just an individual server
Architecture Diagram
Demo 1: Server AppFabric
Configuration
Implementing AppFabric Cache
• “You've effectively got a big, partitionable distributed (and
optionally highly available) hashtable across multiple
machines.”—Scott Hanselman
• Hashtable of objects that take the form of their
System.Object base class
• Requires type conversion to restore them to their original
type
• Cache clusters are logically segmented into named caches
and regions
• A named cache, also referred to as a cache, is a configurable
unit of in-memory storage that all applications use to store
data in the distributed cache
• Regions are an additional data container that you can place in
the cache
• Regions can be used to segregate like data by allowing you to
search all cached objects in the region using descriptive
strings, also known as “tags”.
Named Caches and Regions
Demo 2: Implementing Application
Cache
Recap:
Benefits of Server AppFabric Caching
• Scalable:
• Can restart the application without
losing valuable cached data
• Applications can spread session objects
across the cache cluster, providing
scalability
• Caches any serializable CLR object
and provides access through simple
cache APIs
Where to Now??
Azure: Off-Premise Caching
• Windows Azure provides a simple to maintain solution that allows
the business to leverage Microsoft’s servers in order to save money
• Implemented in code almost identically to Server AppFabric, with
the only exception that Azure AppFabric Caching does not support
user-created regions or tag-based searches
• Unlike Windows Server AppFabric, Windows PowerShell is not used
to manage the provisioned caches or the cache cluster
• The Windows Azure Administration Portal is extremely easy to use and
allows businesses to get a cache up and running in as little as 60
seconds
• Libraries are nearly interchangeable which makes migrating from
Windows Server AppFabric to Windows Azure AppFabric Caching a
nearly seemless
Demo 3:Migrating from
Windows Server AppFabric
Cache to Windows Azure Cache
Other Cache Providers
– Off-Premise
• Amazon ElastiCache
– On-premise
• Memcached
–
–
–
–
–
–
Proven in one blog online to be a bit faster
More oftenly stated to be more difficult to set up
Supports C#
API converts objects to strings
Object size limit: 1MB
Not as many features as Coherence and AppFabric
• Coherence
– On paper, appears to support more features that Server AppFabric caching
– Supports C#
• Redis
– Not as many features as other cache providers
– Does not support as many languages
Recap
• Server AppFabric caching helped make our stock
web service ~7.5 times faster
• Azure AppFabric caching, although a bit slower,
still saw decrease in response time by a multiple
of 4
• Azure cache host configured and started in
around 60 seconds or often times less
• Code can easily be migrated between off-premise
and on-premise AppFabric caching solutions
Questions?
References
• Introduction to Caching with Windows Server AppFabric (Beta):
http://msdn.microsoft.com/library/cc645013.aspx
• Module 1–Windows AppFabric Cache (AppFabric Demos)
• Windows Server AppFabric Caching Logical Architecture Diagram:
http://msdn.microsoft.com/en-us/library/ee790985.aspx
• Differences Between Caching On-Premises and in the Cloud:
http://msdn.microsoft.com/en-us/library/windowsazure/gg185678.aspx
• Wade Wegner works at Microsoft and is the Technical Evangelist Lead for
Windows Azure: http://www.wadewegner.com/
• Distributed Caching Showdown – Memcached vs Velocity:
http://www.briandrought.com/blog/?p=29
• Installing, Configuring and Using Windows Server AppFabric and the
"Velocity" Memory Cache in 10 minutes:
http://www.hanselman.com/blog/InstallingConfiguringAndUsingWindows
ServerAppFabricAndTheVelocityMemoryCacheIn10Minutes.aspx
Aditional Information
• Email
– myers.chris.j@gmail.com
– camyers@cableone.net
• Blog
– http://bloggedbychris.com/
• Phoenix Connected Systems User Group
– http://pcsug.org/
Download