Skip to main content

Evaluating physical nodes for runtime topologies

Helpful heuristics for choosing hardware

Bernie Michalik, Senior IT Architect, IBM, Software Group
author
Bernie Michalik is a senior IT architect who works at the Centre for IBM e-business Innovation, Toronto. Bernie currently is responsible for designing e-business solutions and making sure they perform well. He would like to thank Norbert Hoeller, Leo Marland, Marcelo Martins, Richard McDonald, Rebecca Vogan, and Barbara Wetmore for their gracious support and thoughtful comments. You can contact Bernie at bernie@ca.ibm.com.

Summary:  IBM's Patterns for e-business help IT architects develop Web-based solutions, from high-level business requirements to low-level software product selection. However, architects face difficult choices when trying to select the right hardware. This article describes how to use server-oriented heuristics to ease the pain when choosing hardware.

Date:  01 Jul 2002
Level:  Introductory
Activity:  240 views

The challenge

Assume you are a system or IT architect using IBM's Patterns for e-business to help develop your Web-based application. You're now at the point where you have your runtime pattern, such as the Self-Service::Stand-Alone Single Channel application pattern: Runtime pattern as shown in Figure 1, and perhaps have even selected the necessary product mapping. You want to recommend the appropriate server for each of the nodes in the runtime pattern. How should you proceed?


Figure 1. Stand-alone single channel application pattern: Runtime pattern
Figure 1. Stand-alone single channel application pattern: Runtime pattern

Recommending servers can be a challenge even for architects with expertise in server technology. Like much of the IT world, hardware is constantly changing and the choices are extensive. Server hardware can be quite complex to choose, order, and configure. And it can be expensive. Under these conditions, it can be hard to make a good choice, never mind the best choice.

Faced with this challenge, architects sometimes fall back on choosing the configuration used previously, opting for the most expensive solution affordable, or delegating the decision to a hardware specialist. Unfortunately, these approaches can backfire. The last configuration used might have been designed to meet totally different requirements. The most expensive solution could be overkill for the requirements. And while having a hardware specialist dedicated to mapping the runtime pattern to the appropriate servers would be ideal, it's not always possible. Still, the customer wants to know what is needed.


Meeting the challenge with heuristics

Heuristic problem solving involves creating a set of rules or a procedure to solve problems, especially by experimental and trial-and-error methods. A heuristic approach works well for problems that lack an optimal solution. What, then, would be a heuristic approach for choosing hardware for your nodes?

To simplify your choice, the first rule should be to eliminate all servers that do not meet the requirements and the constraints of the customer and the solution. (Don't worry, you'll still have plenty to choose from.) For example, the customer might have an overriding requirement that the servers come from a specific vendor, such as IBM. In this case, you can eliminate from your list of possibilities all servers from other vendors, even if the non-IBM servers meet other requirements of the customer. The customer might have a requirement that the servers must also run software already in place. If the software was written for a specific operating system (for example, AIX), then this requirement would restrict the choice of servers even further. The customer may have certain skills they want to use, and those skills might be server-specific. And, the customer could have an enterprise architecture that limits your choice to specific platforms.

Once you've accounted for the customer constraints, the requirements of the solution itself might eliminate other servers from the list. Outlined below are some of the specific requirements the servers might have to meet.

Price constraints
Price could eliminate many servers if the customer has a definite budget for hardware and software. Naturally, servers meeting the price limits must meet the other requirements of the solution. You should also consider the total cost of the server when using price to narrow the possibilities. For instance, a rack-mountable server is often more expensive than a tower server, but price tag may not be the only cost. In a co-location environment, the cost of hosting many tower servers could be more expensive than hosting the same number of rack-mounted servers.

Environmental constraints
Environmental constraints might limit the number of servers you can select. The customer's location could be too small for anything other than rack-mounted servers, or it might not be able to host servers with special power requirements. Issues with air conditioning and cable restrictions could rule out some servers. Ask the customer's environmental specialist to describe the constraints, then cross-reference them against the list of possible servers.

Node characteristic heuristic
Look at the role or the characteristics of the node. If the prime responsibility of a node is storage (for example, database node), then servers with more disk bays, faster data channels (such as SSA), and the ability to connect to external storage are a good choice. If the prime responsibility of a node is processing (such as Web application nodes), then servers that can have more RAM, more cache memory, and multiple CPUs are a better choice.

Some nodes will need neither a lot of storage nor a lot of computational power. For these nodes you can choose servers for other reasons, such as price and reliability, rather than for their ability to contain the greatest number of disks or CPUs. Load balancers do not need much storage and might not require much in the way of CPUs, depending on the network traffic.

Nodes can have other roles as well. Some act as a bridge between different networks (for example, Ethernet and token ring). Some connect to many networks, such as many VLANs. Such networking requirements can eliminate certain servers from your list of possibilities.

Capacity heuristic
Consider both the initial and the projected capacity requirements. If the customer is expecting the storage requirements for the server to grow dramatically, then you would choose a server with the capacity to add additional storage rather than one that has limited storage growth. In general, match your node requirements for capacity with the hardware platform's ability to acquire more capacity. Capacity requirements are tied in with scalability requirements.

