Learn About Deploying Oracle E-Business Suite on Oracle Cloud Infrastructure

If you want to provision Oracle E-Business Suite on Oracle Cloud Infrastructure or migrate Oracle E-Business Suite environments from your data center to Oracle Cloud Infrastructure, you can set up a multihost, secure, high-availability topology.

However, such an environment requires multiple, interdependent infrastructure components to be carefully set up to work together to create an environment that is efficient, secure, and reliable. For example, your topology will require some instances to be created in public subnets to perrmit access over the Internet, while most instances should be in private subnets to restrict access. Then you need to ensure that appropriate security lists are set up to various instances. You might also want to configure a load balancer to forward requests, a bastion host to permit incoming traffic, a NAT gateway to enable outgoing traffic, and a service gateway to provide access to object storage. You can set up each of these components individually using the Oracle Cloud Infrastructure Console or any of the other interfaces. However, setting up each component individually is a time-consuming process and it isn’t easy to manage the entire topology as a single entity — to replicate it from one region to another, for example, or even across Oracle Cloud Infrastructure tenancies.

A better approach is to manage the required components through detailed configuration files. This allows you to automate the set up of infrastructure components, which enables you to set up, replicate across regions, and tear down the entire topology quickly and easily. This is where Terraform comes in. Terraform allows you to manage infrastructure as code. Using Terraform, you can define your infrastructure resources in configuration files that you can persist, version, and share. These files describe the steps required to provision your infrastructure and maintain its desired state. You can then execute these steps to build the described infrastructure.

Architecture

You can design your Oracle E-Business Suite deployment on Oracle Cloud Infrastructure in a single availability domain, across multiple availability domains, or in multiple regions.

  • Single availability domain: You can deploy Oracle E-Business Suite in a single availability domain and still ensure high availability by setting up multiple application instances. Use this architecture when you want to ensure that your application is available even when an application instance goes down. The other available application instances in the availability domain continue to process the requests.

  • Multiple availability domains: Use this architecture when you want to ensure that your application is available even when one availability domain goes down. You can still access the application instances in another availability domain.

  • Multiple regions: Use this architecture when you want to set up a disaster recovery site for your application in a different region. This architecture is essentially the same as the multiple availability domain architecture, but instead of creating resources in a second availability domain in the same region, you create resources in another region.

Architecture for Deploying Oracle E-Business Suite in a Single Availability Domain

This architecture shows the deployment of an Oracle E-Business Suite application in a single availability domain while ensuring high availability.

The architecture consists of a virtual cloud network (VCN) with the bastion, load balancer, application, and database hosts placed in separate subnets of VCN in a single availability domain. In the following architecture diagram, the bastion host is deployed in a public subnet, and all the other instances are deployed in private subnets. You can place the different instances in public or private subnets based on your business requirements.

In this architecture, multiple application instances are deployed in an availability domain to ensure high availability. This ensures that your application is available even when an application instance goes down. The other available application instances in the availability domain continue to process the requests. This high availability of an application within an availability domain can be achieved by placing application instances in separate fault domains. Fault domains enable you to distribute your instances so that they are not on the same physical hardware within a single availability domain. As a result, a hardware failure or hardware maintenance that affects one fault domain does not affect instances in other fault domains.

Instances in the private subnet require outbound connection to Oracle Services Network to apply operating system (yum) updates. For this purpose, use a service gateway in your VCN. With a service gateway, the hosts in the private subnet can access supported Oracle services (such as the yum repository) privately. Instances in the private subnet may optionally require outbound connection to the Internet to download application patches and for external integrations. For this purpose, use a Network Address Translation (NAT) gateway in your VCN. With a NAT gateway, the hosts in the private subnet can initiate connections to the Internet and receive responses, but won’t receive inbound connections initiated from the Internet.

All application instances in the availability domain are active. The load balancer instances receive requests and send it to the application servers. The application servers process these requests and forward it to the database instances. You can access the instances in private subnets over port 22 through the bastion host or the Dynamic Routing gateway (DRG) if you have set up an IPSec VPN tunnel between your data center and Oracle Cloud Infrastructure DRG.

Oracle recommends that the database and the applications deployed on Oracle Cloud Infrastructure should have a robust backup of recovery strategy. It is recommended to store backup of databases and application instances in the Oracle Cloud Infrastructure Object Storage. The databases and application instances in private subnets can be backed up to Oracle Cloud Infrastructure Object Storage by using a service gateway. A service gateway provides access to Oracle Cloud Infrastructure Object Storage without traversing the Internet.

