I’ve been working on RedPrairie/JDA WMS for a couple of years now and the whole concept of containerizing an Application Server to a container sounds fascinating to allow developers to have an entire instance for a single user for independent development or testing.
Why containers?
Well, the only other option a developer or a technical user has, is to log in to an existing environment or create a new one. To set up a new environment, a person has to go through the process of setting up a database server first, followed by an application Server, involving complex installation steps and then finally be able to use the Application.
All of this has some cost associated with it including the time it takes to set up a new instance. Of course, developers could always connect to an existing instance, but most of the time an instance is not unique to a user, in fact on an average there are anywhere to 5–20 people using the same instance, be it a lower instance like a development instance or a unit test instance. RedPrairie/JDA WMS Application is a Data Drive Application (DDA), your changes can affect another person’s development and/or testing efforts. Don’t even get me started on reverting your changes or the time it takes to create data sets according to your requirements.
Containers though do not have a GUI, but the container’s IP address is exposed to the host system or container’s ports can be exposed to a host system — which can either by a Physical/Virtual Server or your Laptop. A user can log in via JDA SCE Client, Oracular MOCA Client or LextEdit from the host to the container. To keep things simple, I’m running two containers, one with JDA 2019 and the other with SQL Server 2016. Of course, there are some issues with containers at the moment, like it fetching a random IP on start unless you create and specify a subnet. However, I have created several batch and PowerShell scripts in place that allows a developer to automate certain tasks like stopping/starting instances and/or fix IP Address before starting MOCA Server or Portal Server to correct registry or rpweb.xml.
The real benefit of Docker Container’s with JDA WMS is that existing instances can be containerized and uploaded to your private repository or AWS cloud. Developers can download it from the cloud to the organization’s provided VM or Laptop for development/testing. With the advancement of 5G network and low cost of disk space — containers are becoming the future in IT Applications to build and deploy code and even automate test cases in some scenarios. The advantage — all of this can be accomplished in minutes! You want to revert your data? Delete the container and recreate a new one from the image you downloaded and you’re all set!