Page 1 of 26
TIBCO Cloud Integration – BusinessWorks on the
AWS Cloud
Demo and Walkthrough September 2019
TIBCO Software
AWS Quick Start Team
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 2 of 26
What you’ll accomplish: In this demo, we will deploy multiple
microservices on to an Amazon Elastic Container Service (Amazon ECS)
cluster. These containerized deployments include: Consul, Open-Tracing, an
account service application, and a customer service application.
Estimated time: 25–30 minutes for deployment, 10 minutes for
walkthrough.
Cost: You are responsible for the cost of the AWS services used while running
this demo. There is no additional cost for using the demo.
Experience with AWS: Beginner
Experience with TCI-BW: Beginner
Prerequisites: An AWS account (sign up at https://aws.amazon.com), a
key pair
Contents
Overview ................................................................................................................................. 4
Demo components and flow .................................................................................................. 4
Technical specifications ......................................................................................................... 6
Deploy the demo .................................................................................................................... 7
Explore TIBCO Cloud Integration – BusinessWorks on AWS ..............................................8
View AWS CloudFormation output ...................................................................................8
Test existing service deployments ...................................................................................... 9
Access TIBCO Cloud Integration – BusinessWorks Studio .............................................. 9
Build an account service application ............................................................................... 10
Creating the account service ............................................................................................ 14
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 3 of 26
Build a customer service application ............................................................................... 19
Creating the customer service .......................................................................................... 22
Delete the demo ................................................................................................................... 24
Next steps ............................................................................................................................. 25
Additional resources ............................................................................................................ 25
Document revisions ............................................................................................................. 25
This demo was created by TIBCO Software in collaboration with solutions architects at
Amazon Web Services (AWS) for evaluation or proof-of-concept (POC) purposes on the
AWS Cloud.
The demo automatically deploys TIBCO Cloud Integration – BusinessWorks (TCI-BW) into
your AWS account. After you’re up and running, you can use the walkthrough in the
following pages for a guided tour of the product.
Quick Start option This demo sets up an evaluation environment. For
production-ready deployments, use the TIBCO Cloud Integration – BusinessWorks
Quick Start.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 4 of 26
Overview
TIBCO Cloud Integration – BusinessWorks is an integration product suite that enables you
to create services and applications in a visual, model-driven development environment. For
more information, see the TIBCO documentation.
Demo components and flow
This demo builds a TIBCO Cloud Integration - BusinessWorks environment that includes
these components:
A highly available architecture that spans two Availability Zones.
A virtual private cloud (VPC) configured with public and private subnets according to
AWS best practices, to provide you with your own virtual network on AWS.
An Application Load Balancer.
In the public subnets:
– Managed network address translation (NAT) gateways to allow outbound
internet access for resources in the private subnets.
– In the public subnets, two Amazon Relational Database Service (Amazon RDS)
instances, one for each of the TCI-BW services (account and customer).
– In one of the public subnets, your TCI-BW Studio instance (TCI-BW design
time).
In the private subnets, your Amazon ECS host instances in an Auto Scaling group. These
instances manage and host your Amazon ECS applications.
Multiple applications deployed on Amazon ECS, including Consul and Open-Tracing.
An Amazon Elastic Container Registry (Amazon ECR) repository that contains a TIBCO
Cloud Integration – BusinessWorks image with a data conversion plug-in installed.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 5 of 26
Figure 1: Demo architecture for TIBCO Cloud Integration – BusinessWorks on AWS
Figure 2 illustrates the process flow and features you’ll explore with this walkthrough.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 6 of 26
Figure 2: Process flow for TIBCO Cloud Integration - BusinessWorks on AWS
Technical specifications
The demo provisions and configures the following resources.
Resource Details
Availability Zones 2
NAT Gateways 2
TCI-BW Studio 1 m4.large instance
ECS hosts 2 t2.medium instances
Storage 30 GiB per EC2 instance;
10 GiB per RDS instance
RDS 2 db.t2.micro instances
Application Load Balancer 1
ECS clusters 1
ECR repositories 1
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 7 of 26
Deploy the demo
Note These instructions reflect the older version of the AWS CloudFormation
console. If you’re using the redesigned console, some of the user interface elements
might be different.
1. Create an AWS account, or sign into your existing account.
If you don’t already have an AWS account, create one at https://aws.amazon.com by
following the on-screen instructions.
Note For the demo, you will need to re-use an existing key pair or create a new key
pair by following the instructions here.
2. Sign up to launch the demo.
After you answer a few questions and submit the form, the
CloudFormation console will launch.
Note If you want to customize the configuration, please deploy the Quick Start
instead.
3. In the console, provide values for the following parameters:
Parameter label
(name) Description
Availability Zones
(AvailabilityZones)
The list of Availability Zones to use for the subnets in the VPC. The Quick Start uses two
Availability Zones from your list and preserves the logical order you specify
Admin ingress
location
(AdminIngressLocation)
The CIDR block (IP address range) to allow Secure Shell (SSH) and virtual network
computing (VNC) access to your TCI-BW Studio instance, in the format x.x.x.x./x.
We recommend that you set this value to a trusted IP range. Note that 0.0.0.0/0 will
allow access from all locations and should be used cautiously. You can always manually
change this later if needed.
Key pair name
(KeyName)
Use the key pair that you created when you set up your AWS account. You must provide
the key pair to connect by using SSH to the EC2 instances.
Studio password
(StudioPassword)
The password for accessing TCI-BW Studio via VNC. The password must be a 1-8
character string.
RDS password
(DBPassword)
The password for the account and customer RDS instances.
4. On the Options page, choose Next.
Sign up to launch the demo
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 8 of 26
5. On the Review page, under Capabilities, select the two check boxes to acknowledge
that the template will create IAM resources and might require the capability to auto-
expand macros.
6. Choose Create to deploy the demo.
7. Your stack appears in the list of AWS CloudFormation stacks, with a status of
CREATE_IN_PROGRESS. When the status is CREATE_COMPLETE, the demo is
ready to use.
8. Follow the step-by-step instructions in the next section to explore the features of the
demo.
Explore TIBCO Cloud Integration – BusinessWorks on AWS
Time to complete: About 10 minutes
Steps
View AWS CloudFormation output
Test existing service deployments
Access TIBCO Cloud Integration – BusinessWorks Studio
Build an account service application
Build a customer service application
View AWS CloudFormation output
After the deployment is complete, review the information that is listed on the AWS
CloudFormation Outputs tab of the main demo stack. The Outputs tab lists several values
that will be used throughout the demo.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 9 of 26
Figure 3: Demo stack output
Test existing service deployments
1. On your Amazon ECS homepage, you can see that your cluster has two services
deployed. One is for Consul, and the other is for Open-Tracing.
2. To access these services, in your preferred browser, open the OpenTracingUrl and
ConsulServiceUrl links as shown in the AWS CloudFormation output.
3. Verify that you are able to access the links in a browser, and then move on to the next
step.
Access TIBCO Cloud Integration – BusinessWorks Studio
1. On your local device, set up an SSH tunnel into the Studio instance with port
forwarding. You can find the Studio instance IP address (StudioEC2Instance) on the
Output tab.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 10 of 26
ssh -i </path/to/ec2/key-pair.pem> -L 5905:localhost:5905 ec2-user@<StudioEC2Instance>
2. Start your favorite VNC viewer. The TCI-BW Studio instance uses VNC to provide a
graphical user interface (GUI) for TIBCO Cloud Integration – BusinessWorks design
time.
The VNC server is running on port 5905, and you can access it on your local host by
using the local port that you selected for port forwarding. In the previous example, the
port selected for port forwarding is localhost::5905.
3. In the authentication prompt, use the password that you set for the StudioPassword
parameter during the AWS CloudFormation deployment. For more information, check
out the full TCI-BW Quick Start guide documentation.
4. If the resolution during startup is poor, choose Settings, choose Displays, and change
the resolution. By default, the resolution is set to 1024 x 768 (4:3).
5. Open TIBCO Cloud Integration – BusinessWorks by using either the terminal or the
GUI, from /home/ec2-user/bwce/bwce-
studio/studio/4.0/eclipse/TIBCOBusinessStudio. You are prompted to enter a
workspace. This can be any directory, but we suggest you use the default value.
Note Starting TCI-BW for the first time may take a few minutes. If you get an
error message that prompts you to Force Quit or Wait, choose Wait. TCI-BW
Studio should start shortly after that. You can ignore any other messages.
You now know that TCI-BW Studio works and will load properly.
Build an account service application
We’ve added project files to a GitHub repository, so we won’t need to build this entire
service from scratch. We just need to configure a few things.
1. Pull the project files from the GitHub repository.
git clone https://github.com/crmadrig/tci-bw-quickstart-demo.git
2. To import this project into your studio, open the context menu by right-clicking the
Project Explorer workspace, choose Import, and then choose Existing Studio
Projects into Workspace. Select the location of your project files (either zipped up or
within the folders).
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 11 of 26
After the import process finishes, you should see the following files:
Figure 4: Account service project imported in TIBCO Cloud Integration - BusinessWorks
Studio
3. Now generate the Enterprise Archive (EAR) file for this project. Open the context (right-
click) menu for AccountService, and choose Create Enterprise Archive (EAR). In
the window that pops up, enter the location where you want to save the EAR file, select
Use Default EAR file name, and choose Finish.
Figure 4: Generating a EAR archive for account service
4. Using your favorite text editor, open the account-service-dockerfile file that was pulled
from the repository. Change the FROM variable by substituting the placeholders
<AWS_ACCOUNT_ID>, <AWS_REGION>, and <ECR_REPO_NAME> with the respective values listed
in the AWS CloudFormation output. For the ADD value, use the name that you entered in
step 3.
Figure 5: Editing the account-service-dockerfile
5. Perform ECR docker login authentication.
aws ecr get-login --no-include-email > docker-login.txt sudo $(cat docker-login.txt)
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 12 of 26
6. Build the Docker image like any other image.
sudo docker build -f account-service-dockerfile -t <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPO_NAME>:account-service .
7. Run docker images within your terminal to see the newly created Docker image, and
then push this image to your Amazon ECR repository.
sudo docker push <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPO_NAME>
When the push has completed, you should see the image on your Amazon ECR page.
Figure 6: ECR images listing
8. The files that you downloaded from the Git repository include the account-
service.json task definition file, which will be the skeleton of this project. You need to
make only a few changes to it.
Within the task definition, change the placeholders:
– <LOAD_BALANCER_DNS>: Use the LoadBalancerDNS value from the output.
– <AWS_ACCOUNT_ID>: Use the AWSAccountId value from the output.
– <AWS_REGION>: Use the DeployRegion value from the output.
– <ECR_REPO_NAME>: Use the EcrRepository value from the output.
– <JAEGER_HOST_PRIVATE_IP>: This placeholder needs to be substituted in two
properties, JAEGER_AGENT_HOST and JAEGER_SAMPLER_MANAGER_HOST_PORT, with
the private IP address of your Jaeger service. To find the private IP address,
navigate to EC2 service in the AWS Management Console. In the left pane, under
LOAD BALANCING, choose the Target Groups section,choose the Jaeger
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 13 of 26
target group, and choose the Targets tab to view the registered EC2 instance
target.
Figure 7: Locating the Jaeger service target instance
9. Choose the link under Instance ID to jump to the Instance section, and then choose
the private IP address of the instance.
Figure 8: Private IP address of the Jaeger service target instance
10. Now it’s time to register the task definition. Open your terminal and run the following
command, changing the file path to the location that the .json file was downloaded to.
aws ecs register-task-definition --cli-input-json file://</path/to>/account-service.json
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 14 of 26
11. Before you deploy your app, you need to add the proper configuration within Consul so
that your application can reach the database where it needs to store its backend
information. In a browser, open your Consul service by using the ConsuleServiceUrl
that is listed in the AWS CloudFormation output. Navigate to the Key/Value section,
and enter the configure values we need. The proper format is
<Name_of_service>/<Config_Profile>/<Variable>; for example,
AccountService/Docker/DB_URL.
12. Enter key/value pairs for the three variables within the project (DB_URL, DB_PASS, and
DB_USER). For DB_URL, use the AccountDBUrl value in the AWS CloudFormation output.
Figure 9: Adding AccountService/Docker/DB_URL key
Similarly, add two more key/value pairs for DB_USER and DB_PASS. Set DB_USER to
tibco. For DB_PASS, use the parameter value that you entered during the AWS
CloudFormation setup.
Figure 10: Verifying three keys for AccountService
Creating the account service
Now you are ready to create the service. The Amazon ECS console should list your cluster,
with your Consul and Open-Tracing services deployed.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 15 of 26
1. On the Step 1: Configure service screen, set Task Definition to be the account
service you uploaded, set Service name to account-service, and set Number of
tasks to 1. Don’t change anything else. Choose Next.
Figure 11: Creating a new Amazon ECS service
2. On the Step 2: Configure network screen, change Load balancer type to
Application Load Balancer. A service role and the default load balancer will be
selected. If you created a new VPC for this deployment, you won’t have to change
anything. Next, under Container to load balance, set the Production listener
port to 8080, and set the target group name to the default group. This should
automatically populate the rest of the values. Clear the check box for service discovery,
and choose Next Step.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 16 of 26
Figure 12: Configuring the account service
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 17 of 26
3. In the next step, leave the default option Do not adjust the service’s desired count, and
choose Next Step to open the Review page.
4. Choose Create Service.
Figure 13: Create account service
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 18 of 26
5. After the service is deployed, choose View Service, and confirm that the status of the
service is RUNNING.
Figure 14: Check account service status
6. In a browser, open <LoadBalancerDNS>:8080/swagger. The swagger UI pops up. Enter
16796 as the id value. If the response includes the AccountType and Amount, your app
was deployed correctly!
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 19 of 26
Figure 15: Testing the account service.
In this section, you took a TCI-BW account service project, generated the EAR file, created a
Docker image with your newly created EAR file, and then pushed and deployed that service
to ECS. This service is connected to Consul (for service discovery and key/value pairs) and
Open-Tracing.
Next, you can deploy the customer service to get the full process working.
Build a customer service application
Again, you don’t need to build this entire service from scratch. Instead, you just need to
configure a few things.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 20 of 26
Because this process is similar to the steps for building the account service application,
some of the instructions will look familiar, and screenshots have been skipped for brevity.
1. To import the customer service project to your studio, right-click the Project Explorer
workspace, choose Import,and then choose Existing Studio Projects into
Workspace. Select the location of your project files (either zipped up or within the
folders).
2. To generate the EAR file for the customer service project, open the context (right-click)
menu for CustomerService, and choose Create Enterprise Archive (EAR). In the
window that pops up, enter the location where you want to save the EAR file, select Use
Default EAR file name, and choose Finish.
3. Using your favorite text editor, open the customer-service-dockerfile file that was pulled
from the repository. Change the FROM variable by substituting the placeholders
<AWS_ACCOUNT_ID>, <AWS_REGION>, and <ECR_REPO_NAME> with the respective values listed
in the AWS CloudFormation output. For the ADD value, use the name that you entered in
step 2.
4. Build the Docker image like any other image.
sudo docker build -f customer-service-dockerfile -t <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPO_NAME>:customer-service .
5. Run docker images within your terminal to see the newly created Docker image, and
then push this image to your Amazon ECR repository.
sudo docker push <AWS_ACCOUNT_ID>.dkr.ecr.<AWS_REGION>.amazonaws.com/<ECR_REPO_NAME>
When the push has completed, you should see the image on your Amazon ECR page.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 21 of 26
Figure 16: ECR images listing
6. Edit the customer-service.json task definition file by changing the placeholders:
– <LOAD_BALANCER_DNS>: Use the LoadBalancerDNS value from the output.
– <AWS_ACCOUNT_ID>: Use the AWSAccountId value from the output.
– <AWS_REGION>: Use the DeployRegion value from the output.
– <ECR_REPO_NAME>: Use the EcrRepository value from the output.
– <JAEGER_HOST_PRIVATE_IP>: This needs to be substituted in two properties;
JAEGER_AGENT_HOST and JAEGER_SAMPLER_MANAGER_HOST_PORT, with the private IP
address of your Jaeger service. Use the same value that you used for Build an
account service application, step 8.
7. Now register your task definition. Open your terminal and run the following command,
changing the file path to the location that the .json file was downloaded to.
aws ecs register-task-definition --cli-input-json file://</path/to>/customer-service.json
8. Before you deploy your app, you need to add the proper configuration within Consul so
that your application can reach the database where it needs to store its backend
information. In a browser, open your Consul service by using the ConsuleServiceUrl
that is listed in the AWS CloudFormation output, navigate to the Key/Value section,
and enter the following key/value pairs:
Key Value
CustomerService/Docker/DB_URL Output of CustomerDBUrl
CustomerService/Docker/DB_USER tibco
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 22 of 26
Key Value
CustomerService/Docker/DB_PASS DB password chosen as input
CustomerService/Docker/CLIENT_SERVICE Private IP of account-service. See step 9 in Build an
account service for details on how to find this value.
Creating the customer service
Now you are ready to create the service. On the ECS console, you should see your cluster
listed with your three deployed services (Consul, Open-Tracing, and account-service).
1. On the Step 1: Configure service screen, set Task Definition to be the customer
service you uploaded, set Service name to customer-service, and set Number of
tasks to1. Don’t change anything else. Choose Next.
2. On the Step 2: Configure network screen, change Load balancer type to
Application Load Balancer. A service role and the default load balancer will be
selected. Next, choose Add to load balancer, and select the customer target group for
Target group name. This should automatically populate the rest of the values. Clear
the check box for service discovery, and choose Next Step.
3. Leave the default option in the Set Auto Scaling section, choose Next Step, and then
choose Create Service.
4. After the service is deployed, verify that it is in RUNNING status.
5. In a browser, open <LoadBalancerDNS>:8081/swagger. The swagger UI pops up. There
will be two APIs: One connects to the customer database while the other one uses
Consul to gather information from the account service application and display it. Enter 1
as the ID value for both APIs. The first one should return the name, email, and
account_id while the second one returns the corresponding account details.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 23 of 26
Figure 20: Testing the Customer API
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 24 of 26
Figure 21: Testing the CustomerAccountDetails API
In this section, we built our customer service and used it to interact with our Consul, Open-
Tracing, and account service deployments.
Delete the demo
The demo provisions a collection of AWS resources in your AWS account. When you
complete your pilot or POC, you can delete these resources by deleting the demo stack.
To delete the demo
1. Open the AWS CloudFormation console at
https://console.aws.amazon.com/cloudformation/.
You will see a list of the currently running stacks in your account.
2. Select the stack named TIBCO-TCI-BW-Demo.
3. Choose Actions, and then choose Delete Stack.
4. When prompted, choose Yes, Delete.
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 25 of 26
Next steps
If you made it this far, congratulations! You were able to take several services built in TCI-
BW and deploy them within your ECS cluster. As next steps, you can continue to play
around with the studio (maybe build services on your own).
Additional resources
Amazon EC2
Amazon RDS
Amazon ECR
Amazon ECS
Amazon VPC
AWS CloudFormation
AWS Quick Starts
Document revisions
Date Change In sections
September 2019 Initial publication —
Amazon Web Services – Demo: TIBCO Cloud Integration – BusinessWorks on the AWS Cloud Sept. 2019
Page 26 of 26
© 2019, Amazon Web Services, Inc. or its affiliates, and TIBCO Software. All rights
reserved.
Notices
This document is provided for informational purposes only. It represents AWS’s current product offerings
and practices as of the date of issue of this document, which are subject to change without notice. Customers
are responsible for making their own independent assessment of the information in this document and any
use of AWS’s products or services, each of which is provided “as is” without warranty of any kind, whether
express or implied. This document does not create any warranties, representations, contractual
commitments, conditions or assurances from AWS, its affiliates, suppliers or licensors. The responsibilities
and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of,
nor does it modify, any agreement between AWS and its customers.
The software included with this paper is licensed under the Apache License, Version 2.0 (the "License"). You
may not use this file except in compliance with the License. A copy of the License is located at
http://aws.amazon.com/apache2.0/ or in the "license" file accompanying this file. This code is distributed on
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.