Tuesday, August 14, 2007

Virtualization? At what level?

I think the term 'Virtualization' has been overused in the industry. And with varying degrees of virtualization it can be confusing to determine and distinguish between the advantages of different types of virtualization.
So, there are several types of virtualization, one offered at HW levels so technologies like AIX LPARs and Sun Solaris Zones etc, which essentially virtualizes the underlying hardware, into commonly available resources pools. These allocation of resource pools are governed by allocation policies defined.
Then you have the VMWARE which essentially virtualizes the runtime, essentially allows of portability and ease of management (with factory like deployments). Although we have seen developments and offering by VMWARE that is creeping into virtualizing the hardware resource pools ( as discussed above).
WebSphere XD on the other hand play a role only in virtualizing the Application runtime environment. SO in theory it acts and play above the HW/VMWARE virtualization level and allows for the user to have a policy driven approach to 'sense and respond' type of management capability.
So, while there may be overlapping use of term 'virtualization' the value add differs significantly. In an environment that has virtualized HW platform, it is safe to say WebSphere XD will play well, since it will only have visibility to resources available to it ( provided by defined allocation policy).

Any thoughts?

Nitin

Sunday, August 12, 2007

XD - FAQ

Q: May I have a node with an ODR and an application server ? I have to create a custom node with just the ODR ?
A: It is possible to run the ODR on the same node as your application servers, but this will result in less than optimal performance for XD since you are mixing the ODR workload and the application server workload on the same system. This will make XD's workload calculations suboptimal — but there should not be an functional issue. The preferred (gold) standard is to run the ODR on a separate system (node) from the application servers.

Q: We know that XD supports AIX-LPAR. Does XD officially have a support statement on Solaris Zone?
A: http://www-1.ibm.com/support/docview.wss?rs=180&context=SSEQTP&q1=Support+for+Virtualization+technologies+and+Websphere+Application+Server&uid=swg21242532&loc=en_US&cs=utf-8&lang=en
Basically: If you submit a standard usage or defect-related service request, and you are running on one of these virtualized machines, IBM WebSphere Support* will make best efforts to resolve the problem. We will assume that the problem is common to both native and Virtual operating environments, and we will only require you to recreate the problem in a native environment if there is an indication that the problem may be unique to the Virtual Environment.

Q: The prerequiste of WAS XD 6.0.1.1 says it requires an installation of WebSphere Application Server that is at a level of V6.0.2 Fix Pack 7 (V6.0.2.7) or later. Is WAS ND 6.1 supported?
A:XD 6.0.1 runs on ND 6.0.2 and isn't supported and does not work on ND 6.1. ND 6.1 shipped after XD 6.0.1 shipped and there are some incompatibilities that took some changes to accomodate.

Q: WebSphere Extended Deployment 6.0.2 is now available. It can be installed on WAS Network Deployment 6.1.0.1 or later or WAS ND 6.0.2.9 or later.
A: If you already have XD 6.0.1, download the refresh pack from
http://www-1.ibm.com/support/docview.wss?rs=3023&uid=swg24013086
You can get a full XD 6.0.2 install image from Passport Advantage.

Q: What is the best practice to use XD to manage multiple versions of the applications when underline database schema changed from version to version? How should we manage the associated data source definition to accomplish it?
A: XD does not assist in this scenario. Of course, if you want to run two editions at once or roll backwards, your database schema would need to be backwards compatible and your previous version of the application would also have to cope with future schema changes. There is no magic in XD.

Q: Where the ODC ( On Demand Configuration) gets its information at startup initially. When would the ODC get configuration information from the target.xml file and when would it update that file?
A: ODC gets its information from the configuration repository and from the internal WebSphere communinications system (BulletinBoard). It never reads target.xml as a starting point. target.xml is only written out for informational purposes.
Here is how it works:
1. ODC when it comes up get the topology informaton from the config repository, so this was it is aware of the cell topology, core groups etc etc.
2. It then loads the info, and obtains the state information from Bulletin Board ( we discussed this in detail, a function of HAMANAGER).
3. It then established the initial routing of http requests based on service policies.
4. Based on feedback loop, the info it received from APC and ARFM, it then subsequently decides/manages the routing of requests to nodes/appservers.
5. The dmgr does not need to be running or available, the information required is obtained in a distributed fashion from the running servers (via BulletinBoard).