Scalability heuristic
If scalability is a requirement, you should know whether to scale vertically, by increasing the capacity of the server, or horizontally, by adding more servers and spreading the load over all of them. If the customer expects low or steady growth, such as an Intranet site with well defined non-functional requirements, then scaling vertically has a significant advantage -- fewer servers to buy and manage. What if growth is greater than the customer anticipates? To minimize this risk, consider servers that have the capacity to add extra storage or processing (depending on the node's characteristics).

Though scaling your solution horizontally means more servers to buy and manage, this choice offers advantages. If the customer expects growth rates to be high or unknown, horizontal scaling may be the best bet. It might also be the smartest choice if the customer's Web site experiences bursts of traffic throughout the year. The customer will require some form of load balancing technology (such as WebSphere Edge Server), but once that capability is in place, more servers can be added relatively easily. Horizontal scalability has another benefit: if the load is distributed over many servers and one of them goes down, then the site is still considered up, even if it is responding more slowly.

In the most uncertain situation, you could plan for both horizontal and vertical scaling. While this option may drive up the cost of the solution, it gives the customer more flexibility to scale upwards if necessary.

Reliability heuristic
If the customer is sensitive to system outages, select servers that have more reliability features. Hot-swappable disks, hot-plug power, and hot-plug PCI cards can make the server's mean time to failure (MTTF) longer and the mean time to recovery (MTTR) shorter. Servers with higher MTTF and shorter MTTR are more reliable. Bear in mind that the server operations team must be able to take advantage of these features for them to be effective. If nobody is monitoring the machines regularly, hot-swappable disks will offer no advantage, nor will it help if you can't access replacement parts easily.

In choosing a server for its reliability features, be sure to review the scaling choices. If you provide a solution with redundant servers that fail over, you lessen the need for the redundant servers to provide reliability features.

Performance heuristic
In theory, to determine the best node to meet your performance requirements you would assign a value to the load, such as a "spec" rating. You would then choose a server that meets or exceeds that value. In practice, it is difficult to know what the expected load will be. Often the application hasn't been completed before you have to order hardware. In general, the less you know about the expected load on the system, the more you should to plan to scale horizontally.

Other heuristics
Generally, the chosen servers must not be difficult or impossible for the customer to run and maintain. If the customer doesn't have or desire the skills needed to run and maintain a particular server, or if their operational tools don't support that server, then it will be a poor selection regardless of its other qualities.

"Acquirability" of a server is another consideration. If a server cannot be in place to meet the timeline of the solution, consider choosing a server you can get sooner. The time lapse from when you order a server to when you take possession may be long, depending on demand for the product and how many the vendor has in stock. Confirm availability before placing the order; you might end up choosing another server if you can't track down your first choice.

Finally, consider the popularity of servers. Within any vendor's product line, some servers will be chosen more than others, perhaps because of reliability or price or particular features. Keep popular choices in mind, especially when you have no other criteria for choosing among servers. A server that has been around for a long time, or one that is positioned to be around for a long time, might be a safer choice than one that either has just come on the market or is about to be discontinued. Your server-support specialist can usually provide more information on this subject.


An example

In this simple example, you are trying to select a server for the Web application node of your solution. From your initial interviews with the customer you know they have a preference for IBM as the hardware platform. The software to be placed on the server is IBM HTTP Server and WebSphere Application Server. The staff has experience mostly with AIX, and the existing infrastructure is run on RS/6000 and pSeries machines.

In this scenario, you can justify restricting your platform choices to pSeries for the Web application node. Further investigation shows a lot of choices (based on the Spring 2002 catalog). Applying the heuristics, you get:

Server -
Machine Type
Eliminating Heuristic
7043-150
7044-170
7044-270
7046-B50

Reliability heuristic - the customer doesn't want servers without reliability/availability features such as hot-swappable disk and redundant hot-plug power
7028-6E1
7025-6F0
7025-6F1
7025-6F1
Environmental heuristic - the customer doesn't want servers that they can't rack mount
7026-6M1
7017-S85
7040-681
Price heuristic - the customer budget doesn't support the cost of these servers

Any one of the remaining servers could be the best choice for your Web application server node:

ServerReason(s) to select this server
7028-6C1
(pSeries 610)
Price - lower base price than the pSeries 640 or 660
Scalability - good choice for horizontal scalability
Other - newer model than the pSeries 640
7026-B80
(pSeries 640)
Scalability/Performance: scales better vertically, in terms of performance, than the pSeries 610
Price - lower base price than then pSeries 660
7026-6H0
(pSeries 660)
Scalability/Performance: scales better vertically, in terms of performance, than the pSeries 610
Other - newer model than the 640
7026-6H1
(pSeries 660)
Scalability/Performance: scales better vertically, in terms of performance, than the other servers
Other - newer model than the 640

Choosing one from the four remaining servers would depend on further investigation of the customer's requirements.


Remaining challenges

Despite the heuristics discussed in this article, there are still challenges. Sometimes the customer might poorly define or not understand their non-functional requirements. Occasionally there is no historical data to use before you have to project growth rates or determine past reliability. Often the customer's expectation of future growth may be unknown, unclear, or too optimistic. These possibilities hamper your ability to fine-tune your server selection.


Conclusions

Choosing the wrong hardware is an easy thing to do and an expensive mistake to make. If you use heuristics to make your selections, however, your decisions will be defendable, your choice will be good, and the application and the solution will succeed.

A final recommendation: always confirm your choices with a hardware specialist. Explain your solution and your choice of server for each node, so they can validate your reasoning. And, a hardware specialist might suggest a concern you didn't address, or a product you may have overlooked.


Resources

About the author

author

Bernie Michalik is a senior IT architect who works at the Centre for IBM e-business Innovation, Toronto. Bernie currently is responsible for designing e-business solutions and making sure they perform well. He would like to thank Norbert Hoeller, Leo Marland, Marcelo Martins, Richard McDonald, Rebecca Vogan, and Barbara Wetmore for their gracious support and thoughtful comments. You can contact Bernie at bernie@ca.ibm.com.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Sample IT projects
ArticleID=86652
ArticleTitle=Evaluating physical nodes for runtime topologies
publish-date=07012002
author1-email=
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).