The automatic and on-demand database backups to Oracle Cloud Infrastructure Object Storage can be configured using the Oracle Cloud Infrastructure console. This requires connectivity to Oracle Cloud Infrastructure Object Storage using a Swift endpoint. All database backups on Oracle Cloud Infrastructure Object Storage are encrypted with the same master key used for Transparent Data Encryption (TDE) wallet encryption. The automatic database backup service uses weekly incremental backup strategy to backup databases with a custom retention policy that you can customize when configuring automatic backups.

The backup of application can be configured by using the policy-based backup feature of Oracle Cloud Infrastructure Block Volumes. Oracle Cloud Infrastructure Block Volumes provides you with the capability to perform volume backups automatically based on a schedule and retain them based on the selected backup policy. This allows you to adhere to your data compliance and regulatory requirements. There are three predefined backup policies: Bronze, Silver, and Gold. Each backup policy has a predefined backup frequency and retention period.


Description of single_availability_domain_ha_topology.png follows
Description of the illustration single_availability_domain_ha_topology.png

This architecture supports the following components:

  • Bastion host: The bastion host is an optional component that can be used as a jump server to access instances in the private subnet. A bastion host is an Oracle Cloud Infrastructure Compute instance that uses Linux as its operating system. Place the bastion host in a public subnet and assign it a public IP address to access it from the Internet.

    To provide an additional level of security, you can set up security lists to access the bastion host only from the public IP address of your on-premises network. You can access Oracle Cloud Infrastructure instances in the private subnet through the bastion host. To do this, enable ssh-agent forwarding, which allows you to connect to the bastion host, and then access the next server by forwarding the credentials from your computer. You can also access the instances in the private subnet by using dynamic SSH tunneling. SSH tunneling is a way to access a web application or other listening services. The dynamic tunnel provides a SOCKS proxy on the local port, but the connections originate from the remote host.

  • Load Balancer tier: This tier contains Oracle Cloud Infrastructure Load Balancing. It receives requests from application users, and then load balances traffic to Oracle E-Business Suite application servers. Use Oracle Cloud Infrastructure Load Balancer to distribute traffic to your application instances within a VCN. This service provides a primary and standby instance of the load balancer to ensure that if the primary load balancer goes down, the standby load balancer forwards the requests. The load balancer ensures that requests are routed to the healthy application instances. If there’s a problem with an application instance, then the load balancer removes that instance from configuration and starts routing requests to the remaining healthy application instances.

  • Application tier: This tier contains more than one instance of an Oracle E-Business Suite application to provide high availability. Set up multiple instances of an application in separate fault domain to ensure that you can continue accessing the application even if an application instance goes down.

    Oracle recommends deploying the Oracle E-Business Suite multitier setup with shared application binaries. Use Oracle Cloud Infrastructure File Storage to create a shared file system to share Oracle E-Business Suite application binaries.

  • Database tier: This tier contains Oracle Cloud Infrastructure Database instances. For high availability requirements, Oracle recommends using a 2-node Virtual Machine (VM) DB system or Exadata DB System.

Architecture for Deploying Oracle E-Business Suite in Multiple Availability Domains

This architecture shows the deployment of an Oracle E-Business Suite application across multiple availability domains. It shows a virtual cloud network (VCN) with the bastion, load balancer, application, and database instances placed in separate subnets across two availability domains.

Multiple application servers are deployed in each availability domain to ensure high availability within an availability domain. All application servers within an availability domain are deployed across different fault domains. By using different fault domains, application instances are protected against unexpected hardware failures and planned outages due to hardware maintenance. In addition, to ensure availability in case the primary availability domain is not available, redundant instances are created in another availability domain. In the architecture diagram, the instances in Availability Domain 1 are active and the instances in Availability Domain 2 are on standby. Oracle recommends that you set up application and database instances in symmetric topology across availability domains to ensure that your active instances serve the entire load when the primary availability domain is not available. In the symmetric topology, you deploy the same number of application and database instances on both the active and standby sites. When the instances in Availability Domain 1 are active, the load balancer is configured to direct traffic only to these active instances. The load balancer is not configured to direct traffic to the application server instances in Availability Domain 2. This means the application instances in Availability Domain 2 are not added to load balancer backend set. If Availability Domain 1 is not available, then you’ll have to manually switch over the application and database to the other availability domain. In this scenario, the application and database server instances in Availability Domain 2 become active. At this time, you need to update the backend set of the load balancer with application instances in Availability Domain 2 and also remove the application instances of Availability Domain 1. The load balancer will then accept requests and forward them to application servers in Availability Domain 2.

For a seamless failover across availability domains, use logical host names for the Oracle E-Business Suite database and application instances. Use the same logical host names on the primary and standby sites to reduce the effort for reconfiguring instances during switchover or failover.

