This is a post by Rishi Mahajan, Principal Solutions Architect, and Rajeev Thottathil, Solutions Architect.
Many Oracle E-Business Suite customers have chosen Oracle Cloud Infrastructure to deploy their demanding enterprise applications, and the number of deployments is growing daily. E-Business Suite customers choose Oracle Cloud Infrastructure because of its enterprise-class design, lower costs to deploy and operate, performance, scalability, security, and high availability of the environment.
In many of these deployments, resource requirements might vary from day to day. During slow days of the month, you might require only two application servers to process your workloads, but at the busier end of the month or end of the year, you might need three or four application servers to process additional workload (such as additional reports). You can combine the flexibility offered by Oracle Cloud Infrastructure Compute autoscaling with the E-Business Suite addnode functionality to right-size the resources deployed in your E-Business Suite environment. You can save infrastructure costs with on-demand scaling of instances, instead of preprovisioning instances for peak demand.
This post shows an example of how you can use autoscaling, in conjunction with cloud-init, Ansible, and E-Business Suite addnode functionality, to add application tiers on demand to service your peak workloads.
Let's start by setting up a multinode, highly available E-Business Suite 12.2 installation, as shown in the following diagram:
We used the Terraform templates provided on GitHub to provision infrastructure for this environment. After the infrastructure was created, we manually installed and configured Oracle E-Business Suite 12.2.7 (with Oracle Database 22.214.171.124). It's also possible to configure autoscaling in an existing E-Business Suite deployment.
An additional script, instance_config.tf, is required in the compute module to create and configure the instance pool. The database system is a two-node Real Application Clusters (RAC) deployment.
For this deployment, we created a shared APPL_TOP directory using the Oracle Cloud Infrastructure File Storage service and mounted it as /u01/install/APPS on the application tier compute nodes.
The application node (App Server 1) was created outside the instance pool and is running the WebLogic admin server for E-Business Suite. All additional application tier nodes (App Server 2 and App Server 3) are running inside the instance pool.
After the E-Business Suite environment is up and running, all the required autoscaling scripts (shell scripts and Ansible playbooks) to add an E-Business Suite application tier node to the configuration are copied in the /u01/install/APPS/scripts directory. We can add the additional application node (App Server 2) by editing the number of instances for instance_pool to 1.
We set up an instance configuration named ebsappash_inst_config_as with an Oracle provided OS image and Oracle Linux 7.6. In the following screenshot, the bottom section displays the instance pools in this configuration.
Clicking the ebsappash_inst_pool_as instance pool link displays its configuration details. This instance pool contains two of the existing application servers, and its has a load balancer, ebs-lb-as, attached to it. During autoscaling, the newly added application node is automatically added into the backend set of the load balancer.
Clicking the auto-scaling-config-20190218-2300 autoscaling configuration link displays the autoscaling configuration details. The autoscaling configuration specifies a cooldown period of 300 seconds for the ebsappash_inst_pool_as instance pool.
Clicking the Edit button displays the details of the auto-scaling-policy-20190218-2300 autoscaling policy. This autoscaling policy is based on the CPU Utilization performance metric. The minimum number of instances is set to 2, the maximum is set to 3, and the initial number of instances is set to 2. The scaling rule is configured so that when the CPU utilization goes over 60 percent, one node is added to the instance pool. At the moment, scale down is disabled (by setting the scale-in threshold percentage to be < 0).
The instances that are part of the instance pool are also the instances that are part of the backend set of the load balancer.
The E-Business Suite Application Manager shows that there are currently three application servers in the E-Business Suite configuration.
With the preceding configuration, the environment is set up in such a way that when the sustained average CPU utilization on the two compute nodes in the instance pool exceeds 60 percent, autoscaling will add a new compute node to the instance pool.
After autoscaling adds the node, the following scripts are executed and the node is added into the E-Business Suite configuration:
Note: The master node is the E-Business Suite application node (App Server 1) running the WebLogic admin server.
As soon as the new node is added into the backend set and the E-Business Suite application is configured, the Backend Health Status for the node changes to the OK state. The instance pool now has three application servers in it.
The E-Business Suite Application Manager shows that the new application server has been added to the E-Business Suite configuration. Transactions are now load balanced to all four application servers in the configuration.
This post describes how to use the Oracle Cloud Infrastructure autoscaling functionality to add capacity to your E-Business Suite environment as your processing requirements increase.
Disclaimer: You can download the scripts referred to in the post. Be aware, however, that the scripts are provided are for educational purposes only. Oracle Corporation doesn't provide any guarantee that these scripts work accurately, and doesn't support the scripts.