![Johannes Michler PROMATIS Horus Oracle](/./de/wp-content/uploads/2022/06/Michler-Johannes-2.png?_t=1658731838)
Operating - installing and maintaining - Oracle Fusion Middleware, especially Oracle SOA Suite 12.2.1.4 is quite some work. Not only does installation itself consist of a number of steps, but each quarterly critical patch update also requires applying a number of patches and - especially in simple, single server environments - quite some downtime.
This blog post series will cover how to run Oracle Fusion Middleware - especially Oracle SOA Suite - on docker. First of all, I will cover the high level steps of manual installation, then we'll look at Docker and Kubernetes options and I'll point to the relevant Oracle certification documentation.
The second post will then describe how - using OCI and Oracle Linux - a host to run docker containers can be setup up within minutes. I will then cover provisioning an Oracle Database instance to hold the meta data of Oracle SOA Suite. In the 4th episode I will look into provisioning and configuring SOA Suite itself. While I'll first show those steps in a minimalistic way, to wrap up, the final episodes will cover patching and more advanced deployment options.
As soon as the relevant episodes are published I will update above text to point to the relevant posts.
Manual installation of SOA Suite
Manually installing Oracle SOA Suite 12.2.1.4 is described e.g. in https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.4/insoa/preparing-install-and-configure-product.html#GUID-E2D4D481-BE80-4600-8078-FD9C03A30210. The high-level steps to perform are as follows - assuming everything is done on a single host:
- Prepare a (supported) Operating System by installing prerequisites packages and configuring e.g. networking
- Download relevant software
- Install, Patch and create a supported Oracle Database Edition
- Install Java
- Install Fusion Middleware Infrastructure
- Install Oracle SOA Suite
- Configure the SOA Suite Domain
- Start the environment
This creates a standard topology as can be seen below:
Standard Topology, source: https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.4/insoa/product-installation.html#GUID-4A150924-9210-4788-8DE1-54D14520980E
Since we do not have to perform those steps with the approach shown here I do not cover this it in more detail here.
Intro to Docker
Docker is a powerful tool for running applications inside containers. Docker packages all the dependencies and code needed to run an app into a single file. Unlike virtual machines, which run separate operating systems, Docker containers use the same host OS and virtualize at a software level. This lightweight approach makes it easy to manage dependencies.
The benefits of this are:
- Version Control: Docker simplifies version tracking for different builds of your container.
- Consistent Environments: Your development, production, and others’ environments match, avoiding the “it’s broken on my machine” issue.
- Typically, when hosting services using Docker you package separate components (e.g., web server, API server) into individual containers.
In a nutshell, Docker streamlines app deployment, scaling, and consistency across environments. Let's see how this can help in an Oracle SOA Suite operation context.
Running Oracle Database and Middleware in Containers
First of all, as can be read in "Support Information for Oracle WebLogic Server and Oracle Fusion Middleware Running in Docker Containers (Doc ID 2017945.1)" "Oracle has certified the use of Oracle WebLogic Server, Oracle Coherence, and Oracle Fusion Middleware products running in Docker containers. For details on all the specific certified configurations, please consult Oracle certification information provided at: https://www.oracle.com/technetwork/middleware/ias/oracleas-supported-virtualization-089265.html".
Unfortunately, the MOS note and the certification documentation are a bit unclear regarding certification to me: it is not 100% clear if advanced Fusion Middleware components - such as SOA Suite 12.2.1.4 are certified for production usage.
At least "SOA Suite Certifications on Kubernetes (Doc ID 2734437.1)" states, that "Oracle has certified the deployment of SOA Suite 12.2.1.4.0 domains running on Kubernetes". And so far I've not run into any issues regarding running SOA Suite in "just" a docker container.
For the database, some information can be found in "Oracle Support for Database Running on Docker (Doc ID 2216342.1)".
Oracle has published Docker files for many of their products, especially the database and Fusion Middleware on GitHub over there: https://github.com/oracle/docker-images
The great thing is that you don't have to build those containers manually. You can even use prebuilt, and quarterly updated, containers here: https://container-registry.oracle.com/
Summary
As this introduction blog post shows, installing SOA Suite is a multi-step-journey. Simplifying this seems necessary and - according to the certification documents - feasible. Let's have look into this in the next post.