Even though there are several different technologies involved and several different types of requirements, it now appears that any mulit-machine configuration is called a cluster. Here's a quick summary of the different configurations that are now using the same IT jargon term "Cluster".
- Application layer clusters: configurations based upon advanced application frameworks or application server environments focused upon making applications more scalable, reliable or perform better. Applications that do not use the application framework or server do not see a cluster. They just see individual machines networked together.
- Processing layer clusters: configurations focused on virtualizing processing, that is at an operating system level rather than at an application level, include configurations for parallel processing/high performance computing, high availability/failover and the attempt to create a single system out of many individual machines. In some cases, applications must be modified invoke the clustering monitor in some way. In other cases, a script must be generated to tell the clustering monitor what to do with a specific application. In still other cases, the clustering monitor scans the system and figures out for itself what needs to be done and then does it.
- Hypervisor layer clusters: configurations focused on virtualizing the underlying system, that is underneath the operating system. There are two different approaches in this category. One allows single operating system to manage the resources as if it was running on a single computer (a different take on clustering that is a variation on the virtual machine software theme). Another approach is joining hypervisors together and allowing virtual machine files to be moved from machine to machine to achieve service level objectives or deal with failure scenarios.
- Storage clusters: configurations focused on providing a vast, reliable, scalable storage environment that live at a storage subsystem level
Since each of these different configurations are all discussed using a single industry jargon term, clusters, it is really confusing for non-IT business decision-makers. Each of these technologies has its place in the IT infrastructure. The vendors of each of these technologies will happily expain that these configurations will do everything for everyone all of the time everywhere. This, of course, simply is not the case.
How does your organization use these technologies?