Scaling Out .Net


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Scaling Out .Net

  1. 1. Brian RitchieChief ArchitectPayformance CorporationEmail: brian.ritchie@gmail.comBlog: http://www.dotnetpowered.comScale Out your .NET applications by leveragingIIS7, AppFabric, Web Farm Framework, and Web Deploy
  2. 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 sourceprojects
  3. 3. » Increases Reliability» Increases Performance» Provides Elastic Scalability
  4. 4. » Design Considerations» Management Complexities» Maintenance Challenges
  5. 5. » Load Balancing˃Network Load Balancing˃Queued Processing˃Workflow Distribution» Distributed Caching
  6. 6. » Use load balancing to spread work across multiplemachines˃Building out instead of building up uses lower costresources˃Elastic scaling for extra capacity˃Prevent single point of failure
  7. 7. » Network Load Balancing˃ NLB: Network Load Balancer˃ ARR: Application Request Routing˃ F5 BigIP Local Traffic Manager
  8. 8. » Workflow Distribution˃ Windows Server AppFabric
  9. 9. » Queued Processing˃ Pick a queue: MSMQ, SQL Service Broker, SQL Table, etc.˃ Process it with a multi-threaded Always-On ServicesQueueWorkersEnqueue
  10. 10. 01020304050607080901001 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21NormalQueued
  11. 11. » Using caching to decrease load oncentralized database resources» Load balanced web servers requiredshared session
  12. 12. » 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
  13. 13. » A scaled out infrastructure presents its own set ofchallenges:˃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?
  14. 14. » IIS7+AppFabric: Application Platform˃ Unified application platform: web sites, web services, always-on services˃ Move your Windows Services to IIS7 with AppFabric to improvemanagement & deployment
  15. 15. » Web Deploy 2.1˃Combines all build resources into one package andmakes deploying applications to the host server easy˃Components• Command-line tools• Server-side service• MSBuild packaging support• Visual Studio configuration integration
  16. 16. » Web Deploy 2.1Build/Deploy ServerDeployIISServerIIS MMC – Import ApplicationPackageBuild Server(using MSBuild)DeploymentPackageIIS MMC – Export Application
  17. 17. » Web Farm Framework 2.0˃Centralized farm management˃Easily provision resources˃Distribute updates across the farm˃Ease maintenance with rolling upgrades & automaticload balancer control˃Extensible: Plug-ins for managing 3rd party loadbalancers
  18. 18. » Web Farm Framework 2.0controlPrimarycontrolsynchronizedeploy
  19. 19. » Windows Server AppFabric Dashboard
  20. 20. Hardware load balancerBigIP F5Web Farm• ASP.NET Web Application• IIS7• Web Farm Framework 2.0• Windows Server AppFabric• ASP.NET AppFabric Session Provider• Web DeployCache Cluster• AppFabric Cache ServiceDeployer• Web Deploy
  21. 21. » System Center Operations Manager withWindows 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
  22. 22. » Automate using:» Automation tools cover:• AppFabric• IIS7• Web Farm FarmworkPowershellAPI
  23. 23. » Web Farm Framework˃ Web Farm Framework˃ Scott Gu’s Introduce to WFF 2.0˃ WFF Documentation (including API & Powershell)» Windows AppFabric˃ AppFabric Architecture Guide˃ AppFabric Management Pack for Op Mgr 2007˃ AppFabric Presentation» Other˃ Memcached ASP.NET Providers˃ SQL Table Queues˃ Azure Scalability using Queues˃ Web Deploy Team Blog˃ Application Request Routing