Windows Azure AppFabric Building, Managing, and Connecting High-Density Cloud Applications Clemens Vasters, Technical Lead, Microsoft
This Session The Cloud, Multi-Tenancy, and the Middle Tier Why do we need a new middle tier? What are the required capabilities? Windows Azure and Server AppFabric What’s in it? When can I use it? 2
Server Apps are Easy, Aren’t They?
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions DB (SQL Server, MySQL, NoSQL) Web Server (ASP.NET, PHP, Ruby, …) Sessions Browser
Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions / State Apps Reference Data LOB Systems AuthN/Z Aggregate Data
… add “The Cloud” …
‘Box’ ISV Business is about R&D Cost Infrastructure Investment (Servers, Switches, Disks, Racks, Server Software, Power Supply, Cooling, …) Infrastructure Investment (Servers, Switches, Disks, Racks, Server Software, Power Supply, Cooling, …) ISV Software License Customer Upfront Cost ISV Maintenance Fees $ Customer Recurring Cost $ T T Income Scales With # of Customers Margin Widens as R&D Cost is Distributed Per Customer R&D Cost Margin ISV Recurring Cost
‘Cloud’ ISV Business is about Ops Cost Infrastructure Investment (Servers, Switches, Disks, Racks, Server Software, Power Supply, Cooling, …) Infrastructure Investment (Servers, Switches, Disks, Racks, Server Software, Power Supply, Cooling, …) ISV Software License Customer Upfront Cost Customer Recurring Cost T T $$ Service Operation Fee Service Operation Cost Margin Growth Opportunity within Current Customer Base - Incentive to Optimize Service Operation Cost Keys to lower ops cost Deployment Automation Self-Healing Architecture Auto-Scale High Density Multi-Tenancy Keys to lower ops cost Deployment Automation Self-Healing Architecture Auto-Scale High Density Multi-Tenancy
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions Apps Reference Data LOB Systems AuthN/Z Aggregate Data Multiple Application Multiple Tenant Multiple User
…. maybe not so easy, after all.
But there’s middleware to help with most of this …
… all sorts of middleware, in fact
AppFabric
How do you linearly scale your application to handle increasing load? How do you get better performance and reduced data access latencies? How do you store data mash-ups from multiple data repositories? How do you manage ASP.NET session state and page output caching? How do you reduce data-tier pressure without complex partitioning? How do you do all this with a predictable cost model? Access Control Workflow Web Services Service Bus Integration
Cache Service Commercial Availability End of April 2011* *Scheduled Release Date.
Windows Azure AppFabric Cache A distributed, in-memory cache for applications running in Windows Azure: –In-memory cache located near your Azure applications –Based on Windows Server AppFabric Caching Benefits: –Highly scalable with low latency and high throughput –Can dynamically increase and decrease as needed, without redeploying or modifying your application –User doesn’t have to bother with configuration, deployment, or management of their cache infrastructure
Key Capabilities & Benefits Easily integrates into existing apps –Cache-Aside Model –One API for Server and Cloud –ASP.NET Session State Provider –ASP.NET Page Output Caching Provider Very low latency with Local Cache Caches any serializable CLR object –No serialization costs for local caching Secured w/ Access Control Service Web Role DB Sessions Reference Data Activity Data Resource Data Output Local Cache
Cache Capacity Available in multiple sizes –128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB Use combination of these sizes or multiple of these to create your desired cache capacity Increase/decrease cache capacity dynamically –Data preserved when increasing capacity –Eviction policy followed when decreasing capacity
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions Apps Reference Data LOB Systems AuthN/Z Aggregate Data
Cache How do you achieve load-decoupling between subsystems? How do you balance work across scale-out workers? How do you distribute events to dynamic subscribers? How do you transfer messages reliably and transactionally? How do you reach into on-premise systems across firewalls? How do you organize and discover service endpoints? Access Control Workflow Web Services Service Bus Integration
Service Bus Commercially Available since January 2010 Brand-New Community Technology Preview Coming May 2011
Windows Azure AppFabric Service Bus Interconnect services across networks –Naming and Discovery –Connectivity w/ NAT and Firewall Traversal –Access Control Integrated Authorization Cloud-Based Message-Oriented Middleware –Next Generation Message Queue Technology –Rich Publish/Subscribe with Filtering –Transaction Integration Service Bus
New: Queues Producer In- Memory Consumer Durable Storage 2MB 100 MB Capacity Messages 60KB 256 KB Storage TTL 10 min No limit REST/HTTP SOAP/TCP AMQP/TCP Queue/Topic Message BufferMessage Buffer Durable, ReplicatedDurable, Replicated Rich FunctionalityRich Functionality GroupingGrouping For most decoupled scenariosFor most decoupled scenarios Volatile, not replicatedVolatile, not replicated Simple REST interfaceSimple REST interface Light online/offline scenariosLight online/offline scenarios
New: Topics Multiple independent (durable) subscriptions Multiple rules per subscription, each with one or more filters. Producer Topic Consumer Service Bus … ==
Windows Azure AppFabric Service Bus More on Service Bus in Christian Weyer’s session tomorrow at 13:00 Service Bus /svcA /svcA 2 /svcA 3 /svcA /msgB /svcC NAT Public Direct /msgB
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions Apps Reference Data LOB Systems AuthN/Z Aggregate Data
Cache Access Control Workflow Web Services Service Bus Integration How do you secure the edge of your system? How do you authorize users based on roles or groups? How do you federate with corporate Active Directory? How do you leverage Facebook or Google or Live ID or Yahoo ID? How do you manage service identities? How do you dynamically grant or revoke access? How do you obtain access tokens to other systems? How do you provide secure extensibility for applications?
Access Control “v2” Commercial Availability Released April 2011
Windows Azure AppFabric Access Control Federated Identity and AuthZ for any Application –Web, Desktop, Mobile –Identity Providers: Facebook, Google, Yahoo, Live ID Active Directory Federation Services 2.0 OAuth 2, Oauth WRAP WS-Trust 1.3 –Tokens Formats OAuth WRAP SWT SAML 1.1, SAML 2.0 Authorization Rules Access Control WS-* Google, Yahoo OAuth 2.0 Facebook Websites and web services Live ID OAuth WRAP Access Control Service Open ID Rule s
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions Apps Reference Data LOB Systems AuthN/Z Aggregate Data
How do you deploy your applications? How do you add resources to scale your app? How do you manage configuration as you scale? How do you handle stateful and stateless comps? How do you perform no-downtime upgrades? How do you manage the app execution lifecycle? How do you make your app highly available? How do you monitor usage? How do you isolate tenants? Access Control Workflow Web Services Service Bus Integration Cache
Windows Azure AppFabric “Container” Application Server Infrastructure –Deployment and Placement –Execution Lifecycle –Scale Out –High Availability –Isolation –Resource Management –Routing –Usage Monitoring Workflow Web Services
Browser Web Server (ASP.NET, PHP, Ruby, …) DB (SQL Server, MySQL, NoSQL) Sessions Services (WCF, WF, …) Sessions Apps Reference Data LOB Systems AuthN/Z Aggregate Data
AppFabric Roadmap H General Availability Caching CTP Refresh Composite App General Availability Access Control Release Service Bus enhancements Q General Availability Caching CTP Composite App General Availability Access Control CTP Refresh Service Bus enhancements Q CTP Refresh Caching CTP Refresh Access Control CTP Integration
Questions? Find me after this session outside the room.
Stay up to date with MSDN Belux Register for our newsletters and stay up to date: Technical updates Event announcements and registration Top downloads Follow our blog Join us on Facebook LinkedIn: Download MSDN/TechNet Desktop Gadget
TechDays 2011 On-Demand Watch this session on-demand via Channel9 Download to your favorite MP3 or video player Get access to slides and recommended resources by the speakers
THANK YOU