Q: I have a customer who uses the Custom Advisor capability in Edge to identify circumstances such as where an app server cannot complete work because it cannot access a back-end data source. Typically, application response time is not significantly affected and so cannot reliably identify the condition. The customer is interested in XD. Does XD have anything equivalent to Custom Advisor?
A: XD does not use custom advisors, but does have a health controller that monitors servers for hung requests and excessive response time and then can trigger a health action: notify administrator, restart server. Also, the XD load balancing algorithms will automatically start routing away from servers that are having problems with response time (both by given them lower weights and a lower proportion of the throughput).

Q: How does Workload manager controller calculate the weights for WLM decisions?
A:The workload manager controller uses PMI data to calculate weights, and delivers the
Weights via bulletin board to the ODC service in the ODR. The load balancing filter uses the weights to make load balancing decisions.
The Autonomic Request Flow Manager receives service policy goals from the ODC service, and application demand and resource utilization data from PMI. The prioritization and flow control filter uses the information to make its decisions.

Q: What is Dynamic Application Placement?
A: Dynamic clusters to increase or decrease the number of servers on which a particular application is running to help meet your performance goals. Each node within a dynamic cluster has an instance of an application server running that cluster's applications that can be started and stopped dynamically as traffic for that application increases or decreases.

Q: Where do I place my On Demand Router (ODR)
A: The most common topology places the ODR (or multiple ODRs) inside the private network between the Web server and the application servers. This leaves the Web server to continue serving static content, but the plug-in running on the Web server is now configured to route traffic to the ODR, rather than to the application servers. The ODR is constantly updated on the location of dynamic cluster instances within the cell (or cells), and routes traffic accordingly.
Some less common topology options are also possible, including placing the ODR tier in the demilitarized zone, where it could be used in front of, or instead of the Web server tier.

Q: How does XD console get information about Mixed Server Environment (MSE) nodes ( Nodes other than native and supported WebSphere nodes)?
A: Mixed Server Environment (MSE) install, install a Remote Agent.
A little about Remote Agent, A remote agent is a simple server and a minimal install, very non-invasive process. Runs of default port 9980, and can be changed with a start-up argument (stats.collector.remote.agent.port). The remote agent listens for requests from On Demand Router, and returns information like, CPU Utilization, number of processors and other statistics. Remote agent is installed on each machine in a generic server cluster.

Q: What functions does On Demand Router (ODR) handle for Mixed Server Environment (MSE) nodes ( Nodes other than native and supported WebSphere nodes)?
A
1. Routing - Specified using ODR generic server cluster routing policies. Can route with affinity
2. Failover - The ODR will automatically detect servers that are no longer responding (Ping test) to requests and will temporarily take them out of the routing list
3. Prioritization - Specified using ODR generic server cluster service policies
4. Load balancing - Dynamic workload management (DWLM)

Q: What makes Multi-cell communication and Multi-cell routing possible with XD?
A: Core Group Bridge communication enables communication between multiple cells.

Q: Can Dynamic clusters be vertically stacked?
A: Yes, starting with WebSphere XD V6.0, the Dynamic Clusters can be vertically stacked.(more than one member on same node).

Q: Is Lazy start an Option with XD?
A: Yes, starting with WebSphere XD V6.0, Lazy start is a feature included in XD V6.0. A dynamic cluster can be configured to have no active instances when
the application is idle for a period of time ( Laze Start) This is useful for rarely used applications where users can afford to wait for startup. For example: hundreds of applications, each used infrequently ( as opposed to WebSphere XD V5.1, where at least one instance was always active ).

Q: What version of WebSphere Portal is supported on WebSphere XD?
A: WebSphere Application Server V6.0.2.7 and above.
WebSphere Extended Deployment V6.0.1.1 and above.
WebSphere Portal V5.1.0.4 and above.

