Scaling Out .NET

5,658 views

Published on

Scale Out your .NET applications by leveraging IIS7, AppFabric, Web Farm Framework, and Web Deploy. Jax Code Camp 2011.

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
  • Ritchie,
    its really a very well explained and easy to understand presentation. being a user of distributed cache, there is no doubt that it can enhance the performance ans scalability of your app. I've evaluated a couple of third party distributed cache providers during one of my projects but I personally recommend NCache by Alachisoft( http://www.alachisoft.com/ncache/index.html )
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
5,658
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
116
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Scaling Out .NET

  1. 1. Scaling Out .NET<br />Scale Out your .NET applications by leveraging <br />IIS7, AppFabric, Web Farm Framework, and Web Deploy<br />Brian Ritchie<br />Chief ArchitectPayformance Corporation<br />Email: brian.ritchie@gmail.com<br />Blog: http://weblog.asp.net/britchie<br />Web: http://www.dotnetpowered.com<br />
  2. 2. Who am I?<br />Brian Ritchie<br />Chief Architect at Payformance Corporation<br />Nearly 20 years of development experience<br />Developing on .NET since 1.0 Beta 1<br />Contributed to Mono and other open source projects<br />
  3. 3. Reasons to scale out<br />Increases Reliability<br />Increases Performance<br />Provides Elastic Scalability<br />
  4. 4. So why isn’t everyone doing it?<br />
  5. 5. Scale Out Challenges<br />Design Considerations<br />Management Complexities<br />Maintenance Challenges<br />
  6. 6. Components of a scaled out architecture<br />Load Balancing<br />Network Load Balancing<br />Queued Processing<br />Workflow Distribution<br />Distributed Caching<br />
  7. 7. Increase Reliability & PerformanceLoad Balancing<br />Use load balancing to spread work across multiple machines<br />Building out instead of building up uses lower cost resources<br />Elastic scaling for extra capacity<br />Prevent single point of failure<br />
  8. 8. Network Load Balancing<br />NLB: Network Load Balancer<br />ARR: Application Request Routing<br />F5 BigIP Local Traffic Manager<br />Increase Reliability & PerformanceLoad Balancing Options<br />
  9. 9. Workflow Distribution<br />Windows Server AppFabric<br />Increase Reliability & PerformanceLoad Balancing Options<br />
  10. 10. Increase Reliability & PerformanceLoad Balancing Options<br />Queued Processing<br />Pick a queue: MSMQ, SQL Service Broker, SQL Table, etc.<br />Process it with a multi-threaded Always-On Services<br />Queue<br />Workers<br />Enqueue<br />
  11. 11. Effects of Queued Processing<br />
  12. 12. Increase Reliability & PerformanceCaching<br />Using caching to decrease load on centralized database resources<br />Load balanced web servers required shared session<br />
  13. 13. Increase Reliability & PerformanceDistribute Your Cache<br />A Distributed Cache has these benefits:<br />In-Memory for Performance<br />Replicated for Reliability<br />ASP.NET providers for easy integration<br />Doesn’t add a single point of failure<br />Options<br />Windows Server AppFabric Cache (“Velocity”)<br />MemCached<br />
  14. 14. Management & MaintenanceChallenges<br />A scaled out infrastructure presents its own set of challenges:<br />How do I provision resources easily?<br />Do I need to manage each machine individually?<br />How do I deploy application updates?<br />How do I automate the manual tasks?<br />
  15. 15. The Solution…<br />
  16. 16. Management & Maintenance Solutions:Application Platform<br />IIS7+AppFabric: Application Platform<br />Unified application platform: web sites, web services, always-on services<br />Move your Windows Services to IIS7 with AppFabric to improve management & deployment<br />
  17. 17. Management & Maintenance Solutions:Deployment Automation<br />Web Deploy 2.1 <br />Combines all build resources into one package and makes deploying applications to the host server easy<br />Components<br /><ul><li>Command-line tools
  18. 18. Server-side service
  19. 19. MSBuild packaging support
  20. 20. Visual Studio configuration integration</li></li></ul><li>Management & Maintenance Solutions:Deployment Automation<br />Web Deploy 2.1 <br />Deploy<br />Package<br />Build/Deploy Server<br />Build Server<br />(using MSBuild)<br />Deployment<br />Package<br />IIS<br />Server<br />IIS MMC – Export Application<br />IIS MMC – Import Application<br />
  21. 21. Management & MaintenanceSolutions<br />Web Farm Framework 2.0<br />Centralized farm management<br />Easily provision resources<br />Distribute updates across the farm<br />Ease maintenance with rolling upgrades & automatic load balancer control<br />Extensible: Plug-ins for managing 3rd party load balancers<br />
  22. 22. Management & MaintenanceSolutions<br />Web Farm Framework 2.0<br />synchronize<br />deploy<br />control<br />control<br />Primary<br />
  23. 23. Management & Maintenance Solutions: Monitoring via AppFabric<br />Windows Server AppFabric Dashboard<br />
  24. 24. Putting it all togetherwith a sample web farm<br />DEMO<br />Hardware load balancerBigIP F5<br />Web Farm<br /><ul><li>ASP.NET Web Application
  25. 25. IIS7
  26. 26. Web Farm Framework 2.0
  27. 27. Windows Server AppFabric
  28. 28. ASP.NET AppFabric Session Provider
  29. 29. Web Deploy</li></ul>Deployer<br /><ul><li>Web Deploy</li></ul>Cache Cluster<br /><ul><li>AppFabric Cache Service</li></li></ul><li>Management & Maintenance Solutions: Monitoring via Operations Manager<br />System Center Operations Manager with Windows Server AppFabric Management Pack<br />AppFabric Event Collection service<br />AppFabric Workflow Management service<br />AppFabric Caching Service<br />AppFabric SQL monitoring databases<br />AppFabric SQL Workflow Instance Stores<br />AppFabric database connections<br />IIS Hosted WCF and WF services<br />
  30. 30. Management & Maintenance Solutions: Task Automation<br />Automate using: <br />Automation tools cover:<br /><ul><li>AppFabric
  31. 31. IIS7
  32. 32. Web Farm Farmwork</li></ul>Powershell<br />API<br />
  33. 33. Questions?<br />
  34. 34. Web Farm Framework<br />Web Farm Frameworkhttp://www.iis.net/download/WebFarmFramework<br />Scott Gu’s Introduce to WFF 2.0http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx<br />WFF Documentation (including API & Powershell)http://learn.iis.net/page.aspx/905/microsoft-web-farm-framework-20-for-iis-7/<br />Windows AppFabric<br />AppFabric Architecture Guidehttp://blogs.msdn.com/b/yasserabdelkader/archive/2010/09/12/release-of-windows-server-appfabric-architecture-guide.aspx<br />AppFabric Management Pack for Op Mgr 2007http://blogs.technet.com/b/appfabric/archive/2010/06/14/appfabric-management-pack-available-for-operations-manager-2007.aspx<br />AppFabric Presentationhttp://rstonkus.wordpress.com/2010/10/28/partner-conference-windows-server-appfabric/<br />Other<br />Memcached ASP.NET Providershttp://memcachedproviders.codeplex.com/<br />SQL Table Queueshttp://www.mssqltips.com/tip.asp?tip=1257<br />Azure Scalability using Queueshttp://www.cloudbook.net/resources/stories/-azure-scalability--use-queues-as-your-bridges<br />Web Deploy Team Bloghttp://blogs.iis.net/msdeploy/default.aspx<br />Application Request Routinghttp://www.iis.net/download/ApplicationRequestRoutinghttp://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<br />Learn More<br />

×