Skip to content
This repository has been archived by the owner on Feb 15, 2022. It is now read-only.

Latest commit

 

History

History
160 lines (95 loc) · 8.07 KB

README.md

File metadata and controls

160 lines (95 loc) · 8.07 KB

Update: June 2018 moved to Gitlab.

Logo

Destinasia Travel Rules Demo

Ready to get hands-on with AppDev in the Cloud with container based services?

Experience the wonders of Red Hat's open technologies for cloud-based container application development by integrating multiple services in to a polyglot cloud solution. In this project you're a developer working for Destinaisa, a travel agency that needs to setup its online bookings applications backend services. Using the OpenShift Container Platform for deploying this solution, start by installing JBoss BRMS to work on the Destinasia travel discount rules. Once deployed, you leverage Ansible playbooks to see infrastructure automation in action. Each playbook deploys a new container-based service to support flight, hotel, car and discount rule queries from your application. In total this integration projects running 6 container-based applications or services and final testing is done with a REST client. Validation is sending a booking message to the integration end-point and verifying the discounts provided by the integrated services.

Need hands-on, step-by-step instructions? Experience the free online workshop.

This demo is also available on the Red Hat Product Demo System for partners with access and found in 'Catalog' -> 'AppDev in the Cloud' -> 'Agile Cloud Integration with Destinasia'.

Step 1: Install OpenShift Container Platform

This demo is to install JBoss BRMS with Destinasia Travel discount rules in the Cloud based on leveraging any Red Hat OpenShift container based platform, such as:

This delivers a fully configured container platform with all the available product streams and templates.

Another option is:

This requires adding .NET core stream manually, a task outside the scope of this project.

Step 2: Install JBoss BRMS on OpenShift

  1. (OPTIONAL if you did step 1) First ensure you have an OpenShift container based installation, such as one of the following installed first:
  1. Download and unzip this demo.

  2. Download JBoss EAP & JBoss BRMS, add to installs directory (see installs/README).

  3. Run 'init.sh' or 'init.bat' file. 'init.bat' must be run with Administrative privileges:

   # The installation needs to be pointed to a running version
   # of OpenShift, so pass an IP address such as:
   #
   $ ./init.sh 192.168.99.100  # example for OCP.

Now log in to JBoss BRMS and start developing containerized rules projects (the address will be generated by the init script):

Step 3: Ansible Playbooks for Automated Service Deployment on OpenShift

Click on link to instructions for Ansible Playbooks Service Deployment to deploy:

  1. Rules from container JBoss BRMS to xPaaS Decision Server

  2. .Net service to container

  3. Java service to xPaaS EAP Server

  4. PHP service to container

  5. Fuse service to xPaaS Integration Server

Notes

Should your local network DNS not handle the resolution of the above address, giving you page not found errors, you can apply the following to your local hosts file:

$ sudo vi /etc/hosts

# add host for OCP demo resulution
192.168.99.100   destinasia-rules-demo-appdev-in-cloud.192.168.99.100.nip.io 

This project can be installed on any OpenShift platform, such as the OpenShift Container Platform. It's possible to install it on any available installation by pointing this installer to an OpenShift IP address:

  $ ./init.sh IP

The rule test you find in the project is BROKEN... guess what, you need to fix that! Hint for the fix is that the flights are all Asian destinations, but the test uses an unknown destination for the rules. Can you fix it?


To clone a repository in the running container, the following actions would need to occur from a developer's machine.

  1. Execute port forwarding through the OpenShift CLI. This will open a tunnel between the developer's machine and the pod through the OpenShift API pod proxy. The command window will block while the session is open:

    # Read-write access to repo on port 8001.
    #
    $ oc port-forward $(oc get pod -l=deploymentconfig=destinasia-rules-demo --template='{{ range .items }} {{ .metadata.name }} {{ end }}') 9418:9418
    
  2. Clone the repository. In another window, clone the remote repository:

    # Read access to repo on port 9418.
    #
    $ git clone git://localhost:9418/destinasia 
    

Supporting Articles

Released versions

See the tagged releases for the following versions of the product:

  • v1.5 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel solution updated for on any given OpenShift Container Platform 3.9 and available on CDK with Minishift.

  • v1.4 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel discount rules running on any given OpenShift installation, Ansible playbooks for automation of service deployments (PHP, Java, Rules, .Net, Fuse) and available on CDK with Minishift.

  • v1.3 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel discount rules running on any given OpenShift installation, Ansible playbooks for automation of service deployments (PHP, Java, Rules, .Net, Fuse) and available on RHPDS.

  • v1.2 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel discount rules running on any given OpenShift installation and Ansible playbooks for automation of service deployments (PHP, Java, Rules, .Net, Fuse).

  • v1.1 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel discount rules running on any given OpenShift installation and port forwarding for git repo access configured.

  • v1.0 - JBoss BRMS 6.4.0, JBoss EAP 7.0.0 with Destinasia Travel discount rules running on any given OpenShift installation.

Pods

Rules

Deployments

RHPDS

Cloud Suite