Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
HTML Class
Message
 
To
09/12/1997 06:16:03
Jose Almeida
Ideias E Desafios
Lisbon, Portugal
General information
Forum:
Visual FoxPro
Category:
Internet applications
Title:
Miscellaneous
Thread ID:
00060201
Message ID:
00064905
Views:
39
>By the way how are you doing this server pool? What hardware and software,

There are several different way to do server pooling for Web servers.
The idea is to set up totally independent (except for the database
server) servers that can run the Web site and backend app. Each box
runs a Web server, and several VFP backend servers (Web Connection)
as COM/Automation objects.

This allows taking any machine out of the pool and continue running
without downtime. So code updates for example don't ever take the
site down, and neither does a server hardware failure. On the downside
this incurs some replication issues since each server has an independent
copy of the HTML (a bad design decision of the IT dept. at the site, IMHO),
so pages need to be updated on each server. It's not that bad as we're
using source control to easily download only the updates. It also works
around the problem of locked pages while the site is running (IIS locks
pages in cache and if a site is really busy it's difficult to update
busy pages and images).

There are several tools that allow the server pooling. The basic idea
is that you have a single IP address that is routed to these different
servers in the pool. In essence a single visitor may be served from
all of these servers simultaneously as images etc. are loaded from the
servers. To the client it seems everything is coming from a single
IP address, but behind the scenes the middleware software/hardware
decides (based on CPU Load, IP Traffic etc) which server to send the
TCP/IP request to.

At Surplus we've been testing with Resonate. It works well, but there
are a few very nagging hardware incompatibilities that we're still working
on. This software is pretty amazing (also amazingly expensive (s)) - it
constantly monitors CPU load, network traffic, connections and based
on this performance data determines where to send a request. It also
includes a monitor that you can use to see activity of all the servers
in real time. Load can be very finely tuned and you can use the manager
to take servers out of the pool very easily. This is a pure software
solution with client and server pieces. We've tested this software against
my backend Web Connection servers on two dual processor boxes and achieved
500,000 VFP hits in less than a 12 hour period! And that had servers
running at about 50% CPU load...

There's another product from F5 software that the IT staff has been working
with which provides IP routing and basic services for monitoring and load
balancing, but it's not as rich in the management and load balancing aspects.
I haven't seen this product in operation yet, as Resonate is the first choice
product, but given the hardware problems this will serve as a backup. This is
a hardware/software solution that sits external to the network - sort of like
a router add-on. The upside here is that you don't have to worry about software
incompatibilities since the application doesn't interact with the servers
directly - it only works at the network protocol level. Addon tools allow
monitoring server load etc.

Cisco also makes a router that can do round robin IP forwarding, but it
doesn't support any smarts to determine whether a server is busy or down.

All of these are expensive solutions, but when the times comes that you need
these types of setups it's probably worth it. As I mentioned previously,
it's possible to scale to *any* load with this kind of setup and you gain
full failover functionality.

Regards,
+++ Rick ---

West Wind Technologies
Maui, Hawaii

west-wind.com/
West Wind Message Board
Rick's Web Log
Markdown Monster
---
Making waves on the Web

Where do you want to surf today?
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform