|
Networks can be configured to be so incredibly redundant
now - for reasonable prices - that there is no excuse
for a data center not to achieve five nines (99.999%)
of availability.
But what about the servers and applications? Why
spend so much time up front configuring the network
to make sure it doesn't fail, and then deploy an application
to a single server?
Sure, there are ways to make sure individual servers
have some redundancy to minimize failures -- things
like RAID1, RAID5, or RAID10 (redundant array of inexpensive
disks) which will protect against a disk drive failure
(and I highly recommend this type of configuration
for all production servers - and preferably the use
of hardware RAID vs. software RAID). But what happens
if a file gets corrupt on the RAID array? Or a recent
configuration change brings the application down?
Or a newly released patch conflicts with other settings
and causes problems? Well, in these situations the
server will go down and the application(s) hosted
on that server will be offline.
A good monitoring and alerting process will allow
the system administrator to detect and address these
issues quickly, but still there will be some level
of downtime associated with the issue. And depending
on the type of issue, even the best system administrator
might not be able to immediately resolve the issue
- it may take time. Time during which your application
is unavailable and you may be losing business due
to the site interruption.
So, what can you do?
A great option - and one that has recently become
more affordable - is to host your application on a
webfarm. A webfarm consists of two or more web servers
with the same configuration, and that serve up the
same content. There are special switches and processes
involved that allow each of these servers to respond
to a request to a single location. For example, say
we have two servers - svr1.orcsweb.com and svr2.orcsweb.com
- that have 100% the same configuration and content.
We could configure a special switch* to handle traffic
that is sent to www.orcsweb.com and redirect the traffic
to either of these nodes depending on some routing
logic. All clients visiting the main URL (in this
case www.orcsweb.com) have no idea whether this is
a single server - or ten servers! The balancing between
nodes is seamless and transparent.
[*note: There is also software that could handle
the routing process but experience and test have shown
that these types of solutions are generally not as
scalable, fast, or efficient as the hardware switch
solutions]
The routing logic can be a number of different options
- most common are:
* Round-robin: Each node gets a request sent to it
"in turn". So, node1 gets a request, then
node2 again, then node1, then node2 again.
* Least Active: Whichever node shows to have the lowest
number of current connects gets new connects sent
to it. This is good to help keep the load balanced
between the server nodes.
* Fastest Reply: Whichever node replies faster is
the one that gets new requests. This is also a good
option - especially if there are nodes that might
not be "equal" in performance. If one performs
much better than the other, why not send more requests
there?
In any of these scenarios the switch will also detect
if a node were to fail. So, if svr1.orcsweb.com was
taken offline for maintenance - or it had a critical
failure - the switch would detect that and only send
traffic to svr2.orcsweb.com. And since the clients
always access the site via the main URL (not the node
names) they have no idea that one of the nodes is
down - the application continues to serve client requests
seamlessly.
Besides high-availability (continuing to satisfy
requests during a failure), a webfarm also gives an
application a higher level of scalability - the ability
to handle more and more load. If load increased on
the application to the point where performance started
to degrade, more nodes could be added to the webfarm
(again, without clients noticing), giving the ability
to handle potentially unlimited levels of traffic
(just keep adding nodes!).
Of course there are a lot of factors surrounding
the proper support of a webfarm - the switches, fail
over between switches (don't let the switch be a single
point-of-failure!), replication of content, synchronization
of server changes, synchronization of application
changes, etc, etc.. But a good system administrator
(or experienced hosting company) can help address
all of these issues for you.
By the way, I need to slip in a plug for a related
service we offer :-) Webfarm hosting starting as low
as $199/month! Check it out at: http://www.orcsweb.com/WebFarm.aspx
Hopefully this has been a good introduction to webfarms
for you, and hopefully I've properly communicated
enough of the benefits for you to consider this as
a hosting option for yourself. With the rates now
down to affordable levels - why not get this additional
layer of protection?
Happy hosting!
~Brad
Brad Kingsley is President and Founder of ORCS Web,
Inc. - a company that provides managed hosting services
for clients who develop and deploy their applications
on Microsoft Windows platforms.
About the Author
Brad Kingsley is President and Founder of ORCS Web,
Inc. - a company that provides managed hosting services
for clients who develop and deploy their applications
on Microsoft Windows platforms.
|