Hi All,

As a part of WSO2 Private PaaS 4.1.0-M1 release, I created a Docker image
for WSO2 ESB 4.8.1. This Docker image can be used with PPaaS and without
PPaaS. The implementation design of the Docker image is as follows:


In this model we are using an init script to be triggered at the boot time.
It will check for an environment variable (START_CMD) to see whether the
container was started by PPaaS or not. If it is started by PPaaS it will
start the Cartridge Agent and continue the standard PPaaS flow. If not it
will invoke the Configurator to configure the ESB and once configured the
server will be started.

*Advantages*

   - A common Configurator module is used in both PPaaS and none PPaaS
   scenarios.
   - Configurator can be used with Docker, VM, Vagrant, etc.
   - This Docker image can be used for creating an ESB cluster on Docker.
   - Clustering configuration parameters can be passed when starting the
   containers.
   - For a production environment a Docker cluster management solution like
   Kubernetes or Docker Swarm need to be used.

*Future Work*

   - In this design clustering configuration is not automated. In the
   future we could implement a cluster discovery mechanism to automatically
   configure the cluster once multiple containers are started.
   - Improve Configurator Template Module to include more configuration
   parameters.


*ESB 4.8.1 Dockerfile:*
https://github.com/wso2/product-private-paas/blob/master/cartridges/docker/wso2esb-4.8.1/Dockerfile
​
*ESB 4.8.1 Configurator Template Module*
https://github.com/wso2/product-private-paas/tree/master/cartridges/templates/wso2esb-4.8.1

*ESB 4.8.1 Configuration Parameters *
Following configuration parameters can be passed via Docker Environment
Variables to be configured in runtime:

CLUSTERING = false
MEMBERSHIP_SCHEME = wka
DOMAIN = wso2.carbon.domain
WKA_MEMBERS = "127.0.0.1:4000"
HTTP_PORT_MAPPING = "80:8280"
HTTPS_PORT_MAPPING = "443:8243"
LOCAL_MEMBER_HOST = 127.0.0.1
LOCAL_MEMBER_PORT = 4100
SUB_DOMAIN = worker
WORKER_HOST_NAME = esb.cloud-test.wso2.com
MGT_HOST_NAME = mgt.esb.cloud-test.wso2.com
PORT_OFFSET = 0
HTTP_PROXY_PORT = 80
HTTPS_PROXY_PORT = 443

Thanks

-- 
*Imesh Gunaratne*
Senior Technical Lead
WSO2 Inc: http://wso2.com
T: +94 11 214 5345 M: +94 77 374 2057
W: http://imesh.gunaratne.org
Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to