WebSphere Extreme Scale_Operational Readiness

8
WebSphere Extreme Scale (WXS Components) – Operational readiness Considerations. By Nitin Gaur Introduction: IBM WebSphere eXtreme Scale is specifically designed to help applications lower the load they place on back-end servers, increase availability and scalability, and provide the facilities for extreme transaction processing. A software layer between an application and its back-end resources, WebSphere eXtreme Scale accelerates applications by caching objects obtained from the back-end, providing a customizable, pluggable data fabric framework that allows applications to share data across a wide range of application scenarios. This paper attempts to serve as an operational readiness checklist and is designed for customers and IBM software services community, who are interested in implementing a highly available and scalable e-business infrastructure using the IBM WebSphere eXtreme Scale. Through WebSphere eXtreme Scale, customers can postpone or virtually eliminate costs associated with upgrading more expensive, heavily loaded back-end database and transactional systems, while meeting the high availability and scalability requirements for today’s environments. While not an exhaustive list, this paper includes primarily the infrastructure planning requirements of WXS environment. Understanding WXS Components: From a broad environment perspective WXS has Three management entities: 1. Grid Servers: These are JVM that will contain grid container. Much like a typical description of a container in a J2EE™ context, grid containers essentially provide the grid application services such as security, transaction support, JNDI lookup service, remote connectivity, and so forth. The grid containers house shard distribution and placement, and enable easy manageability of the grid infrastructure. Much like other containers (Web and EJB™ container, for example), a grid container can also take advantage of the configuration service provided by the WebSphere Application Server infrastructure in a managed environment. 2. Grid Clients: Clients connect to a grid and are attached to the whole grid. Clients need to examine the key of application data to determine to which partition to route the request. Any entity that is attached to the grid with any kind of request becomes a client. The client directly accesses the partition that holds the data. The location information regarding the partition is provided by the catalog servers. 3. Catalog Servers: The catalog server is the engine that drives the grid operations. The catalog server maintains the healthy operation of grid servers and containers. The catalog server becomes the central nervous system of the grid operation by providing the following essential operation services: a. Location service to all the clients b. Health management of the grid itself c. Shard distribution and re-distribution d. Policy and rule enforcement e. High availability and group service

Transcript of WebSphere Extreme Scale_Operational Readiness

Page 1: WebSphere Extreme Scale_Operational Readiness

WebSphere Extreme Scale (WXS Components) – Operational readiness Considerations. By Nitin Gaur Introduction: IBM WebSphere eXtreme Scale is specifically designed to help applications lower the load they place on back-end servers, increase availability and scalability, and provide the facilities for extreme transaction processing. A software layer between an application and its back-end resources, WebSphere eXtreme Scale accelerates applications by caching objects obtained from the back-end, providing a customizable, pluggable data fabric framework that allows applications to share data across a wide range of application scenarios. This paper attempts to serve as an operational readiness checklist and is designed for customers and IBM software services community, who are interested in implementing a highly available and scalable e-business infrastructure using the IBM WebSphere eXtreme Scale. Through WebSphere eXtreme Scale, customers can postpone or virtually eliminate costs associated with upgrading more expensive, heavily loaded back-end database and transactional systems, while meeting the high availability and scalability requirements for today’s environments. While not an exhaustive list, this paper includes primarily the infrastructure planning requirements of WXS environment. Understanding WXS Components: From a broad environment perspective WXS has Three management entities:

1. Grid Servers: These are JVM that will contain grid container. Much like a typical description of a container in a J2EE™ context, grid containers essentially provide the grid application services such as security, transaction support, JNDI lookup service, remote connectivity, and so forth. The grid containers house shard distribution and placement, and enable easy manageability of the grid infrastructure. Much like other containers (Web and EJB™ container, for example), a grid container can also take advantage of the configuration service provided by the WebSphere Application Server infrastructure in a managed environment.

2. Grid Clients: Clients connect to a grid and are attached to the whole grid. Clients need

to examine the key of application data to determine to which partition to route the request. Any entity that is attached to the grid with any kind of request becomes a client. The client directly accesses the partition that holds the data. The location information regarding the partition is provided by the catalog servers.

3. Catalog Servers: The catalog server is the engine that drives the grid operations. The

catalog server maintains the healthy operation of grid servers and containers. The catalog server becomes the central nervous system of the grid operation by providing the following essential operation services:

a. Location service to all the clients b. Health management of the grid itself c. Shard distribution and re-distribution d. Policy and rule enforcement e. High availability and group service

