Websphere Extended Deployment
June 27th, 2008We’re working right now on implementing on the IBM Websphere Extended Deployment platform. Yes, that much aligned of JEE App Servers. Certainly IBM deserves the common criticism that their system is overly complex. Still, if you implement what enterprise requirements ask for (clustering, high availability, scaling, failover, persistence, automation, etc.) I think you’re hard pressed to come up with a simple solution.
Nonetheless, that’s not the main point of my post. IBM provides a flavor of Websphere Application Server, or WAS, called ND (Network Deployment). This model centralizes and automates deployment and configuration management. Extended Deployment or XD comes in 3 flavors. Two of them focus on long running batch transactions and distributed object models for high volume enterprise applications. I’m not using either so I won’t go into detail on them.
The third section is Operations Optimization now referred to as Virtual Enterprise (because, it’s always so much fun to start with a new name and acronym and have to retrain everyone on it!). This component focuses on post-deployment monitoring and management. The system has improved reporting capabilities built in (which appear to be a flavor of ITCAM, IBM Tivoli Consolidated Application Management baked in), as well as autonomic capabilities within the WAS environment. These functions allow for the system to dynamically take ‘dead’ JVMs (which consume too much memory or CPU) offline or in maintenance modes for investigation, as well as scale the cluster to meet demand. Today most enterprise environments run the system at maximum capacity all the time. The notion IBM has here is that multiple applications could share the environment, allowing XD (guess I need to start referring to it as VE now!) to shift capacity between them on demand. One shortcoming we’ve discovered in thinking how this would be applied to the enterprise beyond our group is that many applications share peak load time. The ideal savings here are pairing critical applications with non-critical, or daytime peak systems with others that only run large loads at night (batch jobs perhaps).
The idea seems nice. So far the system works as described. There’s been some bugs along the way, but I have to give IBM’s support department credit for quick turnarounds on patches. The built in debugging in WAS is very structured and capable and typically allows for them to spot problems quickly. The other nice feature of XD/VE is the capability to manage a repository of stored versions of an application which you can then switch between, even running a second version concurrently for validation purposes.
The core of the XDOO system is the On Demand Router (ODR). This JVM is built upon IBM’s proxy server technology and handles the dynamic work load management (DWLM) and other autonomic functions of the environment. Being the most complex and crucial part of the system, it is also the most error prone. Again though, it has superior logging modeling itself both on a JEE application as well as a traditional web server.
There are a number of other approaches to this type of dynamic or ‘cloud’ computing as it’s being referred to in the hype machine. Amazon’s EC2 is another example more in the Software as a Service (SaaS) model. While these may serve certain purposes for non-critical systems running on non-private data, in the long run I think many enterprises are going to want more control over their systems and will want a blend of a more traditional data center and hardware with an application platform that can deliver some of the benefits of cloud computing in terms of dynamic resources. While IBM is by no means perfect and XD OO isn’t the only solution out there, it does seem to be a solid step in the right direction.