Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Scaling Out .NET
1. Scaling Out .NET Scale Out your .NET applications by leveraging IIS7, AppFabric, Web Farm Framework, and Web Deploy Brian Ritchie Chief ArchitectPayformance Corporation Email: brian.ritchie@gmail.com Blog: http://weblog.asp.net/britchie Web: http://www.dotnetpowered.com
2. Who am I? 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
3. Reasons to scale out Increases Reliability Increases Performance Provides Elastic Scalability
5. Scale Out Challenges Design Considerations Management Complexities Maintenance Challenges
6. Components of a scaled out architecture Load Balancing Network Load Balancing Queued Processing Workflow Distribution Distributed Caching
7. Increase Reliability & PerformanceLoad Balancing 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. Increase Reliability & PerformanceLoad Balancing Options 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. Increase Reliability & PerformanceCaching Using caching to decrease load on centralized database resources Load balanced web servers required shared session
13. Increase Reliability & PerformanceDistribute Your Cache 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. Management & MaintenanceChallenges 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?
16. Management & Maintenance Solutions:Application Platform 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
21. Management & MaintenanceSolutions 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
34. Web Farm Framework Web Farm Frameworkhttp://www.iis.net/download/WebFarmFramework Scott Gu’s Introduce to WFF 2.0http://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 Guidehttp://blogs.msdn.com/b/yasserabdelkader/archive/2010/09/12/release-of-windows-server-appfabric-architecture-guide.aspx 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 AppFabric Presentationhttp://rstonkus.wordpress.com/2010/10/28/partner-conference-windows-server-appfabric/ Other Memcached ASP.NET Providershttp://memcachedproviders.codeplex.com/ SQL Table Queueshttp://www.mssqltips.com/tip.asp?tip=1257 Azure Scalability using Queueshttp://www.cloudbook.net/resources/stories/-azure-scalability--use-queues-as-your-bridges Web Deploy Team Bloghttp://blogs.iis.net/msdeploy/default.aspx 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 Learn More