469,913 Members | 1,947 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,913 developers. It's quick & easy.

ASP.NET 2.0 application across three physical servers?

Hi folks,

We're looking for a CMS system for our organisation, and we're picking
potential solutions.

We need something that is scalable cause we're a growing company, so
there's potentially 2000+ simultaneous users.

It's been recommended that we favour applications which can be
separated into three separate physical tiers (web server, application
server, and sql server). The justification being that it's very
expensive to add additional application servers just because you're
web traffic increases.

In my experience, I've never seen anyone deploy a typcial ASP.NET web
site in this way, where there is a separate application server.
Instead, I've seen IIS and the .NET App always live on the same
machine, possibly in a load balanced cluster etc (see below).

Small Scale
=========
Server A - IIS, .NET App, MSSQL

Small/Medium Scale
==========
Server A - IIS, .NET App
Server B - MSSQL

Medium Scale
==========
Server A - Load Balancer
Server B - IIS, .NET App
Server C - IIS, .NET App
Server D - MSSQL
Server E - MSSQL Session State Server

How would you go about deploying a "typical" .NET application across 3
tiers? Would you want to?
>From what I understand, web services/messaging/remoting/COM+ are all
ways of allowing independent deployment of the application tier (I've
used some of these myself), but these come with their own costs and
complexities. For most .NET apps I'd favour clustering for simple
scalability. Am I missing something?

Hope this makes sense

Tobin

Note that I'm not knocking the Web/App/Data server approach, I use
this with RubyOnRails all the time (Apache Server / Mongrels App
Servers / MySQL).