The database and application deployed on Oracle Cloud Infrastructure is recommended to have a robust backup of recovery strategy. It is recommended to store backup of databases and application instances in the Oracle Cloud Infrastructure Object Storage. The databases and application instances in private subnets can be backed up to Oracle Cloud Infrastructure Object Storage by using a service gateway. A service gateway provides access to Oracle Cloud Infrastructure Object Storage without traversing the Internet.

The automatic and on-demand database backups to Oracle Cloud Infrastructure Object Storage can be configured using the Oracle Cloud Infrastructure console. This requires connectivity to Oracle Cloud Infrastructure Object Storage using a Swift endpoint. All database backups on Oracle Cloud Infrastructure Object Storage are encrypted with the same master key used for Transparent Data Encryption (TDE) wallet encryption.

The automatic database backup service uses weekly incremental backup strategy to backup databases with a 30-day retention policy. It is also possible to perform an on-demand full backup of databases for ad-hoc requirements.

In the following architecture diagram, the bastion host is deployed in a public subnet and all other instances are deployed in private subnets. You can place the different instances in public or private subnets based on your business requirements. You can access the instances in private subnets over port 22 through the bastion host or the DRG if you have set up an IPSec VPN tunnel between your data center and Oracle Cloud Infrastructure DRG.


Description of multiple_availability_domain_ha_topology.png follows
Description of the illustration multiple_availability_domain_ha_topology.png

This architecture supports the following components:

  • Bastion host: The bastion host is an optional component that you can use as a jump server to access the application and database instances. For high availability, deploy a bastion host in both availability domains.

  • Load Balancer tier: Oracle Cloud Infrastructure Load Balancing distributes traffic across the application servers in an availability domain. The load balancer can be provisioned as a public or private load balancer.

  • Application tier: Multiple application servers are set up in each availability domain to ensure high availability. The application servers in Availability Domain 1 are in the active state, and the application servers in the Availability Domain 2 are in the passive state. To synchronize application servers across availability domains, use rsync.

    Oracle recommends deploying the Oracle E-Business Suite multitier setup with shared application binaries. Use Oracle Cloud Infrastructure File Storage to create a shared file system to share Oracle E-Business Suite application binaries.

  • Database tier: Set up highly-available database instances in both availability domains. The architecture diagram shows that the database servers in Availability Domain 1 are active and the database servers in Availability Domain 2 are on standby. To replicate the database across availability domains, use either Oracle Active Data Guard or Oracle Data Guard. You can enable Oracle Data Guard for a database from the Oracle Cloud Infrastructure console or by using Oracle Cloud Infrastructure APIs.

Before You Begin

Before you begin setting up Oracle Cloud Infrastructure components using Terraform, ensure that you’re using a Windows, Linux, or UNIX-like local host with access to the Internet. This system can either be an on-premise system, or it can be in the cloud. For convenience, we’ll refer to this as your local system or your local host.

You should also have access to an Oracle Cloud Infrastructure tenancy.

The steps to set up and use Terraform are different on different operating systems. On a Linux or UNIX-like system, you’ll need the following tools and utilities:

  • Git to clone the Terraform provider package and the Terraform modules from the repository. This is optional. You could use a web browser instead, to download the packages.

  • ssh-keygen to generate an SSH key pair.

  • OpenSSL to generate an API signing key pair.

  • A web browser to access the Oracle Cloud Infrastructure Console.

On a Windows system, you’ll need:

  • Git Bash to clone the Terraform provider package and the Terraform modules from the repository. You could use a web browser instead, to download the packages. However, you’ll need Git Bash to generate an API signing key pair as well as an SSH key for the application instances, using OpenSSL or ssh-keygen.

  • PuTTY to generate an SSH key pair and to connect to your bastion hosts using that SSH key.

  • A web browser to access the Oracle Cloud Infrastructure Console.

About Required Services and Roles

This solution requires the following services and roles:

  • Oracle Cloud Infrastructure

Ensure that you minimally have the following policies for your user’s group and compartment:

ALLOW GROUP <YOUR.GROUP> TO MANAGE instance-family IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO MANAGE virtual-network-family IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO MANAGE database-family IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO MANAGE object-family IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO MANAGE volume-family IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO MANAGE load-balancers IN COMPARTMENT <YOUR.COMPARTMENT>
ALLOW GROUP <YOUR.GROUP> TO READ compartments IN COMPARTMENT <YOUR.COMPARTMENT>
Allow GROUP <YOUR.GROUP> to MANAGE file-family in compartment <YOUR.COMPARTMENT>
Allow GROUP <YOUR.GROUP> to READ all-resources in tenancy

See Learn how to get Oracle Cloud services for Oracle Solutions.