2 added 112 characters in body
source | link

There are hardware and software aspects:

Hardware: A starting point is going to be a single server with capable hardware - lots of RAM, multi-CPU system, tuned operating system, high performance disks, multiple disks (separate OS from other files, swap and data disks), multiple network cards (lots of incoming connections). Once you're beyond one large machine, you're going to be looking at multiple machines and load balancing solutions. Splitting out the database to a separate server with tons of RAM will help to a degree, but you'll soon need to add additional web servers. Measure

Where to invest depends on your web application and its' usage profile - measure the performance, response, utilisation, etc, and scale accordingly.

After this, you're going to be looking to spread servers around the globe, perhaps leveraging Content Distribution Networks to capitalise on their setup first.

Software: Proper server caching settings for the pages you serve will make a massive difference to your users and your bandwidth costs. Modern web browsers can cache all the JS and images that your site has. If you can structure your site to be as cache-able as possible, with the least number of dynamically-built pages, the better.

Use the Developer Tools in your browser to explore a popular site and see how they achieve great response.

There are hardware and software aspects:

Hardware: A starting point is going to be a single server with capable hardware - lots of RAM, multi-CPU system, tuned operating system, high performance disks, multiple disks (separate OS from other files). Once you're beyond one large machine, you're going to be looking at multiple machines and load balancing solutions. Splitting out the database to a separate server with tons of RAM will help to a degree, but you'll soon need to add additional web servers. Measure the performance, response, utilisation, etc, and scale accordingly.

After this, you're going to be looking to spread servers around the globe, perhaps leveraging Content Distribution Networks to capitalise on their setup first.

Software: Proper server caching settings for the pages you serve will make a massive difference to your users and your bandwidth costs. Modern web browsers can cache all the JS and images that your site has. If you can structure your site to be as cache-able as possible, with the least number of dynamically-built pages, the better.

Use the Developer Tools in your browser to explore a popular site and see how they achieve great response.

There are hardware and software aspects:

Hardware: A starting point is going to be a single server with capable hardware - lots of RAM, multi-CPU system, high performance disks, multiple disks (separate OS, swap and data disks), multiple network cards (lots of incoming connections). Once you're beyond one large machine, you're going to be looking at multiple machines and load balancing solutions. Splitting out the database to a separate server with tons of RAM will help to a degree, but you'll soon need to add additional web servers.

Where to invest depends on your web application and its' usage profile - measure the performance, response, utilisation, etc, and scale accordingly.

After this, you're going to be looking to spread servers around the globe, perhaps leveraging Content Distribution Networks to capitalise on their setup first.

Software: Proper server caching settings for the pages you serve will make a massive difference to your users and your bandwidth costs. Modern web browsers can cache all the JS and images that your site has. If you can structure your site to be as cache-able as possible, with the least number of dynamically-built pages, the better.

Use the Developer Tools in your browser to explore a popular site and see how they achieve great response.

1
source | link

There are hardware and software aspects:

Hardware: A starting point is going to be a single server with capable hardware - lots of RAM, multi-CPU system, tuned operating system, high performance disks, multiple disks (separate OS from other files). Once you're beyond one large machine, you're going to be looking at multiple machines and load balancing solutions. Splitting out the database to a separate server with tons of RAM will help to a degree, but you'll soon need to add additional web servers. Measure the performance, response, utilisation, etc, and scale accordingly.

After this, you're going to be looking to spread servers around the globe, perhaps leveraging Content Distribution Networks to capitalise on their setup first.

Software: Proper server caching settings for the pages you serve will make a massive difference to your users and your bandwidth costs. Modern web browsers can cache all the JS and images that your site has. If you can structure your site to be as cache-able as possible, with the least number of dynamically-built pages, the better.

Use the Developer Tools in your browser to explore a popular site and see how they achieve great response.