Q: What are the limitations of WebSphere Portal in a WebSphere XD environment?
A: Yes. Few of limitations are listed below:
a. Multiple versions of WebSphere Portal may not be installed
b. WebSphere Portal must be manually installed on each node of
the node group
c. WebSphere Portal cannot be deployed to multiple clusters,
static or dynamic, within the same cell
d. Application Edition feature is not yet extended for Portlet edition. (WebSphere XD provides support for managing multiple versions of an
application; however, this feature is not supported for WebSphere
Portal)

Q: Does ODR employ any caching capabilities?
A: Yes. Caching in ODR can be enabled by using the check box in the ODR properties. ODR caching uses Dynacache, and caches by default are independent of other ODRs. In order to share cache between ODRs, use distributed cache, by creating new replication domain. The ODR caches according to the HTTP 1.1 specification (RFC 2616) i.e. following
If a response comes back with the appropriate cache-control and
expiration headers set, the page will be cached
WebSphere Application Server automatically sets these headers
appropriately for static content deployed in a WAR file
Regular dynamic content (JSP or servlet output) is not cached in the
ODR; instead use dynacache for these pages.

Q: What is the difference between Node Group and Dynamic Clusters?
A: Node groups provide the virtualization constructs in WebSphere XD. A node group is the resource pool in XD.
A dynamic cluster is a virtual cluster of servers (JVMs) that lives on the node group Multiple dynamic clusters live on a single node group and compete for resources.

Q: What is Object Grid ?
A: It delivers a caching layer, which enables highly-used object data to be
shared among multiple applications, streamlining transaction throughput and
improving transaction performance. This has been shown, for example, to reduce database transaction bottlenecks by up to 95 percent.

Q: What is Bulletin Board?
A: Bulletin Board: used to share service class data from the Application Request Flow Manager (ARFM) with other ARFMs in the ODR tier. Also used to share performance data with the back end cell for visualization and use by the Application Placement Controller (APC) and the Workload Management Controller. It is has a light-weight pub/sub mechanism.

Q: What is HA Manager and Distribution and Consistency Services ( DCS) ?
A: HA Manager/DCS: provides underlying support for the Bulletin Board. It provides highly available, high-speed, efficient, network communication.

Q: Does WebSphere XD Support mixed versions of WebSphere?
A: Support for mixed-version cells was introduced in WebSphere Application Server 6.0. A cell managed by a WebSphere XD 6.0 Deployment Manager can contain WebSphere XD version 6.0 nodes, WebSphere Application Server version 5.1 or 6.0 nodes, but importantly, not WebSphere XD version 5.1 nodes. This implies that when migrating a WebSphere XD 5.1 environment to version 6.0, all of the nodes must be migrated at the same time.

Q: Can I install WebSphere XD as a Standalone Product, that is independent of WebSphere Application Server ( WAS) & Network Deployment (ND)?
A: NO. Installing WebSphere XD 6.0 requires that you first install WebSphere
Application Server 6.0.2, since WebSphere XD is an add-on product, rather than a stand-alone product.
In addition to installing the full WebSphere XD product, the installer can also be used to install a lightweight remote monitoring agent on non-WebSphere nodes that you wish to use in your WebSphere XD environment. To migrate from WebSphere XD 5.1 to WebSphere XD 6.0, you must first perform the standard WebSphere Application Server migration process on each of your nodes, followed by installing WebSphere XD 6.0, the running 'XDUpgrade' on the Deployment Manager.

Q: What is a Service Policy?
A: A service policy is used to define performance goals and business requirements for requests that should be given the same quality of service. It defines how requests should be handled by the ODR. In addition service policy can be used to scope data in the runtime topology (what items you are looking at) and can be used as the data set in the runtime topology (how you are breaking it down). The application placement controller uses the performance goals and business requirements to determine when additional resources are needed.

Q: What business challenge is addressed by Business Grid support offered by WebSphere XD?
A: WebSphere Application Server and J2EE servers in general have classically focused on lightweight transactional work. Typically, an individual request can be handled in a few seconds of CPU time and relatively small amounts of memory. However, other styles of long-running applications require more resources and different types of support from the runtime environment. Business grid provides support within WebSphere Application Server for long-running applications. Within an enterprise environment, it is usually preferable to run long-running and transactional work on separate CPUs, running them within the same CPU can negatively affect performance for the application. Long-running work might take hours or even days to complete and consume large amounts of memory or processing power while it executes. Business grid provides the capability to deploy different types of applications to different nodes within your environment, and can balance the work based on policy information.

