The issue of complexity is described schematically in the illustration above. The idea is to reduce complexity and in the same time support growing heterogeneity and functionality.
Abstractions are used frequently for hiding the complexity. For example SOA hides from Business users the technical details of service implementation; Virtualization hides the physical hardware configuration used by the Operating System instances.
Load Balancing complexity is growing the same as complexity of other aspects of IT systems is growing and it is reasonable to think that Load Balancing complexity could be handled by Abstraction like other IT Complexities.
Although Abstraction is a common practice in modern IT systems, one of its major disadvantages could be poor performance. It is not only due to the overhead required for supporting the abstraction level. It could also indicate a less than optimal Deployment. Hidden Complexities do not vanish, they are just hidden and the mechanisms behind the scene should handle properly all aspects, including performance.
We often experience poor performance of SOA services because this aspect is not addressed properly.
Load Balancing is an old a common way for performance optimization, by dividing workload between multiple instances. Workload division between instances mechanisms can be augmented by changing the number of instances in accord with workload changes. However, Gartner Inc. analysts view is that Load Balancers are Dead, which is their way to say that most enterprises Load Balancing is not done properly. This message is shared by few Research Notes I recently read.
Mile stones in the history of Load Balancing
- Balancing different workload types in a single Mainframe
- Balancing workload of different Mainframe hardware and peripheral equipment instances: Mainframe computers, IO channels and IO Control Units and network equipment
- Load Balancing of Hardware Servers
- Load Balancing of Networks
- Load Balancing of Application Servers instances
- Load Balancing of Web traffic
- Traditional Load Balancers can no longer address properly the complexities and heterogeneity of Enterprise systems. That why Gartner's analysts declared that the Load Balancers are death.
- The load is increased by new developed applications or increased usage of current applications. The Network team may not be aware of these changes created by IT Developers or Business Customers. It should also be noted that Web Applications and SOA Services usage is less controlled than traditional silo applications usage; therefore the workload level is less predicted and more dynamic.
- Security issues requiring separation of communications workloads within the Demilitarized Zone (DMZ) and outside the DMZ.
Gartner's analysts recommend usage of Application Delivery Controllers (ADCs) supplied by vendors like F5 and Citrix. These ADCs take care of the Deployment as a whole including Load Balancing.
They also mention that many enterprises already installed ADC products, but still use Load Balancers instead of the equivalent and superior functionality included in the ADCs.
- Service implementations are encapsulated. Part of the Service implementation or the whole implementation could be replaced by code and data in another environment (for example, replacement of Legacy application by JEE or .Net application). The change is transparent for the service users. The people responsible for Load Balancing could miss this change and the load balancing procedure will be inefficient. A more holistic view of Deployment by using ADC probably will take this change into account.
- ADCs are Abstractions of Load Balancing for modern IT architectures. Actually they are more than just Load Balancers abstractions; they are addressing and hiding many other deployment complexities, such as Security issues and Services deployment processes.
- If Gartner's analysts' analysis is correct we are approaching to the death of Load Balancers. However, it is not the end of Load Balancing. Automatic, dynamic and more sophisticated Load Balancing will be performed by more strategic tools (ADCs) together with other Deployment tasks.