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:
• Foundation-11124-linux64-Part1.zip
• Foundation-11124-linux64-Part2.zip
• Foundation-11124-linux64-Part4.zip
• Foundation-11124-Part3.zip
• Essbase-11124-linux64.zip
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.git
Then
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 down
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.sh
Lastly,
you may wish to open a bash shell on the Essbase server itself. A convenience
script is provided to do so:
./essbash.sh
This will open a bash session on the Essbase container running
as user oracle.
Quick
Links
- Workspace: http://localhost:9000/workspace/
- EAS: http://localhost:9000/easconsole/
You
can run EAS over JNLP by running the following command:
javaws
http://localhost:9000/easconsole/easconsole.jnlp
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 :
Quick
Links
I really impressed after read this because of some quality work and informative thoughts.
ReplyDeleteERP Software Companies