OpenEdge Application Dockerization

Posted by Simon de Kraa on 15-Feb-2016 03:28

I found very little information about Docker and OpenEdge. I am wondering if anyone is already using Docker and OpenEdge in a production environment? Do you Docker pugchallenge.org/.../489_whoGloo_Do_You_Docker_201506.pdf Containerization: Leverage Docker, DevOps to Do More www.progress.com/.../containerization-leverage-docker-devops-to-do-more

All Replies

Posted by asthomas on 15-Feb-2016 05:08

Hi Simon,

We have been a lot of work with Docker in the last 1½ years, also with OpenEdge.

We have recently gone live with a customer system using Docker to handle the OpenEdge installation with AppServer, databases, WebClient and more.

The presentation we have given at PUG Challenge covers a lot of the basics and some of the things to look out for.

I am not aware of many others using Docker with OpenEdge yet. PSC have shown some interest in this area, but have not seen anything come out of that yet.

We really think that Docker is very exciting and can see many use cases with both OpenEdge and many other types of environments. Especially node.js environments are very well suited for containerization.

Posted by Jean Richert on 15-Feb-2016 05:38

@Simon, maybe the following will help. I believe this is the presentation Thomas is referring to.

www.pugchallenge.eu/.../Do You Docker Copenhagen 201510.pdf

Cheers.

Posted by Marian Edu on 15-Feb-2016 05:56

Hi Simon,

while we do not have anything running in production just yet we do use Docker a lot with akera.io, our short online demo (http://akera.io/online-demo/) works in a completely `dockerized` environment - one instance for database server, one for akera.io appsrv and a couple of additional ones for web-service module. As Thomas said, for node.js using Docker is very simple... all we have to do is start from repository node.js instance and install our dependencies with npm to have a new image ready and then we can spawn as many instances as needed.

The part that require Progress runtime takes a bit longer to set-up as we have to install Progress from scratch, was thinking is having Progress ready images with progress.cfg removed would be something that we could add to docker repository but licensing in a dockerized environment is not very clear either :(

Good luck.

Posted by Simon de Kraa on 15-Feb-2016 06:06

I have also some node.js applications running in Docker containers. In my case the preparation is also very simple. List some dependencies, inherit from node:latest or whatever and you basically are ready to go.

Yes, it would be nice if we could use predefined OpenEdge images from the Docker hub. You could of course build your own set of images without the progress.cfg and inherit from those. Also not sure about the licensing either.

Posted by Simon de Kraa on 15-Feb-2016 06:07

@Jean

Yes, I think this presentation is similar to the one in the start post. Thanks.

BTW.

Why is my post without linefeeds and when I try to edit is looks okay? On Chrome, IE and Edge...

screencast.com/.../CSsOW00KnLvY

Posted by Brian Bowman on 15-Feb-2016 08:38

If you were to want Docker container pre-built, what OE products and/or configurations would you like to see?
 
Does it make sense for us to provide pre-built containers?
 
<insert standard disclaimer>
 
We are actively looking at Docker to determine the value it would bring and how best we can help you to implement it for a deployment environment.  We have not determined if we will publish containers.  We are trying to understand what you would want in your container if we built them for you.
 
Thanks for your insights!!!
 
Brian
 
Brian L. Bowman
 
Senior Principal Product Manager
Progress Software Corporation
14 Oak Park, Bedford, MA, USA 01730
 
Phone: +1 (603) 801-8259
Email: bowman@progress.com
 
 

Posted by Marian Edu on 15-Feb-2016 08:49

Hi Brian,

we just need the 4gl runtime but you probably know that as we had a talk last year in Copenhagen... I presume 'rdbsm server'/'application server' could also make it as valid candidates.

Even if you choose not to publish those images the question is, publishing one that have required products installed (for one's needs) with the license information (progress.cfg) removed is something that we can do or that will still somehow break the license agreement?

How do you see the license model in a docker environment, does one have to have licenses for each docker image running (I should have asked maybe, can we use the same license installed on host to run multiple docker instances)?

Thanks

Marian

Posted by Brian Bowman on 15-Feb-2016 09:00

Hi Marian –
   Thanks for the response.  I do remember and know what you are looking for.  Hoping to hear from others as well.
 
As for licensing we are still hashing that out.  As of today the licensing as we have it stands.  It is not as clear and easy as we would want but it can work in your environment.  Part of us figuring out Docker is how to deal with the progress.cfg and licensing…
 
Thanks!

Brian
 
Brian L. Bowman
 
Senior Principal Product Manager
Progress Software Corporation
14 Oak Park, Bedford, MA, USA 01730
 
Phone: +1 (603) 801-8259
Email: bowman@progress.com
 
 

Posted by Simon de Kraa on 16-Feb-2016 05:08

Now I think about it is not that simple having a full install on a image on the hub (or is it? see below about the information that you can provide at install time).

So maybe we should start with a Dockerfile, copy the install files and a $DLC/install/response.ini file and actually run proinst -b response.ini. It does not take *that* much time to install OpenEdge. An after that use that image for deployment.

[/home/kraades] grep "^\[" $DLC/install/response.ini

[Configuration Count]

[Product Configuration 1]

[Product Configuration 2]

[Product Configuration 3]

[Product Configuration 4]

[OpenEdge Explorer]

[Previous Settings]

[Type and Destination]

[Server Engine]

[SonicEsbAdapter]

[WebServer]

[Language Default]

[Language Choice]

[International Settings]

[WSA]

[PacificAppServerPortDetails]

[Installed Products]

[Product 62]

[Product 105]

[Product 113]

[Product 244]

[/home/kraades]

Posted by asthomas on 16-Feb-2016 05:23

Hi Simon,

What we have done so far is take a copy of a local install of OpenEdge on linux, tweaked it a little and then added this to a docker build as the base image.

We then have other images built from this for special purposes. So for example, we have

whogloo/openedge116 - as the base image

whogloo/appserver116 - which has been built FROM whogloo/openedge116 with a separate Dockerfile.

This has various things to support AppServer, aia, and more.

One of the challenges with OpenEdge is that there are many components to an OE installation, so it is difficult to build images that follow the general rule of thumb with one container for one process.

You also run into challenges with databases and dynamic ports. If you need shared memory access to your databases, you have to run databases and e.g. AppServer inside the same container, etc. etc.

We have a working setup though where we can easily provision various OpenEdge related container collections with nice things custom  URLs so that you can access the admin server, appserver etc for each of your containers.

Posted by Simon de Kraa on 26-Feb-2016 02:34

Looks pretty powerful.

Getting started developing with Docker and Azure Container Service

channel9.msdn.com/.../915

Posted by marian.edu on 21-Mar-2016 08:20

I'm working on a getting started series for akera.io and the first part(s) are about docker and how we use it with OpenEdge... first part, building OpenEdge images: acorn.ro/.../

This thread is closed