Thursday, August 17, 2017

DevOps Strategy for Oracle Fusion Middleware

Let me share the main points of a successful DevOps strategy for that large monolith as the Oracle Fusion Middleware platform.

I see the following principles for the DevOps strategy:

1. The reference configuration must be specified and stabilized. The DevOps world offers a number of Infrastructure as Code instruments such as Ansible, Chef, Puppet, Terraform, etc. Some utilities call themselves as "Orchestrators" but in any case, any environment should be created over the reference configuration only. Also, the reference configuration must be covered by tests. The tests must ensure the configuration stay in the actual state and has no leaks.

2. There is a negative phenomenon in the world of large middleware - Configuration Drift. The drift may take different forms from not matched set of patches installed on the test and the production environments, till a little bit different configuration of JDBC connection pools or JTA transaction timeouts. It's almost impossible to eliminate the configuration drift at all, but using the right DevOps strategy we can minimize it and take the control.

3. The basic step to controlling configuration drift is to prohibit manual changes to the configuration. Sometimes there may appear urgent changes without which the platform just doesn't work at all, but this changes must be immediately reflected in the reference configuration.

4. In order to bring additional reliability to the infrastructure, a playback mechanism should be introduced. If a change moves the production environment to a broken state, the operational team would have a strong mechanism to return back as quickly as possible. Another way is to check out a stable version of the infrastructure from a source code management tool since the infrastructure is a code itself but for Oracle Fusion Middleware based platforms such as SOA Suite or WebCenter Portal, this process takes excessive periods of time.

5. The next step could be the automatization of diagnostic information gathering and utilities for automation such as Chef, Puppet, Ansible and others can really help us.

Your comments are welcome!

Would you like to give a 'Like'? Please follow me on Twitter!