Page tree
Skip to end of metadata
Go to start of metadata

Quickstart

Run in order https://hub.docker.com/r/jboss/drools-workbench-showcase then https://hub.docker.com/r/jboss/kie-server-showcase/ and use the legacy API21 --link call https://docs.docker.com/engine/reference/commandline/network_connect/

# bring up fully configured drools workbench and kie-server docker instances
docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:latest
docker ps -a
d892b8408ae2        jboss/drools-workbench-showcase:latest   "./start_drools-wb.sh"   7 seconds ago       Up 7 seconds               0.0.0.0:8001->8001/tcp, 0.0.0.0:8080->8080/tcp   drools-workbench
# use admin:admin for http://localhost:8080/business-central/

docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie-wb jboss/kie-server-showcase:latest
docker ps -a
62570b9cd1ef        jboss/kie-server-showcase:latest         "./start_kie-server.…"   18 seconds ago      Up 17 seconds              0.0.0.0:8180->8080/tcp                           kie-server
d892b8408ae2        jboss/drools-workbench-showcase:latest   "./start_drools-wb.sh"   6 minutes ago       Up 6 minutes               0.0.0.0:8001->8001/tcp, 0.0.0.0:8080->8080/tcp   drools-workbench
# use kieserver:kieserver1! for http://localhost:8180/kie-server/services/rest/server/

Endpoints

JBOSS Drools Workbench GUI

Kie Server REST endpoint

Solution

We have at least two paths to bringing up a kie-server container - add the kie-server war to a clean Tomcat or JBoss docker image - or use the built in images on dockerhub around the JBoss JEE server.

The last stable 7.18.0.Final version (March 2019) of the kie-server https://docs.jboss.org/drools/release/7.18.0.Final/drools-docs/html_single/#_ch.kie.server is in use

Kie Server using the JBoss based image in DockerHub

Start with the image in https://hub.docker.com/r/jboss/kie-server

Kie Server on the Tomcat Image


AWS Infrastructure

Essentially we will be using a static CI/CD pipeline consisting of the following hybrid architecture (most services on AWS, some outside like github and an jenkins server).

All the following CI/CD pipeline steps can be done either using AWS Lambda triggers or encoded in an external jenkins job.

A DockerFile and associated configuration artifacts is checked into a git repo (github or CodeCommit).

On commit trigger - the deployment server (Jenkins or CodeBuild) pushes the repo contents to an S3 bucket for use by CodeBuild (this allows swapping out the git repo source)

AWS CodeBuild (same as Jenkins) project builds the docker image and pushes it to a image repository like nexus3, AWS ECR or DockerHub.
https://us-east-1.console.aws.amazon.com/ecr/repositories/obrienlabs/?region=us-east-1

AWS CodeDeploy receives an ECS 

Static Infrastructure - CloudFormation or Console based

Github Docker Source

AWS S3 Bucket for DockerFile source upload


Dynamic Infrastructure - AWS CLI based


AWS API Gateway


On Premises Infrastructure


Embedded Kie / Drools Server

pom.xml

	<properties>
		<jboss.drools.version>7.31.0.Final</jboss.drools.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.kie</groupId>
			<artifactId>kie-api</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.kie</groupId>
			<artifactId>kie-internal</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.kie</groupId>
			<artifactId>kie-dmn-api</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.kie</groupId>
			<artifactId>kie-dmn-feel</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.kie.soup</groupId>
			<artifactId>kie-soup-commons</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.kie.soup</groupId>
			<artifactId>kie-soup-maven-support</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>
		<dependency>
			<groupId>org.drools</groupId>
			<artifactId>drools-cdi</artifactId>
			<version>${jboss.drools.version}</version>
		</dependency>


  • No labels