The MintPress Suite allows our customers to manage and provision complex Oracle software stacks in their computing environments, whether on-site or in the cloud. The Oracle product suite is very broad, powerful, and customisable, but it can also be awkward to automate – which is where the MintPress Suite comes in.
During our release process in late 2019 we decided we wanted to increase our focus on the quality of our releases. Part of our plan for doing that was to increase the depth and breadth of our automated testing. With a key focus on depth as it was an area of concern we’d identified. Some of the depth we wanted to focus on was to add lower level validations in our test reporting framework – our existing test setup did much higher level validation. To facilitate we built libraries for Chef InSpec for testing and validating WebLogic and other Oracle products. While some of the breadth we wanted to focus on involved the different deployment topologies for the Oracle products we support (for example a single node SOA deployment vs a multi node SOA deployment).
To practically facilitate testing this broad set of permutations and products we setup a Docker based testing infrastructure. This allows us to run more tests, with more permutations, in less time, and requiring less hardware (and hence at a lower cost) than our existing VM and cloud-based testing setup.
We perform our testing on top of the bare Oracle Linux Docker images provided by Oracle, which provides a great test platform as our main target platform is Oracle Linux, and also gives some confidence around the broader Enterprise Linux space. For our Oracle Fusion Middleware tests we also use an Oracle 12C Database image built from the build scripts very helpfully maintained by Oracle, whilst for our own Oracle Database automation testing we are able to use bare Oracle Linux containers. This is great for us because it allows us to test broader interoperability of our controllers and configurations by testing it against the Oracle maintained images as well as our own customisations with our Controller’s database provisioning functionality. We now have a suite of Docker Compose files for our different topologies allowing simple reuse, and then are running the tests from some Ruby scripts we maintain internally. These scripts allow us to run our main testing script but then extrapolate it out to test against our different deployment topologies.
We still test against our supported VM and cloud platforms to ensure the functionality of our full stack of course, but using Docker to allow us to perform more tests in more ways more quickly has been a great win for us. We don’t only support Oracle software, and as such our Docker testing platform isn’t only used for our Oracle controllers. We’re also working on rolling it out to test more of our Controllers, including our new Controllers and also some of our controllers that were created before this testing setup.