Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which .net architecture should I implement for 10,000 concurrent users for web application [closed]

I need to create a web application for tasks delegation, monitor and generate reports for a organization.

I am thinking about ASP.Net and MVC should be the architecture to support so many concurrent users. Is there any other better architecture that I should be looking for ?

What kind of server configuration will require to hold this application ? How do I test so many users connected before I launch this application, is there any free/economical testing tools available ?

Thanks in advance. anil

like image 554
ANIL MANE Avatar asked Nov 18 '09 07:11

ANIL MANE


People also ask

What server size do I need for 10000 users?

A quad core server with 32 / 64 GB ram is a good server to start with. You can opt for at least 2 drives in RAID 1, you'll get fairly good performance from an SSD anyway but RAID 1 would really be for redundancy purposes. Everything else depends on optimization at software level really.

What is clean architecture. net Core?

Clean architecture puts the business logic and application model at the center of the application. Instead of having business logic depend on data access or other infrastructure concerns, this dependency is inverted: infrastructure and implementation details depend on the Application Core.

What is .NET core architecture?

ASP.NET Core is a revised version of ASP.NET that includes architectural improvements to create a modular framework. With ASP.NET Core, you can do the following: Build web apps and services, IoT Apps, and mobile backends. Use development tools on Windows, macOS, and Linux.


2 Answers

the choice of MVC versus webforms have little/nothing to do with the ability for the app to handle load. Your problems will be reading/writing to the DB, and that doesn't change no matter which of the two you choose. ideas for improving ability to handle load:

first and foremost: absolute minimum is two servers: web server and DB server, they should NEVER run on the same box.

DB: Efficient queries towards the DB, indexes in the DB, denormalizing tables that are hit a lot, CACHE, CACHE CACHE, running the DB in a cluster, oh, and did I mention CACHING?

Processing: if you need heavy processing, do this in web services that can run on separate machines from the web servers so that you can scale out (buy more servers and put them behind a load balancer if needed)

WEB: avoid the need for server affinity (so that it doesn't matter which web server serves a given user at any given time) this means using DB or StateServer to store sessions, syncing the MachineKey on the servers.

the decision of using MVC or not have NO impact on the ability to handle 10k concurrent users, however it's a HUGE benefit to use MVC if you want the site to be unit-testable

remember: Applications are either testable or detestable, your choice

like image 83
AndreasKnudsen Avatar answered Nov 25 '22 22:11

AndreasKnudsen


Cache Cache Cache Cache :-) a smart caching policy will make even one server go a long way ... aside from that, you will need to find out where your bottleneck will be. If your application is database heavy, then you will need to consider scaling your database either by clustering, or sharding. If you expect your web server to be the bottleneck (for example if you are doing a lot of processing, like image processing or something), then you can put a load balancer to distribute requests between N number of servers in your webfarm.

like image 43
Joel Martinez Avatar answered Nov 26 '22 00:11

Joel Martinez