Hello and welcome to my talk on Windows Server AppFabric, I must say I am super excited to be here in front of you and hosting this talk at an IASA event. Today we are going to discuss what is Windows Server AppFabric and how it is relevant to enterprise development that we do here, day in and day out.
So, coming back to ‘the real discussion’ and that’s what I believe we are all here for Here is a quick look at the agenda :- A high level overview of Windows Server AppFabric a look at its architecture, sort of a peek under the hood Quick demo on caching Windows Azure Appfabric Last but not the least QnA
Here we go...So, we are talking about Windows Server app Fabric and not the Windows Azure AppFabric...Windows Azure AppFabric is for the Cloud where as Windows Server AppFabric is for on-premise use i.e. It runs on Windows Server Although some of the concepts and API are similar to that of cloud offering but we will still focus on the Windows Server based sibling of AppFabric!
Windows Server AppFabric extends Windows Server to provide enhanced hosting, management, and caching capabilities for Web applications and middle-tier services. 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. The AppFabric caching features add a distributed, in-memory object cache to Windows Server that makes it easier to scale out high-performance .NET applications, especially ASP.NET applications.Services and service-oriented architectures are being built into many types of applications today, from simply exposing some functionality as a service for others to use to an application itself being a complex coordination across many services. The need to construct applications that can easily participate and perform in this services world has never been greater. Modern applications typically have at their heart a data-driven transactional component (such as taking orders on a web site) together with highly distributed business logic that manages these transactions across a middle tier.http://msdn.microsoft.com/en-us/library/ee677312.aspx
One of the great truths of building software is this: Application developers shouldn’t spend their time creating infrastructure. Even though every application needs some supporting services, the people who write those applications ought to focus solely on creating value for their users. Whatever infrastructure is required should be provided by the platform they’re building on. Windows Server AppFabric aims to provide a set of extensions to Windows Server, such that windows developers can create faster, more scalable, and more manageable applications.
Highlight building blocks..HostingPersistanceMonitoringMessagingPower Shell Cmdlet APIsVisual Studio and IIS
Custom Session Provider included with CacheJust a configuration change enables session state to be cached across a clusterYou may want to enable HA on the cache used
AppFabric Caching Services stores all cached data in memory—it’s not written to disk. By default, each cached object is stored on only one machine in a cache cluster. To improve resilience if a cache server goes down, AppFabric Caching Services has a high-availability option that creates a secondary copy of each cached data item on another machine in the cluster. If the cache server holding the primary copy of this data fails, the secondary remains available. This example shows a read, but updates also work when the cache server holding a primary copy goes down. Once AppFabric Caching Services detects that the primary is unavailable, it promotes the existing secondary copy to a primary, then creates a new secondary copy. None of this is visible to the cache client—everything works just as if no failure had occurred. Whether or not the high-availability option is used, AppFabric Caching Services speeds up access to frequently accessed data. This is a good thing—it’s a useful addition to the application infrastructure provided by Windows Server. Providing better support for an application’s logic is also useful, however. How Windows Server AppFabric does this is described next.
Event collection:-The first AppFabric Windows service is the Event Collection service. Up to ten Event Collection service instances can run on a single server. Based upon the configured monitoring level, its role is to gather WCF and WF instrumentation events emitted by the .NET Framework runtime into an Event Tracing for Windows (ETW) session. The Event Collection service then stores these events in the monitoring database. AppFabric uses event data to aggregate information about overall status of applications to assist in performance monitoring and troubleshooting. AppFabric Workflow Management ServiceThe second AppFabric Windows service is the Workflow Management service, which the hosting services use to manage instances of workflows. The Workflow Management service activates a workflow service instance in an instance store when the instance is eligible to be activated. The Workflow Management service retrieves commands from a message queue that is written to by an instance control provider, executes the commands, and then deletes commands from the queue if the command execution is successful.
Service Bus (Commercially available now; updated CTP delivered October 2010) provides secure messaging and connectivity capabilities that enable building distributed and disconnected applications in the cloud, as well as hybrid applications across both on-premise and the cloud. It enables using various communication and messaging protocols and patterns, and removes the need for the developer to worry about delivery assurance, reliable messaging and scale. Access Control (Commercially available now; updated CTP delivered August 2010) enables an easy way to provide identity and access control to web applications and services, while integrating with standards-based identity providers, including enterprise directories such as Active Directory®, and web identities such as Windows Live ID, Google, Yahoo! and Facebook.Caching (New CTP service delivered October 2010; commercially available in H1 CY11) accelerates performance of Windows Azure and SQL Azure based apps by providing a distributed, in-memory application cache, provided entirely as a service (no installation or management of instances, dynamically increase/decrease cache size as needed). Pre-integration with ASP.NET enables easy acceleration of web applications without having to modify application code.Integration (New CTP service coming in CY11) will provide common BizTalk Server integration capabilities (e.g. pipeline, transforms, adapters) on Windows Azure, using out-of-box integration patterns to accelerate and simplify development. It will also deliver higher level business user enablement capabilities such as Business Activity Monitoring and Rules, as well as self-service trading partner community portal and provisioning of business-to-business pipelines.Composite App (New CTP service coming in H1 CY11) will provide a multi-tenant, managed service which consumes the .NET based Composition Model definition and automates the deployment and management of the end to end application - eliminating manual steps needed by both developers and ITPros today. It also executes application components to provide a high-performance runtime optimized for cloud-scale services and mid-tier components (automatically delivering scale out, availability, multi-tenancy and sandboxing of application components). Finally, it delivers a complete hosting environment for web services built using Windows Communication Foundation (including WCF Data Services and WCF RIA Services) and workflows built using Windows Workflow Foundation. It’s a key characteristic of all AppFabric Middleware Services that they are consistently delivered as true multi-tenant services – you simply provision, configure, and use (no installation or management of machines/instances).
Microsoft is advancing its Windows Azure AppFabric cloud middleware platform to provide a full composite application environment for developing, deploying and managing composite applications. The AppFabric composition environment delivers three main benefits: Composition Model A set of .NET Framework extensions for composing applications on the Windows Azure platform. This builds on the familiar Azure Service Model concepts and adds new capabilities for describing and integrating the components of an application. It also provides a consistent composition model for both Windows Azure and Windows Server.Visual Design Experience A new Visual Studio based designer experience allows you assemble code from your existing application components, along with newer cloud services, and tie them together as a single logical entity.Managed as a service The Composite Application service is a multi-tenant, managed service which consumes the Composition Model definition and automates the deployment and management of the end to end application - eliminating manual steps needed by both developers and ITPros today. The composite application environment offers the following benefits:Greater developer productivity through rapid assembly, linking of components and automated deployment of the entire end-to-end application;Easier configuration and control of entire application and individual components;End-to-end application monitoring (events, state, health and performance SLAs);Easier troubleshooting (through richer diagnostics and debugging of the whole application);Performance optimization of the whole application (scale-out/in, fine-tuning, migration, etc); Integrated operational reporting (usage, metering, billing).
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
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...
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