Page 2: WebSphere Extreme Scale_Operational Readiness

The client will begin its access to the grid by obtaining a routing table from the

catalog servers, which enables the client to locate the primary partition shard and object. In the event of a JVM failure, or re-distribution of partitions due to a change in grid membership, the client is provided with an up-to-date routing table by one of the grid servers. This mechanism is maintained by an epoch time and version maintained with the routing table held by the client.

Understanding the WXS component relationship:

The above Data Model describes the relationship between the components in an eXtreme Scale environment. 1. The JVM can be either an application server or a stand-alone JVM and can host many grid containers. A JVM contains a runtime and a number of containers, usually one. 2. A grid container that resides in a JVM can host many ObjectGrid instances, or many ObjectGrid instances spread across many grid containers. 3. A MapSet is a collection of maps that are typically used together. Many MapSets can exist in one ObjectGrid instance. 4. An ObjectGrid consists of a number of partitions. Each partition has a primary shard and N replica shards. 5. One partition can host many BackingMaps. 6. An ObjectGrid consists of a number of maps, called a mapSet. A mapSet is partitioned using a key. Each map in the mapSet is defined by a BackingMap. 7. An ObjectGrid can host a set of grid containers. A grid container can only host shards from one ObjectGrid. This means that multiple ObjectGrids can be started on a single JVM. Each grid started has its own container within the JVM. Those grid containers will host shards from the grid as determined by the catalog server.

Page 3: WebSphere Extreme Scale_Operational Readiness

WXS Infrastructure Planning Considerations:

1. Grid Server Hosting. a. Grid Server on WebSphere managed node: WebSphere eXtreme Scale fits

perfectly into an environment managed by WebSphere Application Server Network Deployment, allowing all the services, such as transaction management, security and monitoring, to be used by grid components. The decision to host Grid Servers in a managed environment, while providing features like ease of use and administration, may have licensing cost considerations.

b. Grid Server on standalone Supported JVM: WebSphere eXtreme Scale has

several flexible deployment options. One of these deployment options is installing WebSphere eXtreme Scale into a stand-alone Java2 Standard Edition environment (J2SE). The stand-alone deployment option differs from the WebSphere Network Deployment-managed option in that it lacks Java Enterprise Edition support and does not benefit from the management and monitoring environment that WebSphere Network Deployment provides. It does, however, provide a simple footprint and runtime for hosting grid containers and catalog servers. While it may be economical to

2. Catalog servers hosting

a. Catalog Server on WebSphere managed node: As mentioned before, The catalog server is the engine that drives the grid operations. Hosting Catalog servers on WebSphere managed node, presents similar benefits, to that of hosting grid servers on WebSphere managed node.

b. Catalog Server on standalone Supported JVM : In some cases, it may be

imperative to host catalog servers on standalone JVMs. An example may include when using WXS enabled grid to cache HTTP session, across geographically disperse data centers. In this specific scenario, while the grid servers may be hosted in WebSphere managed application servers, and the cache to be replicated across data centers, the catalog servers, due to HA managers services and quorum requirements, would be required to be hosted in stand alone JVMs. This will enable a core group of standalone catalog servers.

c. Multi data Center Catalog Server support : Multi data center would imply a

WXS zoned configuration. In a Zoned configuration, usually one catalog server per zone ( or data center) is a good start.

3. Co-locating Grid client and server (Application and Grid container in same JVM): a. This is when the ObjectGrid servers are collocated in the same processes where

the servlets run. The WXS session manager can communicate directly to the local ObjectGrid instance, since it is collocated with in the same server process.

b. When WebSphere Application Server as runtime and grid container, simply place the supplied objectGrid.xml and objectGridDeployment.xml files into the META-INF directories of your WAR files. ObjectGrid will automatically detect the presence of these files when the application starts and will then automatically launch the ObjectGrid containers in the same process as the session manager. You can modify the objectGridDeployment.xml depending on which type of replication (synchronous or asynchronous) and how many replicas you want

Page 4: WebSphere Extreme Scale_Operational Readiness

configured. This step assumes that your have augmented the application server profile/instance with WXS.

c. When the grid container is collocated with the enterprise application in the same

application server, the grid container becomes more vulnerable. Issues in the application (for example, memory leaks, deadlock situations) can bring the grid container down.

4. Isolating the application from the grid (i.e. application and grid in separate JVMs):

