COS318 Server Apps are Easy, Aren’t They? Browser Web Server (ASP.NET, PHP, Ruby, …) Sessions DB (SQL Server, MySQL, NoSQL)
Download ReportTranscript COS318 Server Apps are Easy, Aren’t They? Browser Web Server (ASP.NET, PHP, Ruby, …) Sessions DB (SQL Server, MySQL, NoSQL)
COS318 Server Apps are Easy, Aren’t They? Browser Web Server (ASP.NET, PHP, Ruby, …) Sessions DB (SQL Server, MySQL, NoSQL) Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Reference Data AuthN/Z Services Aggregate Data (WCF, WF, …) Sessions / State Reference Data DB LOB Systems (SQL Server, MySQL, NoSQL) … add “The Cloud” … ‘Box’ ISV Business is about R&D Cost $ $ (Servers, Switches, Disks, Racks, Server Software, Power Supply, Cooling, …) Customer Recurring Cost Infrastructur e Investment ISV Recurring Cost Customer Upfront Cost ISV Software License ISV Maintenance Fees Margin T Income Scales With # of Customers Margin Widens as R&D Cost is Distributed ‘Cloud’ ISV Business is about Ops Cost $ $ Racks, Server Software, Power Supply, Cooling, …) Customer Recurring Cost Keys to lower ops cost • Deployment Automation • Self-Healing Architecture Infrastructur • Auto-Scale e Investment • High Density (Servers, • Multi-Tenancy Switches, Disks, ISV Recurring Cost Customer Upfront Cost ISV Software License Service Operation Fee Margin Service Operation Cost T Growth Opportunity within Current Customer Base - Incentive to Optimize Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Multiple User Reference Data Multiple Tenant AuthN/Z Services Aggregate Data (WCF, WF, …) Multiple Application Sessions Reference Data LOB Systems DB (SQL Server, MySQL, NoSQL) …. maybe not so easy, after all. But there’s middleware to help with most of this … … all sorts of middleware, in fact Windows Azure AppFabric Service Bus Access Control Web Services Workflow Integration • 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? Windows Azure AppFabric Cache • A distributed, in-memory cache for apps running in 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 Web Role • Easily integrates into existing apps – – – – Local Cache Cache-Aside Model One API for Server and Cloud ASP.NET Session State Provider ASP.NET Page Output Caching Provider Output Sessions Reference Data • Very low latency with Local Cache • Caches any serializable CLR object Activity Data Resource Data – No serialization costs for local caching • Secured w/ Access Control Service DB 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 Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Reference Data AuthN/Z Services Aggregate Data (WCF, WF, …) Sessions Reference Data LOB Systems DB (SQL Server, MySQL, NoSQL) Cache • • • • • Service Bus Access Control Web Services Workflow Integration 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? Windows Azure AppFabric Service Bus 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 Queues! P • • • • Queue C Reliable, durable storage – up to 1GB per Queue* Queues stay in the system once created, no TTL limit Max message size 256KB, Sessions allow grouping Messaging API, WCF, and HTTP/REST Interfaces *Limited to 100MB per Queue for CTP Topics! P • • • • Topic S C S C S C All the Features of Queues + Publish/Subscribe Up to 2000 Subscriptions on a Topic Each Subscription is a virtual queue getting message copies Subscriptions can have filters and actions Windows Azure AppFabric Service Bus Service Bus /svcA /msgB /svcA /svcA2 /msgB /svcC /svcA3 Public /svcC NAT /svcC Direct • More on Service Bus in my session tomorrow at 10:50 in room Missisippi Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Reference Data AuthN/Z Services Aggregate Data (WCF, WF, …) Sessions Reference Data LOB Systems DB (SQL Server, MySQL, NoSQL) Cache • • • • • • • • Service Bus Access Control Web Services Workflow 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? Windows Azure AppFabric Access Control 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 OAuth WRAP OAuth 2.0 WS-* Access Control Service Open ID Rules Google, Yahoo Facebook Live ID Websites and web services Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Reference Data AuthN/Z Services Aggregate Data (WCF, WF, …) Sessions Reference Data LOB Systems DB (SQL Server, MySQL, NoSQL) Cache • • • • • • • • • Service Bus Access Control Web Services Workflow Integration 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? Windows Azure AppFabric Application Manager Web Services Workflow • Application Server Infrastructure – – – – – – – – Deployment and Placement Execution Lifecycle Scale Out High Availability Isolation Resource Management Routing Usage Monitoring Apps Browser AuthN/Z Web Server (ASP.NET, PHP, Ruby, …) Sessions Reference Data AuthN/Z Services Aggregate Data (WCF, WF, …) Sessions Reference Data LOB Systems DB (SQL Server, MySQL, NoSQL) AppFabric Roadmap Q1 2011 Q2 2011 H2 2011 CTP Refresh Access Control General Availability Access Control General Availability Access Control CTP Refresh Caching General Availability Caching General Availability Caching CTP Refresh Service Bus enhancements Release Service Bus enhancements CTP Application Manager CTP Refresh Application Manager CTP Integration Blue Section http://www.microsoft.com/cloud/ http://www.microsoft.com/privatecloud/ http://www.microsoft.com/windowsserver/ http://www.microsoft.com/windowsazure/ http://www.microsoft.com/systemcenter/ http://www.microsoft.com/forefront/ http://northamerica.msteched.com www.microsoft.com/teched www.microsoft.com/learning http://microsoft.com/technet http://microsoft.com/msdn