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
