Building Enterprise Scale Services Using Windows Server AppFabric
Profile VP, GRCT @ BAML Microsoft MVP for Connected Systems (6+ yrs) Member of Business Technology Platform Advisors Author I do: Blog + Twitter + PodCast www.hammadrajjoub.net Twitter @HammadRajjoub Bing me http://www.bing.com/search?q=hammadrajjoub
Agenda Introducing Windows Server AppFabric Architecture Features Distributed Caching Hosting & Management Capabilities Connecting with the Cloud Q n A
Windows Server AppFabric
Windows Azure AppFabric
What is Windows Server AppFabric? Extensions to Application Server role on Windows Server Platform Enhanced hosting, management and caching capabilities Allows faster, more scalable and more manageable applications and services In its first release, it comprises of AppFabric Caching Services (remember Velocity?) AppFabric Hosting Services (remember Dublin?)
What is Windows Server AppFabric? ASP.NETWF & WCF Apps Windows Apps IIS Worker Process Cache Server Cache Server Cache Server IIS Manager Cache Client Cache Client AppFabric Hosting Services Cache Config AppFabric Caching Services Monitoring Database Persistence Database
What’s under the hood? IIS Manager Visual Studio WF & WCF Management Modules WF & WCF Project Templates Management APIs (PowerShell 2.0 cmdlets) IIS 7/WAS Persistence Monitoring Messaging Hosting ablility, Scalablity Availability, Deployment, Control Application Monitoring Routing, Activation .NET 4 WCF & WF Frameworks Instance Restart Behavior SQL Persistence Provider WF ETW Tracking WCF ETW Tracking Router Service Web Deploy Tool Discovery Service AutoStart Service Workflow Mgmt Event Collector Runtime Databases Persistence schema Monitoring schema Windows 7, Windows Server 2008 & 2008 R2
Architecture - contd Runtime Services and Components:- Asp.Net Application Domains Lifecycle and health monitoring Message based activations WCF and WF Building blocks for composite applications Runtime Dbs& Persistence Instance Store, Query & Control Provider
Architecture - contd Hosting Auto-Start Service Management (WMS) App Pool Recycling Monitoring Health and Activity Tracking Event collection Monitoring Dbs Power Shell Cmdlets Dashboard
AppFabric Cache Caches any serializable CLR object and provides access through simple cache APIs. Supports enterprise scale: tens to hundreds of computers. Configurable to run as a service accessed over the network Supports dynamic scaling-out by adding new nodes Backup copy provides high availability Automatic load balancing
AppFabric Cache Contd. Integration with administration and monitoring tools such as PowerShell, Event Tracing for Windows, System Center, etc. Provides seamless integration with ASP.NET to be able to cache session data in without having to write it to source databases. It can also be used as a cache for application data to be able to cache application data across the entire Web farm. Follows the cache-aside architecture (also known as Explicit Caching) for V1. That is, you must decide explicitly which objects to put/remove in your applications and the cache does not synchronize with any source database automatically. Types of data: Reference Data, Activity Data and Resource Data...
Demo Simple Caching Client!
Asp.Net Caching Scenario
Demo Asp.Net Caching Provider!
Setting up Asp.Net Caching Provider <sessionStatemode="Custom"customProvider="SessionStoreProvider"> <providers> <addname="SessionStoreProvider"type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider, Microsoft.ApplicationServer.Caching.Client, Version=220.127.116.11, Culture=neutral, PublicKeyToken=31bf3856ad364e35"cacheName=“YourCacheName"/> </providers> </sessionState>
High Availability Scenario
Hosting capabilities Windows Server AppFabric
Hosting and Management Extension to IIS7 using WAS Hosting and Management of WCF and WF Load balancing 100s of nodes Increased availability Easy to setup base configuration (replicated via msdeploy.exe/xcopy/powershell) Event Collection via ETW for Windows Lifecycle management of durable workflows
Windows Azure appfabric Connecting with the Cloud
Windows Azure AppFabric Comprehensive Cloud Middleware Developing, deploying and managing applications on the Windows Azure Platform PaaS Enables birdging existing apps to the cloud via secure connectivity Consistent development model on the premise and on the cloud Middleware services + composite applications+ scale out infrastructure
Windows Azure AppFabric .NET + AppFabric Composition Model & Tools AppFabric Management AppFabric Services AppFabric Container SQL Azure SQL Server Windows Azure Windows Server
What is AppFabric? AppFabric Services Caching Service Bus Access Control Integration Composite App (WF, WCF) .NET Composition Management AppFabric Container Multi-tenant, high-density, scaled-out host Composition runtime SQL Server SQL Azure Windows Azure Windows Server
References Windows Server AppFabric Training Kit Windows Azure AppFabric Training Kit TechEd video from KarandeepAnand