a. Unlike the topology discussed above the server process hosting the application is different from the server process hosting the JVMs. This is beneficial for the application with either voluminous HTTP session traffic or relatively larger http session objects. In this case the WXS session manager, which resides on the application server process, communicates to a remote ObjectGrid server processes. In effect the WXS session manager becomes the client, to the Object grid servers, which are the hosts to grid containers.

b. To use a remote, ObjectGrid, the WXS session manager must be configured to communicate with the catalog servers and grid servers. The session manager will then use an ObjectGrid client connection to communicate to the catalog server and the ObjectGrid servers, wherever they reside. If the ObjectGrid servers are to be started in independent, standalone J2SE processes, then it is advisable to launch the ObjectGrid containers using the objectGridStandAlone.xml and objectGridDeploymentStandAlone.xml files supplied in the session manager samples directory. This differentiation is to indicate that the HTTP session store is standalone and isolated. The core functionality of the file remains, i.e. like objectGrid.xml, objectGridStandalone.xml defines the grid for sessions, and objectGridDeploymentStandalone.xml defines the mechanics of grid deployment.

5. Grid server sizing

a. Calculate the number of JVMs required from the partitioning configuration. b. When deciding on the number of JVMs required for a grid, a good rule of thumb

is to start with the number of partitions needed multiplied by the number of replica shards per partition. For example, if you have two partitions and each partition has one primary and one replica shard, then you would need at least four JVMs as a starting point for a highly available grid.

c. It is important to plan the number of partitions you will need for both current capacity and future growth. Once you have deployed your applications you cannot simply add partitions or scale using more JVMs. A good guideline to follow is that at the end of your planning horizon, you should end up with 10 shards per partition.

6. Catalog server sizing

a. Always more than one for high availability b. Recommended prime number greater than 2. This is due to concept of a catalog

service quorum. A catalog service quorum is the minimum number of active catalog server members required for the grid system to operate correctly (that is, to accept membership registrations and changes to membership to ensure proper routing and shard placement). This approach of ensuring the registration and

Page 5: WebSphere Extreme Scale_Operational Readiness

consistency of grid servers is achieved only when a quorum is established between catalog servers. Writes to the catalog service state are committed only when the majority of the catalog servers participate in the transaction.

c. The decision on the number of catalog servers depends on overall grid size, desired high availability, and zones configuration.

d. In a Zoned configuration, usually one catalog server per zone is a good start.

7. Secure Transport (SSL) a. Understanding which end points to secure : It is vital to understand different

transports that ObjectGrid uses in different instances. WXS uses the ORB for client-server, server-server, client-catalog, server-catalog communications. This is secure and was added support for SSL-Required in 6.1.0.5.

In addition to the ORB WXS the HAM/DCS/RMM stack for membership only by the containers. Further the intra-zone (data center) grid servers use group services (HA manager construct) for server state information. So, the communications on this protocol is kept local and only contains membership information, but this is not yet secured. This should not be alarming to enterprise, as there is no application data shared, but only server state data ( which included things like server, hostname and port information).

b. Supported Transport layer security: SSL Supported and SSL required are two

supported transport Type. SSL required, transportType support was added in 6.1.0.5. SSLv2, SSLv3, and TLSv1 are all considered SSL protocols.For Transport, One can choose to use Secure Sockets Layer (SSL), TCP/IP or both as the inbound transport that a server supports. If you specify TCP/IP, the server only supports TCP/IP and cannot accept SSL connections. If you specify SSL-supported, this server can support either TCP/IP or SSL connections. If you specify SSL-required, then any server communicating with this one must use SSL.

SSL Supported: If you select SSL-supported, then the server opens both a TCP/IP and an SSL listener port and most inbound requests are received using SSL SSL Required : If you select SSL-required, then the server opens an SSL listener port only and all inbound requests are received using SSL.

If you specify SSL-supported or SSL-required, decide which set of SSL configuration settings you want to use for the inbound configuration. This decision determines which key file and trust file are used for inbound connections to this server. In dynamic deployment topology, the ORB protocol is used for client/server communications. ORB transport security, Transport Layer Security (TLS) or Secure Sockets Layer (SSL) is supported. However, transportType property must be set to "SSL-Supported" in both the client and server security property files. If set to "SSL-Required", the container server will fail to initialize with an error message: "initial and forwarded IOR inaccessible". Please note that prior to 6.1.0.5 use SSL-Supported or can use SSL-Required if 6.1.0.5 is applied. Either case SSL is supported, although with a different type of support.

Page 6: WebSphere Extreme Scale_Operational Readiness

