Site . NET with high performance

Asked

Viewed 337 times

2

I will start building a website to purchase tickets and the access forecast to main page is 8000 users per minute.

We must use C# . NET and MVC.

The database, design standard, ORM and frameworks are open and can be chosen.

So far I think about making a Webapi 2.0 with standard Repository and Micro ORM Dapper, Angularjs and SQL Server database but I would like to know some opinions.

What is your suggestion? Would you implement a queuing system or for that amount of users is not necessary?

Note. Take into account a medium to low potential server.

  • What would be a queue system?

  • Similar to what some shopping sites do on black Friday. From a number X of accesses appears a message: "You are the number 10 of the queue, wait".

  • Does this happen to navigate, to close the purchase, or what? I’m wondering why you need to do this. I would already reply beforehand that there is only one way to know. Test. Go doing and go doing load tests.

  • I agree. And regarding architecture, frameworks, bank etc, would you use something different? Mongodb for example

  • That’s very specific, but I don’t think so. This site (or better yet, the OS) has an absurdly bigger traffic (and I think you’re being optimistic about this idea of 8k users/minute) and uses SQL Server and various levels of cache. Now this is important. See if there are any more details, I’ll put an answer that is not something specific, but I don’t think this can even answer, but it will be something not to be just in the comment.

  • I appreciate your help bigown. The question really is subjective, any advice or suggestion is welcome. I won’t worry about queuing initially, I’ll do the site and the load tests and if that points out a problem, I’ll think back to the queuing system.

Show 1 more comment

1 answer

5


Consolidating what is in the comments.

Any decision has to go through loading tests and stress or actual use in production. It is no use to assume things. And you will have to redo these tests as you add functionality.

Anyway if you do not know what you are doing you will have problems regardless of the system you create and even the hardware you use.

This queue system for me is something weird. I think it’s barbering, I doubt what it would be necessary if I knew what you’re doing.

The Stack Exchange network you are using now has a lot of access and has no problems. They basically use the technology you want to use. Can Mongodb be better than SQL Server for your case? You know better than me.

I have my doubts if I should use Angularjs, I think there is a lot of use for fashion, but it would be just my opinion. I even think this will reduce the efforts needed on the server. But there are other good or bad implications.

Of course, at a certain point the solution is to add hardware. Horizontally or vertically. There is no way. And it comes out absurdly cheaper than implementing a complex software solution too complex to develop or support.

The biggest mistake I see in this statement is specifying which hardware to run on. The hardware should be sized according to the need, not keep changing the software to meet the hardware limitation, because this is not always possible. Even when it is, the option is the worst possible.

As you need it you can improve some things. But at first you would learn a lot about cache. Do it on several levels. This helps a lot to have scalability and even deal with some types of attack.

Of course, the design application can greatly influence performance. I’m not going to talk about this because there are no details that I can say anything appropriate, but I see a lot of software having performance issues because they were poorly designed (nor am I talking about poorly written code, which also causes problems). At some point you’ll have to think about whether you want a feature. There are things that would make this site much better than it is, but it doesn’t allow because it would greatly increase the processing cost. They chose performance over UX (although performance is also an aspect of UX). There are many websites that do this. Facebook and Google live making decisions like this. But remember that you are not Facebook.

  • 1

    Great answer, tbm I think there is no way to assume the performance before developing the application, much less based on the information of a "Medium/Low Hardware". Anyway, I believe that the stack proposed running on Azure would support, at affordable cost, any workload.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.