Q: What is LREE? ( LREE.ear)
A: The execution environments are application servers augmented with additional function to provide the runtime environments needed by long-running applications. WebSphere Extended Deployment provides two execution environments packaged as a single J2EE application (LREE.ear) that is deployed to the dynamic clusters that will host long-running applications. The two execution environments provided by WebSphere Extended Deployment are:
a. The computationally-intensive execution environment supports long-running applications that expect to consume large amounts of the Central Processing Unit (CPU). This execution environment provides a relatively simple programming model based on asynchronous beans.
b. The long-running execution environment supports batch-oriented applications. These applications are expected to perform record processing similar to more traditional J2EE applications, but are driven by batch inputs rather than interactive users. This environment builds on familiar J2EE entity beans to provide batch applications a rich programming model that supports container-managed restartable processing and the ability to pause and cancel executing jobs.

Q: What is xJCL?
A: For the business grid the behavior of a long-running application needs to be
defined within an XML based Job Control Language or xJCL. The scheduler component is passes an xJCL document as part of a job submission request. The scheduler uses the information within the xJCL to match the job to available nodes within the environment.
An XML based Job Control Language (xJCL) is used to describe the behavior of a long-running program. Long-running scheduler clients pass an xJCL document as a job submission request

Q: What is QoS? And How does XD assist in delivering QoS?
A: A definition: "Quality of Service - how good the service provided actually is "Enhancing QoS involves things like performance, throughput, scalability, availability, serviceability, state management, workload prioritization, overload protection, traffic management, monitoring and management capabilities, etc. One of the roles of middleware is to provide features that enable the QoS of an application to be controlled, monitored, and increased QoS can be:
a. Provided transparently to an application (i.e. via clustering, state management, etc)
b. Built into an application through patterns and exploitation of middleware infrastructure provided interfaces

Q: Does WebSphere XD provide Autonomic flow control for other (JMS) messaging providers?
A: NO. JMS flow control is applicable only for the default messaging provider - the ME of SIBus. Flow control is only supported for JMS message consumers, synchronous or asynchronous, running in application servers. No flow control for JMS messages consumed by standalone JMS clients or J2EE applications running in client containers.
Future release of XD may add routing facility for JMS messages where the ARFM gateway will be able to route messages to different application servers like the HTTP routing performed by ODR.

Q: What is the WebSphere XD support for autonomic flow control of IIOP messages?
A: Flow control is only supported for the IIOP messages originating from standalone EJB clients executing in client containers. There is no IIOP flow control mechanism for the more common scenario where EJBs are invoked from Servlets.
This is how IIOP traffic works today:
WebSphere XD Components are plugged into the IBM ORB at the application server. ThreadPoolStrategy intercepts the IIOP requests dispatched by ORB. Standard ODR filters classifies, categorizes and prioritizes requests .Routing has already been performed by the ND EJB WLM component using 'transactional affinity' and Weighted Round Robin load-balancing algorithm
A future release of XD may provide the routing component thereby bringing uniformity in the ARFM strategy for all the supported protocols - HTTP, JMS, and IIOP.

Q: Will WebSphere XD enable my application to perform any faster?
A: NO. WebSphere XD, while may not enable your application to perform any faster, but it will provide you with virtualized resource pool to handle any unanticipated outages. Based on the health policies set by the administrator WebSphere XD can perform actions on behalf of the administrator, thereby rendering the application continuously available. It is however recommended that the application be thoroughly benchmarked and tested for performance.

Introducing WebSphere XD

Hello WebSphere Community,
I have created this blog to discuss WebSphere XD. We can use this forum to discuss and educate ourselves on WebSphere XD.

As an intorduction, WebSphere XD is an 'Add on' product, that prereqs WebSphere ND. WebSPhere XD combines features of Autonomic and grid computing, to provide for a new class of application deployment environment.

Latest version of WebSPhere XD is V 6.1.

Lets Have fun.

:)
Nitin