1. Brian Ritchie
Chief Architect
Payformance Corporation
Email: brian.ritchie@gmail.com
Blog: http://weblog.asp.net/britchie
Web: http://www.dotnetpowered.com
Scale Out your .NET applications by leveraging
IIS7, AppFabric, Web Farm Framework, and Web Deploy
2. Brian Ritchie
» Chief Architect at Payformance Corporation
» Nearly 20 years of development experience
» Developing on .NET since 1.0 Beta 1
» Contributed to Mono and other open source
projects
7. » Use load balancing to spread work across multiple
machines
˃Building out instead of building up uses lower cost
resources
˃Elastic scaling for extra capacity
˃Prevent single point of failure
10. » Queued Processing
˃ Pick a queue: MSMQ, SQL Service Broker, SQL Table, etc.
˃ Process it with a multi-threaded Always-On Services
Queue
Workers
Enqueue
12. » Using caching to decrease load on
centralized database resources
» Load balanced web servers required
shared session
13. » A Distributed Cache has these benefits:
˃In-Memory for Performance
˃Replicated for Reliability
˃ASP.NET providers for easy integration
˃Doesn’t add a single point of failure
» Options
˃Windows Server AppFabric Cache (“Velocity”)
˃MemCached
14. » A scaled out infrastructure presents its own set of
challenges:
˃How do I provision resources easily?
˃Do I need to manage each machine individually?
˃How do I deploy application updates?
˃How do I automate the manual tasks?
15.
16. » IIS7+AppFabric: Application Platform
˃ Unified application platform: web sites, web services, always-on services
˃ Move your Windows Services to IIS7 with AppFabric to improve
management & deployment
17. » Web Deploy 2.1
˃Combines all build resources into one package and
makes deploying applications to the host server easy
˃Components
• Command-line tools
• Server-side service
• MSBuild packaging support
• Visual Studio configuration integration
18. » Web Deploy 2.1
Build/Deploy Server
Deploy
IIS
Server
IIS MMC – Import Application
Package
Build Server
(using MSBuild)
Deployment
Package
IIS MMC – Export Application
19. » Web Farm Framework 2.0
˃Centralized farm management
˃Easily provision resources
˃Distribute updates across the farm
˃Ease maintenance with rolling upgrades & automatic
load balancer control
˃Extensible: Plug-ins for managing 3rd party load
balancers
20. » Web Farm Framework 2.0
control
Primary
control
synchronize
deploy
22. Hardware load balancer
BigIP F5
Web Farm
• ASP.NET Web Application
• IIS7
• Web Farm Framework 2.0
• Windows Server AppFabric
• ASP.NET AppFabric Session Provider
• Web Deploy
Cache Cluster
• AppFabric Cache Service
Deployer
• Web Deploy
23. » System Center Operations Manager with
Windows Server AppFabric Management Pack
˃ AppFabric Event Collection service
˃ AppFabric Workflow Management service
˃ AppFabric Caching Service
˃ AppFabric SQL monitoring databases
˃ AppFabric SQL Workflow Instance Stores
˃ AppFabric database connections
˃ IIS Hosted WCF and WF services
24. » Automate using:
» Automation tools cover:
• AppFabric
• IIS7
• Web Farm Farmwork
Powershell
API
25.
26. » Web Farm Framework
˃ Web Farm Framework
http://www.iis.net/download/WebFarmFramework
˃ Scott Gu’s Introduce to WFF 2.0
http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx
˃ WFF Documentation (including API & Powershell)
http://learn.iis.net/page.aspx/905/microsoft-web-farm-framework-20-for-iis-7/
» Windows AppFabric
˃ AppFabric Architecture Guide
http://blogs.msdn.com/b/yasserabdelkader/archive/2010/09/12/release-of-windows-server-appfabric-architecture-guide.aspx
˃ AppFabric Management Pack for Op Mgr 2007
http://blogs.technet.com/b/appfabric/archive/2010/06/14/appfabric-management-pack-available-for-operations-manager-
2007.aspx
˃ AppFabric Presentation
http://rstonkus.wordpress.com/2010/10/28/partner-conference-windows-server-appfabric/
» Other
˃ Memcached ASP.NET Providers
http://memcachedproviders.codeplex.com/
˃ SQL Table Queues
http://www.mssqltips.com/tip.asp?tip=1257
˃ Azure Scalability using Queues
http://www.cloudbook.net/resources/stories/-azure-scalability--use-queues-as-your-bridges
˃ Web Deploy Team Blog
http://blogs.iis.net/msdeploy/default.aspx
˃ Application Request Routing
http://www.iis.net/download/ApplicationRequestRouting
http://learn.iis.net/page.aspx/486/http-load-balancing-using-application-request-routing/
http://blogs.iis.net/mailant/archive/2010/03/25/how-iis-application-request-routing-arr-powers-elastic-scale-for-
maximumasp.aspx