Saturday, July 19, 2014

Configuring Oracle Traffic Director Enterprise Load-Balancer for SOA Suite Deployment on Exalogic

Load balancing enables you to achieve horizontal scalability and higher levels of fault tolerance for applications and SOA Suite web services. Load balancers can be implemented at either L7 (application Layer) or at L-4 (Transport Layer) to achieve high availability and reliability of applications. The Layer-7 load balancers provides the user forwarding service and distributes requests based upon data found in application layer protocols (HTTP), while Layer 4 load balancers act upon data found in network and transport layer protocols. In a high-availability environment, both L-4 and L-7 are used. These load balancers come in both software and/or hardware appliances from various vendors (viz F5, Brocade, Cisco, Oracle). 

Layer 7 load balancers can further distribute requests based on application specific data such as HTTP headers, cookies, or data within the application message itself, such as the value of a specific parameter. Here, I will discuss about how Oracle' Layer-7 software load-balancer "Oracle Traffic Director" can be configured in an Exalogic system for Oracle SOA Suite deployments. 


Oracle Traffic Director (OTD) is a complete software Layer-7 load balancing solution that can facilitate the scalability of your SOA Suite deployment by distributing incoming traffic to multiple servers or virtual machines inside Exalogic.  The architecture of Traffic Director enables it to handle large volumes of SOA application traffic with low latency.  It can communicate with SOA Suite servers in the back end over Exalogic's InfiniBand fabric. Here is a proposed sample topology to configure OTD for the Oracle SOA Suite VM Template deployed to Exalogic Elastic Cloud. In a production deployment, the XE database will be replaced with a supported database version or Exadata.


Here are the high-level steps in configuring the Oracle Traffic Director for SOA Suite deployment on Exalogic:

[A - Install and Create Traffic Director Instance]

1. Create vServers to host OTD server instances on the Exalogic Compute Node
    - use Exalogic Control to create vServers (see Exalogic Elastic Cloud Administrator's Guide - Chapter Creating vServers )
    - Create OTD-vServer1 to host the OTD Administration Server  [OTDHOST1]
    - Create OTD-vServer2 to host the OTD Administration Node   [OTDHOST2]
 
2. Install OTD on a shared ZFS storage (say $ORACLE_TRAFFIC_DIRECTOR_HOME) that is accessible to both OTD-vServer1 & OTD-vServer2

3. Create the OTD Administation Server on OTDHOST1

# $ORACLE_TRAFFIC_DIRECTOR_HOME/bin/tadm configure-server --user=otd_admin --server-user=root --instance-home=/u01/app/oracle/config/otd/admin/ --host=OTDHOST1

4. Start the OTD Admin Server on OTDHOST1 as user root

# /u01/app/oracle/config/otd/admin/admin-server/bin/startserv

5. Create an Administration Node on OTDHOST2 as user root
   -  Execute the command below to create an administration node and register it with the remote administration server: https://OTDHOST1:8989  

  # $ORACLE_TRAFFIC_DIRECTOR_HOME/bin/tadm configure-server --user=otd_admin --host=OTDHOST1 --port=8989 --admin-node --node-host=OTDHOST2 --node-port=8900 --instance-home=/u01/app/oracle/config/otd/admin/instances
   
Refer Oracle Traffic Director documentation chapter 5 Creating the Administration Server and an Administration Node  

[B - Configure Traffic Director to Route Requests to SOA Servers]

In order to start using OTD, you need to create a 'configuration'. A 'configuration' is a collection of elements that determine the run-time behavior of an OTD instance.

1. Create a configuration named SOAEXA by using the OTD administration console
2. Start or restart OTD instances using the OTD admin Console
3. Define OTD Virtual Servers for the Oracle SOA Suite deployment
- create the following origin-server pools using the administration console, for e.g. soa-pool ,osb-pool
4. Update the Host Pattern Served by the SOAEXA Virtual Server
5. Deploy the OTD SOAEXA configuration to create an instance of it on the administration node
6. Configure OTD to Create Virtual Server Routes for the WebLogic SOA domain Managed Servers   
7. Create 'Route Conditions' (for e.g.  osb-route, soa-route) for each of the SOA Suite virtual servers configured
8. Validate Access through OTD for the SOA/OSB managed servers
9. Configure Server Callback URL and OTD URL properties in the SOA Infrastructure
   - set both the SERVER and HTTP Server URLs to point to OTD's virtual server (exalogic Infiniband address)
10. Configure SSL for OTD by turning on the WebLogic plug-in enabled flag, since the load balancer terminates SSL requests for security purpose

Chapters 7,8 and 9 "Oracle Exalogic Elastic Cloud Enterprise Deployment Guide for Oracle SOA Suite" are particularly useful to carry out these configurations.

Oracle Traffic Director adds a number of key capabilities, such as intelligent routing, compression, and content caching, among others.  Refer the OTD White Paper as well for more details on configuring OTD on Exalogic.