c. TCP and Firewall considerations : Please not that all the relevant ports would need to be considered while designing a WXS topology. To ensure communication flow between client-server, server-server, client-catalog, server-catalog is vital to a smooth grid function. These communication flow ensures grid data replication, client to grid access, registering membership changes and subsequent re-routing of client due to membership changes. The following ports would need to considered, in relation to TCP transport and enterprise firewall while planning a WXS topology:

i. Client port : port used for client catalog cluster communication ii. Peer port: port used for peer catalog cluster communication

iii. Listener port : Client’s need to know Catalog service JVMs listener end points.

iv. JMXServicePort – if using JMX ports.

Note: you can set the transportType property in the following client and server

security configuration files: • Client ( application - in Managed WAS env) : The transportType property in the

security.ogclient.props file. • Container or Grid server or cache server: The transportType property in the

containerServer.props file. • Catalog Server: The transportType property in the security.ogserver.props file or

containerServer.props file, depending on which file you use.

8. Testing the Infrastructure

Testing Methodology : One of the primary purpose of testing is to uncover software defects and failures and subsequently correct them. Any broad goals of testing include unit testing, integration testing, system and system integration testing. Each testing process has a specific goal and objectives. From extreme scale testing, it is vital to isolate the application test from the WXS ‘Grid’ tests. The implication of such an approach assumes that ONLY the WXS features are tested independently while the application itself has been tested for component features. The WXS ‘Grid’ tests would include testing the following:

1. Application accessing the Grid 2. WXS grid’s replication mechanism 3. WXS grid container failover and HA mechanism. 4. Testing of the WXS Grid infrastcruture, including the catalog servers and

shard placement. 5. Various use of configurable grid features such as Memory threshold, zone

replication, locking mechanism , batched update etc. Integration and system integration testing would however include tests cases that include verification of interaction between the integrated components, and system integration tests verifies the integrated system is well aligned with core objectives of system requirements. It is vital to understand that testing at each level to be completed, prior to proceeding to integrations or system level testing. This approach will ensure that each component or module is verified prior to their interaction in a system as a whole.

Page 7: WebSphere Extreme Scale_Operational Readiness

9. Monitoring: Monitoring while important is a complex discussion topic, and many decision points around monitoring focus on “what to monitor?” Conceivably one can monitor many aspects of an enterprise application infrastructure, i.e

a. Infrastructure monitoring – Include Monitoring of the overall infrastructure health, including the resource usage, JVM health and availability and so on.

b. Application Monitoring – Includes application performance, resource usage and bottlenecks.

WXS introduces another level of monitoring, which is completely optional, and that is the GRID monitoring.

c. Grid Monitoring – Includes monitoring around cache statistics, cache entries and cache policy information, grid replication and information on shard placements.

When WXS is hosted in WebSphere managed environments, the WebSphere

Application Server provides a sophisticated performance monitoring infrastructure (PMI). It can be used to gather performance statistics of all components inside an application server. WebSphere eXtreme Scale takes advantage of this infrastructure to collect performance statistics relevant to the grid. Metrics provided include the following:

d. Actual cache size e. Cache hit rate f. Transaction response time g. Loader update response time.

However, in a standalone environment, The ObjectGrid APIs and MBeans are designed to allow for easy integration with third-party monitoring applications. JConsole or MC4J are some examples of lightweight JMX consoles that can be used to quickly digest information about an ObjectGrid topology. Besides the JMX based monitoring, WXS, beginning with WXS 6.1.0.3 provides a sample application called ‘xsadmin’. This nifty application will provide with ‘point-in-time’ information on topology, shard placement and map sizes in the WXS enabled grid. These tools are only made available to facilitate WXS specific grid level monitoring and management. It is assumed that the infrastructure monitoring tools ( example IBM’s ITCAM and CA’s Wily Introscope) will still be employed to monitor the underlying application environment.

Page 8: WebSphere Extreme Scale_Operational Readiness

Acknowledgement Robert Ringo – WebSphere WW Technical Sales Douglas Berg – WebSphere Extreme Scale Development Joshua Dettinger - WebSphere Extreme Scale Development References: 1. RedBook - Users Guide to WebSphere Extreme Scale www.redbooks.ibm.com/redpieces/pdfs/sg247683.pdf 2. WebSphere Extreme Scale – Wiki – Users Guide. http://www.ibm.com/developerworks/wikis/display/objectgrid/Getting+started 3. Billy Newports Blog - http://www.devwebsphere.com/