Feb 13 '07 #1
4 1310
I'm not sure I understand your question. If you are talking about "tiers"
that usually refers to the logical, not physical (e.g. "data tier" "business
logic tier", etc)

You can certainly set up an app in conformance with your "Medium Scale"
example - it's no big deal. Is your question related to "how to do that"?
Peter

--
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
Short urls & more: http://ittyurl.net


"to***@tobinharris.com" wrote:
Hi folks,

We're looking for a CMS system for our organisation, and we're picking
potential solutions.

We need something that is scalable cause we're a growing company, so
there's potentially 2000+ simultaneous users.

It's been recommended that we favour applications which can be
separated into three separate physical tiers (web server, application
server, and sql server). The justification being that it's very
expensive to add additional application servers just because you're
web traffic increases.

In my experience, I've never seen anyone deploy a typcial ASP.NET web
site in this way, where there is a separate application server.
Instead, I've seen IIS and the .NET App always live on the same
machine, possibly in a load balanced cluster etc (see below).

Small Scale
=========
Server A - IIS, .NET App, MSSQL

Small/Medium Scale
==========
Server A - IIS, .NET App
Server B - MSSQL

Medium Scale
==========
Server A - Load Balancer
Server B - IIS, .NET App
Server C - IIS, .NET App
Server D - MSSQL
Server E - MSSQL Session State Server

How would you go about deploying a "typical" .NET application across 3
tiers? Would you want to?
From what I understand, web services/messaging/remoting/COM+ are all
ways of allowing independent deployment of the application tier (I've
used some of these myself), but these come with their own costs and
complexities. For most .NET apps I'd favour clustering for simple
scalability. Am I missing something?

Hope this makes sense

Tobin

Note that I'm not knocking the Web/App/Data server approach, I use
this with RubyOnRails all the time (Apache Server / Mongrels App
Servers / MySQL).

Feb 13 '07 #2
On 13 Feb, 17:49, Peter Bromberg [C# MVP]
<pbromb...@yahoo.yabbadabbadoo.comwrote:
I'm not sure I understand your question. If you are talking about "tiers"
that usually refers to the logical, not physical (e.g. "data tier" "business
logic tier", etc)

You can certainly set up an app in conformance with your "Medium Scale"
example - it's no big deal. Is your question related to "how to do that"?

Peter
Thanks for the reply, I'll try and be clearer!

Essentially I'm asking if it's common to have a 3-server setup for a
typical ASP.NET site rather than a 2-server setup. In the 3 server
setup one server acts as a presentation server (web), another acts as
an *application server*, and then the 3rd acts as a database server. I
don't think I've ever seen this configuration in ASP.NET - the web and
application server are usually one and the same.

We have an advisor who is telling us that, for scalability, we should
be aiming for this three server deployment model. However, I was
trying to think how this might be achieved in .NET without having to
re-write the site to use services, remoting or messaging. Our
application doesn't seem to warrant the complexity that this would
involve, and scaling can probably be done by mirroring & load
balancing instead.

Hope that makes some sense!

Tobin

Feb 14 '07 #3
Scalability is not necessarily improved by moving "pieces" of an application
to separate physical machines. For example, when a SQL Server is located on a
separate machine, more network latency comes into play for each SQL call than
if it were on the same machine.
There are a lot of factors to consider, and each application has different
characteristics under load. Load testing is one way to compare the results of
different deployment scenarios.
Peter

--
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
Short urls & more: http://ittyurl.net


"to***@tobinharris.com" wrote:
On 13 Feb, 17:49, Peter Bromberg [C# MVP]
<pbromb...@yahoo.yabbadabbadoo.comwrote:
I'm not sure I understand your question. If you are talking about "tiers"
that usually refers to the logical, not physical (e.g. "data tier" "business
logic tier", etc)

You can certainly set up an app in conformance with your "Medium Scale"
example - it's no big deal. Is your question related to "how to do that"?

Peter

Thanks for the reply, I'll try and be clearer!

Essentially I'm asking if it's common to have a 3-server setup for a
typical ASP.NET site rather than a 2-server setup. In the 3 server
setup one server acts as a presentation server (web), another acts as
an *application server*, and then the 3rd acts as a database server. I
don't think I've ever seen this configuration in ASP.NET - the web and
application server are usually one and the same.

We have an advisor who is telling us that, for scalability, we should
be aiming for this three server deployment model. However, I was
trying to think how this might be achieved in .NET without having to
re-write the site to use services, remoting or messaging. Our
application doesn't seem to warrant the complexity that this would
involve, and scaling can probably be done by mirroring & load
balancing instead.

Hope that makes some sense!

Tobin

Feb 14 '07 #4
jb
But, what do you mean with .net app?

As I know, the .net app runs directly under IIS, you can not separate them

Xus

<to***@tobinharris.comescribió en el mensaje
news:11**********************@s48g2000cws.googlegr oups.com...
Hi folks,

We're looking for a CMS system for our organisation, and we're picking
potential solutions.

We need something that is scalable cause we're a growing company, so
there's potentially 2000+ simultaneous users.

It's been recommended that we favour applications which can be
separated into three separate physical tiers (web server, application
server, and sql server). The justification being that it's very
expensive to add additional application servers just because you're
web traffic increases.

In my experience, I've never seen anyone deploy a typcial ASP.NET web
site in this way, where there is a separate application server.
Instead, I've seen IIS and the .NET App always live on the same
machine, possibly in a load balanced cluster etc (see below).

Small Scale
=========
Server A - IIS, .NET App, MSSQL

Small/Medium Scale
==========
Server A - IIS, .NET App
Server B - MSSQL

Medium Scale
==========
Server A - Load Balancer
Server B - IIS, .NET App
Server C - IIS, .NET App
Server D - MSSQL
Server E - MSSQL Session State Server

How would you go about deploying a "typical" .NET application across 3
tiers? Would you want to?
>>From what I understand, web services/messaging/remoting/COM+ are all
ways of allowing independent deployment of the application tier (I've
used some of these myself), but these come with their own costs and
complexities. For most .NET apps I'd favour clustering for simple
scalability. Am I missing something?

Hope this makes sense

Tobin

Note that I'm not knocking the Web/App/Data server approach, I use
this with RubyOnRails all the time (Apache Server / Mongrels App
Servers / MySQL).

Feb 14 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

13 posts views Thread by Charles Handy | last post: by
3 posts views Thread by Varkey | last post: by
4 posts views Thread by Chris Gatto | last post: by
14 posts views Thread by spencer | last post: by
15 posts views Thread by (PeteCresswell) | last post: by
reply views Thread by Salome Sato | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.