1 / 31

Serving 10 million requests per day How to solve the architecture challenges of a high traffic ASP.NET website Leve

Serving 10 million requests per day How to solve the architecture challenges of a high traffic ASP.NET website Level 400. Dan Fizesan, Lead Developer, NetMatch – Travel Technology Solutions. ITCamp 2012 sponsors. Who am I. Dan Fizesan, 37 years old .

chapa
Download Presentation

Serving 10 million requests per day How to solve the architecture challenges of a high traffic ASP.NET website Leve

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Serving 10 million requests per dayHow to solve the architecture challenges of a high traffic ASP.NET websiteLevel 400 Dan Fizesan, Lead Developer, NetMatch – Travel Technology Solutions

  2. ITCamp 2012 sponsors

  3. Who am I • Dan Fizesan, 37 years old. • 15 year experience with Progress / C# / ASP.NET / T-SQL. • Technical Architect / Lead developer in NetMatch / Zoover project. • NetMatch international company e-business provider for tourism industry • Zoover is a website with reviews about trips on average 500.000 unique visitors per day • Contact: d.fizesan@netmatch.ro

  4. Agenda • Architecture of a web application • Deep dive into the macro architecture • Serving 10 million requests a day - final view • Demo • Q & A

  5. Context • More and more users are using the online websites • Applications on mobile devices are using data from the web data services • The FOCUS in the presentation are on-premise applications that are also subject to above trends

  6. Architectural Goals • Be online as much time as possible • Serve as many users as possible • Low cost of ownership • Good performance

  7. Architectural Goals • Be online as much time as possible • Serve as many users as possible • Low cost of ownership • Good performance

  8. Availability • We reach high availability when more than 90% of the time the website is working correctly • 99% availability = the website is down 87,6 hours in a year (or 15 minutes every day) • 99.99% availability = the system is down less then 1 hour per year • Our systems go for 99.9% availability

  9. Challenge How can we reach 99.9% availability? • Through passive redundancy – failover • Through active redundancy • Through data sources replication

  10. Load Balancers + Failover • Hardware load balancers • Software load balancers: Network Load Balancer, Ha Proxy, etc. • Algorithms to spread the load • Implementing failover is crucial • Alternative: Producer-consumer pattern – used in IIS

  11. Challenge Web is stateless, what happens with the state when using a web farm? • No sessions stickiness: • SQL (session) state server, • distributed cache session state, • use cookies • With session stickiness • performs worse • can lead to overloaded servers

  12. Architectural Goals • Be online as much time as possible • How can we serve as many users as possible? • Partly through using load balancers • Partly through scalability of the website • Low cost of ownership • Good performance

  13. Scalability • The ability of the website to grow the user base by adding more hardware • The more linear the relation is, the more scalable the website is • Vertical scalability • Horizontal scalability, lower costs using commodity hardware

  14. Architectural Goals • Be online as much time as possible • How can we serve as many users as possible? • Partly through using load balancers • Partly through scalability of the website • Low cost of ownership • Good performance

  15. Distributed Caching • Helps the backend (database/services) • Advantage: brings consistency in an webfarm • Disadvantages: latency • Some of the free options: • Windows Server AppFabric Caching, memcached • Some of the commercial options: • NCache, Azure AppFabriccaching

  16. Challenge How can we protect the website in the case the distributed cache goes down or is not reachable? • Through implementing failover caching mechanisms in the website

  17. Architectural Goals • Be online as much time as possible • Through high availability • Serve as many users as possible • Partly through using load balancers • Partly through scalability of the website • Low cost of ownership • Good performance

  18. Perceived good performance • Web code/ business layer performance • Database queries performance • Flat databases • Replicated databases • Distributed architecture • splitting into sub-applications • Parallelization of the code (demo)

  19. Challenge How can we use distributed architecture and have a good performance? • We should externalize the resource-intensive parts of the application into sub-applications • Choosing wrong parts will only add (network) latency

  20. Our architecture to serve 10 million requests per day

  21. Demo Results 300 requests

  22. Contact: d.fizesan@netmatch.ro www.netmatch.ro/itcamp2012/challenges.pptx www.netmatch.ro/itcamp2012/demo.zip Q & A

  23. To Remember • Availability • Redundancy • Load balancer • Scalability • Distributed caching • Performance

More Related