Application hosting: How to manage your software the
right way
Jan 19, 2000
Tim Landgrave
Many companies are discovering that
just because you can add more machines to solve a problem doesn't mean you won't
create an even larger problem. You still have to manage the platform you've
created with all these boxes, and that's a much more difficult task than it
first appears.
Most companies I've dealt with "solve" the problem by
getting the PCs off the floor and into racks in their data center. At least then
it doesn't LOOK like there are a bunch of PCs lying around the data center. But
it doesn't solve the fundamental problem of having tens—or, in some case,
hundreds—of PCs running disparate systems that require their own management
systems, troubleshooting methods, provisioning software, and so on. Their
software management systems consist of "Web monkeys"—the entry level engineers
that would otherwise be pulling cable, but now sit in operations and watch
monitors and machines for signs of trouble.
In this article, we'll
examine the software side of the application hosting issue, focusing on five
specific problems with the software scalability model and four tools you'll need
to manage your software effectively.
A multi-part series on hosting and the CIO |
This is the third installment in a series of articles
discussing the creation and management of hosted environments on
microcomputer platforms. In the first article, "Hosting:
What is it and why should CIOs care?," we discussed the reasons that
Application Hosting Providers and some enlightened companies would be
creating hosted platforms. Last week, in "Building
a scalable network," we looked at issues surrounding the hardware
scalability of hosted platforms. |
What's the problem we're trying to solve?
The ability
to scale systems with hardware has natural barriers that we have yet to
overcome. Large ISPs and many corporations have proven that the software
scalability model can allow large numbers of users to be supported on a cheap,
scalable, highly reliable platform of networked PCs. These environments have
five common problems that have to be overcome. These problems include:
- Being too spread out. Since applications are composed of many
different components (HTML files, ASP files, COM components, PERL scripts,
graphics files, and so on.) spread across multiple machines, the applications
are very difficult to manage in this environment.
- Efficient replication. Effective scaling of the application
requires that these application components can be replicated intelligently to
a group of servers.
- Multiple location application development. Assuming you can handle
the distribution of the application's core components, the application still
has to be developed in such a way that it works effectively when running in
multiple locations. Most developers still assume that an application is
running entirely in one box during their development and testing. This has
huge implications when the application gets deployed in a distributed
environment for the first time and problems like state maintenance begin to
surface.
- Monitoring limitations. The fourth major issue is the difficulty in
monitoring the applications proactively. In order for these applications to be
considered robust enough to be mission critical, we have to be able to manage
them proactively. This is easier to do in a single machine/single application
where you can monitor performance metrics like CPU and memory utilization for
that one application. Once you add multiple applications to one machine or
spread an application across multiple machines, you need an effective way of
predicting the application's ability to execute successfully in the
environment.
- Testing applications designed to scale. Not only do you need to
test the application's components and their interactions, but you also need a
way to simulate the user's experience. Unless you can tightly define the user
platform, you need to be able to test varying client platforms (versions of
Windows, Web Browsers, Terminal Server clients) under differing speeds and
authentication scenarios (56K modem, DSL or T1 authenticating via a private
network or public internet scenario). You may have to test a huge number of
permutations in order to verify that your application can work in this
distributed environment.
So what should I be
looking for?
In order to develop, deploy and manage applications with
Web scale, you need to develop or purchase tools and technologies that can
accomplish the following:
Single application
image
The goal here is to be able to manage the deployment of Web
applications as transparent as the management of traditional, single machine PC
applications. It wasn't that long ago that we had to develop our own application
installation routines for these PC applications. Until software manufacturers
re-tool their products or release new ones that can effectively manage
distributed software deployment, many companies will be faced with developing
their own internal solutions.
Server farm
management
A good server farm management solution will allow you to
create initial farms of servers simply and then add or drop servers as needed to
achieve fairly linear scalability with standard hardware.
Application load balancing
Being able to deploy on
multiple servers doesn't help much if you're not able to optimize the resources
on the platform. Dynamic load balancing allows an application to run in multiple
instances across multiple machines with the platform managing the complexity of
issues like security, state, machine availability, and so on.
Platform monitoring
In order to trust this platform for
mission critical applications, you need to be able to provide a mechanism for
telling the platform to heal, tune, and monitor itself with little external "Web
monkey" intervention. As more applications and systems are added to the
platform, you will quickly reach the point where human intervention to solve
platform problems becomes the new bottleneck to effective application
deployment.
Most of us don't have the luxury of implementing these
systems in a vacuum. We need to be able to interoperate intelligently with our
existing systems and be positioned to provide data from this platform to and
from future systems. Next week, we'll look at the interoperability issues
surrounding a software scalable platform. We'll also discuss what you should
begin considering as you look at this technology to solve your own application
problems either internally or with the help of an Application Services
Provider.
Tim Landgrave is the founder and CEO of eAdvantage.
eAdvantage assists small to medium enterprises in the development of their
electronic business strategy.
We want your feedback! |
Tell us what you think about application hosting by
posting a comment below. If you have a story idea you'd like to share,
please drop
us a note. |
Copyright © 1999-2000 TechRepublic, Inc.
Visit us at http://www.techrepublic.com/