7.3.1 Isolation

To start the discussion of isolation, imagine two applications (alpha and beta), which have different non-functional requirements. Application alpha needs to be available 24x7, and absolutely cannot become unavailable, on pain of severe financial loss. Application beta, on the other hand, is only used between 7am and 9pm GMT, and for the rest of the time is closed to external connections.

Application alpha's developers have spent a long time perfecting and tuning their code; they are aware that they are writing a business-critical application, and have gone through every single line of code many times in a complicated and thorough peer review process. Application beta was written by a number of contractors, who have since left the company, and is maintained on a "best efforts" basis by the system administrator (who has gained some invaluable basic Java skills in the process).

There is clearly a desire to separate these applications; the differing NFRs and the risk factor of the code practically demand separation. In a traditional WebSphere clustered environment, both of these applications might well be run on different WebSphere nodes on the same machine, or at an absolute minimum they would be run on separate application server instances. However, when they are still sharing the same operating system installation, what happens if the "loosely coded" application beta suddenly hits a bug and starts using up all of the system resources? It can make the entire machine run slow, and affect all applications running on the same machine, including the business-critical application alpha.

Running both of these applications on separate LPARs gives a far greater degree of isolation. Even if application beta were to begin to use up all of the memory or CPU allocated to its own LPAR, it would be unable to affect application alpha. In addition, each LPAR could be sized so it is able to handle the predicted load for the application, and thus fewer resources would be consumed by the less-critical application beta.

Figure 7-1 shows applications alpha and beta deployed in different LPARs on the same server. The LPAR for application alpha is larger than that of application beta, and the two are separated; application beta cannot use up resources assigned to application alpha.

Figure 7-1 Applications alpha and beta deployed on separate LPARs