Mashery Local is TIBCO’s cloud-native API gateway that can be deployed in both customer data centers and cloud platforms.
TIBCO Mashery Local (TML) can be deployed in two modes: 1) Untethered and 2) Tethered or Hybrid. In Untethered mode, there are no external dependencies. The local configuration manager tool and developer portal are used directly to configure API policies, packages and plans to manage the API keys. In Tethered or Hybrid mode, however, TIBCO Cloud Mashery is used, which includes the Developer Portal, Administration Dashboard and API Reporting and Analytics.
This blog post pertains to TIBCO Mashery Local v5.5.0, and if you are interested in understanding how to deploy it in Tethered mode on IBM Cloud Kubernetes Service in IBM Cloud, read on.
Starting with version 5, TIBCO Mashery Local is available in container-based format only. Its components include the following:
- Traffic Manager
- Cluster Manager
More info on TML components and their interactions can be found here.
How do you deploy TIBCO Mashery Local in IBM Cloud?
TIBCO Mashery Local (TML) components can be deployed in IBM Cloud Kubernetes Service on both IBM Cloud Classic and VPC in a single zone or across multiple zones to form a cluster of components to address scalability, reliability and high availability requirements.
While the remainder of this blog post focuses on provisioning a Tethered/Hybrid TML Cluster in a single-zone Classic IBM Cloud Kubernetes Service, the approach to provisioning it on IBM Cloud Kubernetes Service in IBM Cloud VPC is no different. The key components of IBM Cloud that come into play here are IBM Cloud Kubernetes Service, IBM Cloud Container Registry and IBM Cloud Block Storage for persistent volumes.
- IBM Cloud Kubernetes Service cluster running in IBM Cloud Classic
- IBM Cloud IAM permissions and roles, as described here
- TML installer software, which can be obtained from your TIBCO sales contact
- IBM Cloud API key, IBM Cloud Kubernetes Service cluster ID, TIBCO MOM key and MOM Secret
- Values of variables in the variables.tf file, described here
Ensuring that all the prerequisites listed above are met is a good starting point for the deployment of the TML cluster. For users that have experience working with IBM Cloud CLI and IBM Cloud Container Registry, the process of installing the TML cluster becomes effortless. At a high level, the sequence of installation is straightforward, as outlined in the steps below.
Set up your IBM Cloud environment
Before you begin the cluster installation, you need to set up your IBM Cloud CLI environment with all required plugins on your local machine or any designated server. Also, ensure the IBM Cloud Kubernetes Service is granting all required IAM permissions and roles. The reference links towards the end of this blog provide information in greater detail on the permissions and the steps required to enable those permissions in IAM.
Set up IBM Cloud Container Registry to store TML images
IBM Cloud provides a multi-tenant-based private image registry for users to build, store, scan, share and deploy their container images. The Container Registry CLI plugin allows users to interact with the registry using command line options. Users can create or add namespaces, tag images, push to or pull them from the registry and verify the status easily using the IBM Cloud Kubernetes Service CLI. In this step, you will install the IBM Cloud Container Registry CLI and set up a namespace for the TML installation.
Build and push TML images into IBM Cloud Container Registry
Now that you have a namespace configured in the IBM Cloud Container Registry, you can build and push your images in to the registry. TML images can be built using the installer (software) package that you received from TIBCO. Upon execution, the installer package provisions and launches a Jenkins instance locally, which is then used to build your Docker images. Note that at this stage, you will need to build and download the docker-deploy.tgz file to extract appropriate certificates and keys that will be used during TML installation via Terraform. Once the images are built, they can be pushed into the IBM Cloud Container Registry using the IBM Cloud Container Registry CLI commands.
Provision TML in the IBM Cloud Kubernetes Service cluster
At this point, you should have your IBM Cloud CLI environment set up and configured, TML images built and pushed into the IBM Cloud Container Registry and you are ready to install TML into the IBM Cloud Kubernetes Service cluster. The easiest way to provision TML into the IBM Cloud Kubernetes Service is by using Terraform. Sample TF code that can perform all these steps can be found here. This TF code essentially creates an IBM Cloud Kubernetes Service cluster, installs all the required block storage classes and then installs TIBCO Mashery Local (v5.5.0) on the IBM Cloud Kubernetes Service cluster. Before running the Terraform code, you will need to keep the Mom Cert and Mom Key handy along with the certificates and keys generated from the docker-deploy.gz file created during the previous step.
Once TML installation completes, you can make sure all TML PODs are active by listing all PODs in the cluster. You can also execute into the CM POD and access the cluster manager CLI to check the status of all the TML components. Here is what an active cluster should look like:
This Wiki page shows all the above steps in detail and includes all the IBM Cloud CLI commands used to install and configure TML on the IBM Cloud Kubernetes Service in IBM Cloud Classic.
Although TIBCO Mashery Local (TML) is not available in the IBM Cloud catalog, users can still deploy it on IBM Cloud Kubernetes Service in both IBM Cloud Classic and IBM Cloud VPC platforms using the steps explained in this blog. If you would like to understand and learn more about IBM Components refer to the links below. If you have questions about this blog, feel free to reach out to us here.