There’s currently no good reason to cluster end-user computing devices.
Have you ever watched commercial fishermen at work? If so, you know they usually use large nets to gather in their catch. By contrast, sport fishermen cast out individual lines to lure a bite.
Our computing habits all too often resemble angling rather than commercial fishing. To fully leverage the computing resources we have, we need to throw out a “net,” a digital version of the nylon skeins that commercial fisherman deploy. This net is clustering, and it comes in a few different forms.
Clustering has been around for quite some time. However, our migration to distributed, Web-based computing has brought about renewed interest in clustering technologies.
Most recently, you’ve probably heard a lot about client-side clustering, such as peer-to-peer computing (in the manner of Napster or grid computing ([email protected]). These applications leverage distributed client devices in a clustered manner to share music and search for extraterrestrial life, respectively.
However, no killer app that leverages clustering on end-user devices has yet surfaced in the business realm. Certainly, finding a way to share end-user computing resources would be helpful to companies everywhere. And the technology is available; we just haven’t yet found a viable business use for client-side clustering.
But businesses will discover plenty of bang for the buck in server-side clustering. Grouping servers, databases, and application components–either physically or logically–can greatly speed up e-business performance, improve accessibility and uptime, and make the computing environment easier to manage. Server-side clustering solutions can meet the needs and budget of nearly every company, large or small.
Cast a net
In all likelihood, you probably already have some clustered servers either on-site or in the facilities of your Application Service Provider (ASP). Server clustering has been available for more than 20 years on a wide variety of platforms, including Linux, Solaris, Windows, NetWare, AS/400 (iSeries), and S/390.
More recently, the open-source community and providers of lower-cost operating systems (such as Red Hat Inc.) have begun to offer clustering solutions that leverage both new and existing server hardware configurations. You can use these types of clustered configurations to maximize your return on server investments over time, while making them more manageable.
However, you will introduce needless complexity if you merely have small groups of server clusters scattered across your computing environment. As server clustering becomes more sophisticated, you need to strategically plan to reap the benefit. Managing the clusters and closely mapping their functionality to business processes are crucial.
To maximize your server clustering investment, ask yourself these questions: What business processes are currently served by clustering? Are there other business processes that are not managed in a clustered setting that need to be? Management of any mission-critical e-business process would probably benefit from clustering.
Server clustering can maximize uptime as well as improve management. If one server goes down–either in a scheduled or involuntary outage–the other servers in the cluster take over. In addition, server clustering can enhance scalability, sharing the load of e-business applications across multiple servers. Looking to boost performance or expand your application base? Just add more servers to the cluster.
There’s a caveat to this last point, though. Server clustering solutions on some platforms can support only a certain number of servers. Before choosing a server clustering product, make sure that it won’t max out as your business grows.
Hauling in data
Conceptually, you’ll want to cluster distributed data across your business for much the same reasons you’d cluster servers. You’ll gain the upper hand in terms of greater manageability, increased performance, and longer uptime.
Most major relational databases from vendors such as Oracle or IBM offer clustering features. Database clusters can operate in parallel, and in either “shared nothing” or “shared disk” configurations. You might choose to implement a database cluster with shared disks if you want to make data available that spans a considerable time period.
For example, a transaction history for a particular product or service may span several years and a number of physical disks. Using the shared-disk approach, an end-user request made to the database cluster can easily produce the desired records regardless of which disk or disks hold the data. The information can be extracted much faster than in a non-clustered environment, and the cluster interaction needed to access the records is invisible to the end-user.
A shared-nothing approach is a good idea when you are concerned with restricting access to different data sets while combining database resources for greater manageability, scalability, and redundancy. For example, a shared-nothing scenario would be appropriate if two business partners require access to information within the same database cluster.
Fishing for apps
It makes sense to cluster server-side application components as well as servers and data. The same benefits apply: smoother management, faster performance, and less chance of unscheduled down time. Clustering application components can be particularly useful if you’re deploying critical e-business applications on a global scale. An application cluster ensures a high degree of accessibility, regardless of the end-user’s location.
There are four ways to form application component clusters, generally managed on middle-tier servers: transaction processing, object-request brokering, object-transaction servers, and message-oriented middleware.
Transaction-processing (TP) monitoring has been around for a while and is the most mature of the four approaches. But as the name implies, TP monitors are best for application-component clustering designed to support transactions (in e-commerce application, for example). IBM and BEA Systems both offer TP monitor solutions.
Object Request Brokers (ORBs) represent a second approach, supported in many of the leading application servers, such as those from BEA, IBM, and Oracle.
Another useful way to cluster application components is to leverage object transaction servers. These solutions layer an object-oriented paradigm on top of an existing middle-tier approach, such as a TP monitor or an ORB. Sybase offers an object-transaction server solution.
Finally, a business might use message-oriented middleware to create an application component cluster. Of the four approaches, message-oriented middleware offers the greatest flexibility, and major vendors such as IBM have mature offerings in this space.
But beware: Skilled staff and partners are required to undertake application component clustering. The technology involves more customization than server or database clustering, ideally implemented by personnel who understand transaction processing, middle-tier services, and more.
Many ASPs offer application component clustering. Small businesses in particular should consider working with an ASP to carry out complex application component clustering initiatives.
A valuable catch
At the moment there’s no compelling business reason to cluster end-user computing devices. That is not to say that a killer business app might not arrive in the near future. However, all of the current indicators point to server-side clustering as the best way to better manage distributed computing resources in business environments. Clusters help you manage server, database, and application resources more efficiently. Regardless of whether you implement them internally or in concert with an outsourcer, the technology’s ability to improve uptime, accessibility, and performance gives you an edge over competitors.
Extreme Linux: http://www.beowulf.org/
IBM iSeries: http://www-1.ibm.com/servers/eserver/iseries/
Legato Cluster: http://www.legato.com/products/availability/legatocluster/
Linux Networx: http://www.linuxnetworx.com
Microsoft Cluster Server: http://www.microsoft.com/ntserver/ntserverenterprise/exec/overview/Clustering.asp
Novell NetWare Clustering: http://www.novell.com/products/clusters/ncs/
Red Hat High Availability Server: http://www.redhat.com/products/software/linux/haserver/
Sun Cluster: http://www.sun.com/clusters
IBM DB2: http://www-4.ibm.com/software/data/db2/
Microsoft SQL Server: http://www.microsoft.com/sql/
Oracle 9i: http://www.oracle.com/ip/deploy/database/9i/continuity/index.html?scale.html
BEA Weblogic: http://www.beasys.com/products/weblogic/enterprise/index.shtml
Oracle Application Server: http://www.oracle.com/ip/deploy/ias/index.html?content.html
IBM MQ Series: http://www-4.ibm.com/software/ts/mqseries/
IBM WebSphere: http://www-4.ibm.com/software/webservers/
Microsoft Message Queue Server: http://www.microsoft.com/msmq/
Clustering technologies benefit businesses by improving network performance, accessibility, uptime, and manageability.
Server/machine clustering: Distributed servers are grouped together to act as a single system. If one fails, the others continue operation without any downtime.
Database clustering: Databases are distributed among multiple machines in either a share-nothing or shared-disk configuration. Data can be logically partitioned across one or more of the machines in the cluster.
Application components: Modules of mission-critical applications are implemented across multiple middle-tier servers for greater accessibility and increased performance.
Maggie Biggs has planned and implemented server-side clustering on a wide variety of server platforms, database solutions, and application environments over the past 15 years.