8 Replies Latest reply on Nov 18, 2016 2:04 AM by Mirko Swillus

    Jive in Docker Containers

    Mirko Swillus

      Dear all,

       

      where do I start when I want to dockerize a custom Jive application? The container should contain a complete Jive environment that is needed for development and test purposes, and I like to build this Docker container with our Jenkins instance and push it afterwards to our local docker registry.

       

      The build pipeline could look like this:

      1. Build Jive Maven project (WebOverlay, Plug-Ins)
      2. Build Docker container that includes
        1. Jive WebApp
        2. Jive EAE
        3. Jive Search
        4. Jive DocConv
        5. Postgres DB
        6. Jive httpd
      3. Let the custom WebOverlay and Plug-Ins be deployed to the WebApp (maybe via steps in dockerfile?)
      4. Configure the Jive Environment (maybe via puppet, ansible or shell scripts)
        1. Initialize EAE Database (workaround Jive EAE initializer Bug)
        2. Configure Search and DocConv
        3. Configure custom and release specific system properties (maybe via a release specific data volume, that is mounted to that container)
        4. Create some standard test users with different roles
        5. ...
      5. ...
      6. Push that specific container to a local docker registry for further consumption (like deploying the docker container to a docker host that acts as a test instance).

       

      Currently, I'm not sure if it would be a better approach to dockerize each Jive service, so that every service runs in its own container. So this setup would be even production ready...

       

      Has anyone setup such a pipeline, or some other integrations of Jive into the Docker universe? Would be great to hear your stories and learn from your pitfalls. Thanks in advance,

       

      Mirko

        • Re: Jive in Docker Containers
          Ryan Rutan

          Chris Jones do you know if we have anything available in this area yet?  To my knowledge we dont, but thought you might know.

           

          FYI: Rashed Talukder Yuval Twig

          • Re: Jive in Docker Containers

            Are you talking about the Jive on prem/hosted version (Jive 8/9)? Or are you talking about cloud?

             

            If cloud - while we are finishing the work of having the Core WebApp be runnable on docker containers, we are also working on changing our cloud implementation to be a full cloud architecture. That means, in order to run and have a Jive Community (N or X) - you will need a full cloud environment with all the dozens of depending services. It won't be something you can run as a single docker containers because it will be numerus services that are depending on each other and on different cloud resources.

             

            If on prem/hosted - the Jive 8/9 Core WebApp is not written today in a way it can be run in a docker container. This will not be an easy task to transition the app to be runnable in that way.

             

            I would be very interested in understanding why do you have this demand. What is the benefit of being able to run this in a container.

            We can setup a meeting and discuss this if you wish.

              • Re: Jive in Docker Containers
                Mirko Swillus

                Hi Lev,

                 

                thanks for your interest, I'm happy to add some context here. Currently we're running some Jive instances on different environments for different customers, so I'm talking about on premises. Every setup has to be done on at least three environments (dev, uat, prod), this is time consuming and error prone. So I thought about not building just a custom Jive Weboverlay with some plugins for those instances, but rather go for a docker container (which is running the Jive WebApp with the custom war and the deployed plugins), and some other containers that are running the different services (like EAE, Search, DocConv and even Database). I'd like to have those docker containers build by a Jenkins build pipeline and configured with either docker files or some extended techniques like puppet or ansible.

                 

                Furthermore, my favorite cloud provider (which is the Open Stack based Open Telekom Cloud, see Jive @ Open Telekom Cloud.pdf) is now offering the possibility to deploy and run Docker Containers directly (without having to maintain an additional Linux VM as a docker host). In addition, I like the DevOps approach very much, and I think building and running containers would be a very good step in that sense (DevOps is about automating, and some steps regarding a Jive setup are hardly to automate with reproducible results, when not using containers).

                 

                Hope this makes sense so far. What I learned for now is that I have to dockerize our Jive setups myself, which is not an easy task, I definitely agree with you. But surely worth the effort Best regards,

                Mirko

              • Re: Jive in Docker Containers
                a12rodriguez

                Hi Mirko, I was curious if you had made any headway with this.  We are in the process of upgrading and were interested in dockerizing the installation as well.