COS318 Server Apps are Easy, Aren’t They? Browser Web Server (ASP.NET, PHP, Ruby, …) Sessions DB (SQL Server, MySQL, NoSQL)

Download Report

Transcript 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