GitHubContribute in GitHub: Edit online

copyright: years: 2018, 2020 lastupdated: "2023-02-12"


Setting up high availability for SMS Gateway

You can configure the SMS Gateway feature of IBM® Voice Gateway to run in a highly available environment by deploying it into a Kubernetes cluster and then exposing it as a Kubernetes service. By scaling these instances on a Kubernetes cluster, SMS Gateway can handle higher messaging loads, failover, and rolling updates.

  • High availability architecture

    In a highly available environment, the SMS Gateway runs as a stateless container along with a distributed session cache container in a Kubernetes cluster on IBM Cloud.

  • Setting up a Redis caching server

    Set up and deploy a Redis caching server in a Kubernetes cluster, on private or public cloud. The Redis caching server stores and shares session cache across SMS Gateway instances.

  • Deprecated: Setting up an XSLD caching server

    Set up and deploy an IBM® WebSphere® eXtreme Scale Liberty Deployment (XSLD) caching server in IBM Cloud Private. The XSLD caching server stores and shares session cache across SMS Gateway instances.

  • Shutting down your SMS Gateway container

Starting your SMS Gateway container

Use a readiness probe to make sure that requests are served once the server loads the configuration. Add the readiness probe in the deploy script file, as shown in the following example.

            "readinessProbe":{
            	"exec": {
              	  "command": [
		     "/opt/readiness.sh"
		  ],
                "timeoutSeconds": 5
              }
	    },

The timeoutSeconds variable specifies the number of seconds before the probe times out. The default value is 1 second. The minimum value is also 1 second.

You can also add the periodSeconds variable to specify how often, in seconds, to perform the probe. The default value is 10 seconds. The minimum value is 1 second. For example: periodSeconds: 30

Optionally, to authenticate the readiness probe REST API request, add the following user name and password variables in the deploy script file.

  • SMS_ADMIN_USERNAME: This variable specifies the user name for the admin to authenticate the readiness probe request.
  • SMS_ADMIN_PASSWORD: This variable specifies the password for the admin to authenticate the readiness probe request.

To request the REST API, use the following API.

curl -X GET --user SMS_ADMIN_USERNAME:SMS_ADMIN_PASSWORD --header 'Accept: application/json' 'http://localhost:9080/sms.gateway/ready'

Shutting down your SMS Gateway container

Before your server can be stopped, reporting events require time to process the reports for any transactions in flight. When reporting is enabled, you can add 25 seconds to the preStop handle to give time for SMS Gateway to either back up or send any reporting events.


"lifecycle": {
							"preStop": {
								"exec": {
									"command": [
										"sh", "-c","sleep 25 ;"
									]
								}
							}
						},

Deploying SMS Gateway in IBM Cloud Private on Red Hat Enterprise Linux

Important: Starting with IBM Voice Gateway 1.0.6, IBM Cloud Private is no longer supported. If you want to deploy the service on premises, deploy it in IBM Cloud Pak for Data instead.

If you deploy SMS Gateway in IBM Cloud Private on a Red Hat Enterprise Linux node, Security Enhanced Linux (SELinux) must be disabled before you can deploy an SMS Gateway High Availability environment.

  1. Edit the SELinux configuration file in the /etc/selinux/config directory, and set SELINUX=disabled as shown in the following example:
SELINUX=disabled
SELINUXTYPE=targeted
  1. Restart the system
  2. Verify that the SELinux policy is disabled by running the following command:
bash getenforce

If SELinux is disabled, it outputs a Disabled message.