Giter VIP home page Giter VIP logo

iib-bestpractice-applications-template's Introduction

The IBM Integration Bus Docker Framework - AppLayer (DeveloperTemplate)

This repository includes a docker image framework for IBM Integration Bus according to container best practices.

The Framework exists of two Layers:

  • RuntimeLayer: This repository includes the different Runtime Images that are prepared and are the foundation for the the AppLayer the developer is only concerted with the AppLayer. This images should not change often.
  • AppLayer: This repository include a template for a developer to develop his own immutable image for his applications.

This include the sampleAppname as a template for the developer to develop his own immutable image by doing the following:

  1. Check out this repo and rename sampleAppname your application name. Update also the build path in the docker-compose file to point to your application.
  2. Set the environment variables in the env file and run it in your terminal . ./env. Including:
  • REPO: the domain of your docker repository you want to push to if empty it used docker hub.
  1. update the version number of the appiciation in the docker-compose file e.g. ${REPO}iib-sample-app-with-customconfig:1.0.0
  2. Decide if you need a customeconfig.sh because you need to send other setting when starting IIB, by default it creates an instance with the following config:
  • nodename: MYNODE
  • integrationservername: default
  • two user for the webadminui also to be used when connection from IIB Toolkit to the Integrationnode:
    • admin:
      • can read, write, execute
      • password must be set through the pw.sh with the defintion of IIBADMINPW variable
    • observer:
      • can read only
      • password must be set through the pw.sh with the defintion of IIBOBSERVERPW variable
  1. Decide if you want to switch features on or off by setting environment variables:

    • TRACEMODE: this can be set on or off and en/disables trace nodes.
    • LICENSE: this must be set to accept indicated that you accepted the IBM License Agreement
    • GLOBALCACHE: if set to internal the global cache on IIB is just enabled. If set to external the connection to an external IBM Extreme Scale is configured this requires the following environment variables to be set:
      • GC_USER: username to connect to IBM Extreme Scale
      • GC_PASSWD: password to connect to IBM Extreme Scale
      • GC_CATALOGENDPOINT: catalogendpoint to connect to IBM Extreme Scale
      • GC_GRIDNAME gridname to connect to IBM Extreme Scale
  2. Build the image with a docker-compose build.

  3. Start the container locally with docker-compose up and test the application locally before checking your code into a repository like github or a container repository.

  4. If everything is ok a developer should check his source code into his git repo and his build tool like jenkins should build and test and then do a docker-compose push to the container repository.

  5. Next prepare your stage where you deploy to.

  • Create a stage specific volume/secret under /secret/pw.sh into your container (for the content see the example pw.sh).
  • Create a stage specific volume/configmap under /usr/local/bin/customconfig.sh into your container (for the content see the example customconfig.sh).
  • Create a stage specific volume/configmap under /usr/local/bin/customconfig.sh into your container (for the content see the example customconfig.sh).
  • Create stage specific volumes/configmaps for the properties file for every bar file you want to overwrite something under /iibProperties/ into your container.
    • Properties files are create with the mqisreadbar -b ./path/to/barfile.bar -r > barfile.properties.
  • Mount Keystores into ... COMING SOON. Remember: When changing something, create new image, stage and test it and deploy it, DON'T change a running container.

Development Best Pratices for IIB on a Container Runtime Plattform

  1. Don't use features that require a MQ Queue Manager in direct binding in the same image.
  2. Structure you flow logic that it can scaled independently with CallableFlow into the following parts:
  • CallingFlow: This includes one input node, (a mapping to the structure of the callableFlow, this allows for different input node to call the same flow logic), the CallableFlowInvoke, (a mapping to the response structure if necessary) and the output node.
  • CallableFlow: CallableInput, FlowLogic, CallableOutput.

iib-bestpractice-applications-template's People

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.