HYPERION AT EASE
Oracle Essbase with Docker
What is Docker:
Docker is a tool which put together an application and all its dependencies together in the form of containers. This containerization aspect of Docker ensures that the application works in any environment.Docker is an open – source project that automates the deployment of application inside software container. Docker containers wrap up a piece of software in a complete file system that contains everything it needs to run.
Docker vs VMs with reference to Essbase:
Traditionally we were using VMs, Following are some issues in VMs with compare to Docker.
• Large image size: Essbase VMs tend to have in at 50-70GB, depending on what all is installed.
• Difficulties starting up services: When moving between networks, such as from home to a client network to the coffee shop or wherever, I frequently run into networking issues that are hard to troubleshoot and usually resolved by restarting the entire VM (and hoping for the best).
• Tendency to destabilize over time: Typically, Essbase VMs are used to develop and test ideas and often that means tweaking Sample/Basic or creating a bunch of one-off cubes/scripts.
• Not much in the way of convenience features: Sometimes running MaxL scripts is a chore because the MaxL command isn’t on the system path, and other little one-off things that generally weren’t set or set properly.
Some of these issues can be mitigated by simply creating a snapshot of your virtual machine that you can revert again to. But that doesn’t do anything for our image size issues. On the other hand, Docker offers some very interesting benefits including:
• The Docker Essbase image is defined in terms of a Dockerfile and scripts. A Dockerfile defines a Docker image, which is to say that the Dockerfile and associated scripts essentially define how an Essbase image is built. We can treat the Dockerfile as code, and we can version it.
• We can define multiple versions of Essbase images: For a software company this is quite useful as we’re able to have different images for different patch levels of Essbase and easily switch between them.
• Smaller footprint: the Dockerized Essbase image is much smaller than a traditional VM.It’s important to point out that while there is significant overlap between Docker and traditional VMs, Docker isn’t really meant to be a better VM. In fact, one of the most useful aspects of using Essbase on Docker is that I can and do often throw away my container when I’m done with it and just start up a new one when I need to use it. That said, you can treat it a little like a VM and indeed I have developed some of the related scripts to startup Essbase as gracefully as possible when you resume a stopped (paused) image.
How to get started:
In total, you’ll need Docker installed on your machine, the Essbase installation media, Java installation media, and of course Git and the files in this open source project repository.
How to build the image:
You need to supply the installation media for the 64-bit Linux version of Essbase. Specifically, you should have these files
It is not necessary to extract these files anywhere as they are extracted as needed during the Docker container build itself.
To build this image, first clone this repository:git clone https://github.com/appliedolap/docker-essbase.gitThen put the install ZIP files into the same folder, resulting in a file structure similar as the following:
Open a terminal to this folder. You can then use the restart.sh script to take down existing servers and build a new image, or run these commands yourself:
docker-compose up –build –detach
The “up” command in this case specifies to bring up the images by building them and running in “detached” mode.
The first build may take a while. Once the images are run (i.e. they become running containers), you may then find it useful to monitor the output coming from the Essbase container. You can easily connect to and watch the output by running the provided script to do so:
./follow-essbase-logs.shLastly, you may wish to open a bash shell on the Essbase server itself. A convenience script is provided to do so:./essbash.shThis will open a bash session on the Essbase container running as user oracle.
You can run EAS over JNLP by running the following command:
This assumes that javaws is on your system’s PATH. You may need to add a security exception to Java to get things to run. You should be able to use a local EAS install if that’s your thing.
For more reference please go through the following links:
What is Docker and Installation :
More details about the above project :https://www.jasonwjones.com/2019/03/oracle-essbase-on-docker-what-how-why/