This document introduces Rhino Telephony Application Server (TAS) virtual machine (VM) automation, which is a solution that automates the deployment, configuration, and life cycle management of Rhino VM nodes on a virtualization platform. It explains relevant concepts, the architecture, and the requirements of the solution.

The intended audience of the document includes the following:

  • IT managers who make deployment and maintenance decisions about Rhino TAS and its applications.

  • Network engineers or architects who design and plan the Rhino VM virtual network.

  • Software developers who create virtual appliances for the deployment of Rhino VMs.

  • Administrators who implement Rhino VM automation and maintain Rhino VMs.

The document assumes that you are familiar with Rhino TAS. In addition, you need to have high-level knowledge about the following products, which the solution uses:

  • VM Build Container (VMBC)

  • ServiceIQ Management Platform (SIMPL)

  • Metaswitch Deployment Manager (MDM)

  • Apache Cassandra

  • OpenStack or VMware vSphere

For more information about these products, see Related information.

Introduction

Rhino VM automation is a solution that centralizes the deployment, configuration, and life cycle management of Rhino TAS and its applications with automated processes. In Rhino TAS 3.0 or later, you can use Rhino VM automation to deploy, configure, and maintain Rhino VM nodes on a virtualization platform.

During the automation, you create a custom Rhino virtual appliance and upload it to a SIMPL server, together with relevant configuration files. Then instruct the SIMPL server to deploy VMs based on the virtual appliance to the target virtualization platform and to configure the VMs accordingly. Rhino VM automation fully automates the deployment and configuration processes, with no manual operations involved.

Rhino VM automation is different from the classic deployment method, which requires the manual installation and configuration of each node. With the automated deployment and configuration processes in Rhino VM automation, you can significantly reduce the amount of manual work needed, and therefore shorten the deployment and configuration time and minimize the possibility of manual operation errors. In addition, Rhino VM automation allows you to manage the life cycle of the VMs easily. For example, from the SIMPL server, you can upgrade or destroy the VMs.

With the introduction of Rhino VM automation, you now have the flexibility of deploying and configuring Rhino TAS and its applications with the following methods:

  • Classic deployment: Manual deployment and configuration of Rhino nodes.

  • Rhino VM automation: Automated deployment and configuration of Rhino VM nodes on a virtualization platform, as described in this document.

  • Rhino VM automation with continuous integration (CI) and continuous deployment (CD): Rhino VM automation supplemented with CI/CD processes. For details, see VM and Rhino application reconfiguration.

Note In Rhino VM automation, you no longer use the Rhino element manager (REM) to configure Rhino applications. Instead, you do that through a configuration database. In this case, the role of REM changes. You only use it to check application configuration information.

Requirements

To support the automated deployment, configuration, and life cycle management processes, Rhino VM automation requires multiple products. This section describes the product dependency of the solution. It also lists the virtualization platforms on which you can deploy the VMs.

Product dependency

Rhino VM automation requires the following products:

Note For the versions of these products that each Rhino VM automation release supports, see Rhino Compatibility Matrix.

Supported virtualization platforms

The following table lists the virtualization platforms that Rhino VM automation supports:

Platform Supported versions

OpenStack

Newton or later

VMware vSphere

6.7 or later

Architecture

To effectively plan and implement Rhino VM automation in your organization, learn about its architecture. This section explains Rhino VM automation components and describes how they work together to automate VM deployment, configuration, and life cycle management.

Rhino VM automation consists of the following components:

  • The VMBC tool, for creating a custom Rhino virtual appliance that contains Rhino TAS and the applications that you want to deploy.

  • A SIMPL server, for deploying VMs and managing VM life cycles.

  • An MDM server, for communicating information between the VMs and the SIMPL server.

  • A configuration data store (CDS), which is a Cassandra database for hosting the VM and Rhino application configuration information.

  • A virtualization platform, for hosting the deployed VMs.

As shown in the diagram below, during the Rhino VM automation process, first the software developer performs the following task:

Virtual appliance creation
  1. Uses VMBC to create a custom Rhino virtual appliance that contains the Rhino platform and the applications to deploy.

Note In the diagrams on this page, the dashed lines indicate human actions, while the solid lines indicate data flow. The arrows indicate the directions of the actions or the data flow.

Then as shown in the diagram below, the administrator performs the following tasks:

Virtual appliance and configuration file upload
  1. Uploads the virtual appliance to the SIMPL server.

  2. Downloads configuration file templates from the SIMPL server.

  3. Creates configuration files for the VMs and Rhino applications based on the templates.

  4. Uploads the configuration files to the SIMPL server.

Note In your organization, a network engineer may be responsible for designing the virtual network and creating the configuration files.

After this, the administrator performs the following tasks to deploy and configure the VMs, as shown in the diagram below:

VM deployment and configuration

  1. Instructs the SIMPL server to deploy VMs to the target virtualization platform based on the virtual appliance.

  2. Instructs the SIMPL server to push the configuration files to the CDS.

Once those tasks are completed, the automation works as follows:

  1. Each deployed VM starts, automatically pulls the configuration files from the CDS, and then configures itself and the applications on it accordingly.

  2. After the configuration, the VMs and the SIMPL server start to communicate through the MDM server. This allows you to manage the life cycle of the VMs on the virtualization platform.

In the Rhino VM automation process, step 6 is also called "Day 0". Step 7 and 8 are also called "Day 1". After the initial deployment, you may need to reconfigure the system or manage the life cycle of the VMs. These are often considered "post day 1" tasks.

Custom Rhino virtual appliance creation

To deploy VMs that host Rhino TAS and your applications, use the VMBC tool to create a custom Rhino virtual appliance first.

The virtual appliance is a zip file with the cloud service archive (CSAR) structure, which is an open-standard archive structure for shipping product images together with relevant configuration metadata, necessary tools and scripts, and VM validation test data. For each virtualization platform you plan to use, create a separate virtual appliance.

In Rhino VM automation, the major content of the virtual appliance is as follows:

  • A VM image file for the target virtualization platform. For example, a .qcow2 file for OpenStack.

  • The rvtconfig tool for the VM type used.

  • The service configuration template files and relevant example files.

  • The test files for validating instantiated VMs.

The SIMPL server can process the virtual appliance CSAR file and deploy VMs from it.

For instructions on using VMBC to create custom Rhino virtual appliances, see VM Build Container User Guide.

VM and Rhino application configuration

After uploading the custom Rhino virtual appliance CSAR file to the SIMPL server and extracting it, you can find the configuration template files and relevant example files in the extraction directory. Based on these files and your virtual network design, create the configuration files for your VM nodes and Rhino applications.

For each virtual appliance, create the following configuration files:

  • A service definition file (SDF): A file that defines your virtual network configuration information. For example, it defines the number of VMs to create and the IP addresses for the interfaces on each VM.

  • The service configuration files: A set of files that define the configuration of the Rhino applications on each VM.

Assuming network engineers are responsible for creating the configuration files, the following diagram illustrates the configuration process:

Configuration file creation
Important Use Rhino declarative configuration to configure these files. For configuration instructions and configuration examples, see Custom VM Install Guide.

Once you finish the configuration, upload the configuration files to the SIMPL server, together with the Rhino TAS license file.

VM deployment

After uploading the custom Rhino virtual appliance CSAR file, the configuration files, and the Rhino license file to the SIMPL server, you can start the VM deployment process.

The deployment process consists of the following two phases:

  • Day 0: During this phase, you instruct the SIMPL server to create VM instances on the target virtualization platform.

  • Day 1: During this phase, you instruct the SIMPL server to push the configuration and license files to the CDS. Once the files are available, the VMs automatically download the files from the CDS and configure the virtual network and the Rhino applications accordingly.

Day 0

During "day 0", run the csar deploy command from the SIMPL server to create and deploy VM instances.

This command does the following:

  1. Generates a deployment blueprint based on the SDF configuration file.

  2. Uses the generated deployment blueprint and the VM image file to create VM instances on the target virtualization platform and then start each VM.

    Once a VM starts up, it automatically brings up its network interfaces, and configures its domain name service (DNS) resolution and network time protocol (NTP) client.

The following diagram illustrates the "day 0" process:

The day 0 process

After the command finishes running, test the connectivity of the VMs if necessary.

Note You can use the VMs at this point, but the configuration of Rhino TAS and the applications on top of it is not yet completed.

Day 1

During "day 1", run the rvtconfig command on the SIMPL server to push the configuration and license files to the CDS.

Once the files are available on the CDS, the VMs automatically download them and configure the services defined by the configuration files. After the configuration, the VMs start these services. For example, the VMs may configure and start SSH daemons, database clusters, or Rhino clusters.

The following diagram illustrates the "day 1" process:

The day 1 process

After completing the configuration, each VM generates an initconf.log file. At this point, you can start to test and use the services on the VMs.

Note For Rhino 3.0.0, the initconf.log file is in the ~/initconf directory. For Rhino 3.1 or later, the file is in the /var/log/tas directory.

For detailed deployment instructions, see Custom VM Install Guide.

VM and Rhino application reconfiguration

After the initial deployment and configuration of the Rhino VM nodes, you may need to change the VM or application configuration. For example, the use of the Rhino application or the requirements of your organization may change. With Rhino VM automation, you can reconfigure the VMs or Rhino applications by updating and uploading the configuration and license files at any time.

Reconfiguration process

The reconfiguration process is the same as the initial configuration, which means you need to perform the following tasks:

  1. Update the SDF and the service configuration files, or get a new license file.

  2. Upload the files to the SIMPL server.

  3. Run the rvtconfig command on the SIMPL server to push the files to the CDS.

Once the files are available from the CDS, the VMs automatically download them and perform the reconfiguration.

Note Make sure all the configuration files are complete, because during the reconfiguration, the VMs remove all the existing configuration information, and then perform configuration with the new configuration files.

Reconfiguration with CI/CD

To improve the reconfiguration consistency and efficiency, you can take a further step to incorporate CI/CD processes into VM reconfiguration.

For example, you may consider the following approaches:

  • Use a version management system to control different versions of your configuration files. This can make it easy for you to switch to a specific version of the configuration.

  • Write scripts to automate the configuration file uploading and the rvtconfig command running processes. This can make the reconfiguration process more efficient.

With such CI/CD processes, you can better manage different versions of your configuration files and further automate the reconfiguration process.

VM life cycle management

In Rhino VM automation, you can manage the life cycle of the VMs by using the SIMPL server. For example, you can upgrade or delete a VM.

Note Rhino VM automation currently doesn’t support the healing and the scaling in/out life-cycle management operations.

VM upgrade and rollback

The upgrade and rollback processes are similar. When you upgrade VMs, you replace them with a later version of the VMs. Whereas when you roll back VMs, you replace them with an earlier version of the VMs.

During the upgrade or rollback process, the SIMPL server replaces the VMs on the virtualization platform one by one. For each VM, the server performs the following tasks:

  1. Instructs the VM to permanently shut down services and leave the network.

  2. Waits for the VM to report that the above process is complete.

  3. Removes the VM.

  4. Creates a new VM instance.

  5. Waits for the VM to report its readiness status.

For detailed instructions on VM upgrading or rolling back, see the rolling upgrade information in the Custom VM Install Guide.

VM removal

When you no longer need a VM group or the entire deployment of the VMs, you can use the SIMPL server to delete the group of VMs or all the VMs deployed.

For detailed instructions on deleting VMs, see the SIMPL product documentation listed in the Related information section.

This section provides reference information about Rhino VM automation and the products that it uses.

The following table lists all the Rhino VM automation documents:

Document Description

Rhino VM Automation Overview (this document)

Introduces the Rhino VM automation solution and describes its requirements and architecture.

VM Build Container User Guide

Provides instructions for creating virtual appliances with VM Build Container (VMBC).

Custom VM Install Guide

Provides instructions for configuring and deploying Rhino TAS VMs to a virtualization platform.

VM Build Container Changelog

Describes the changes made in each VMBC release.

The following table lists reference links for the products that Rhino VM automation uses:

Note The Metaswitch manuals site (manuals.metaswitch.com) requires logging in. For more information, contact your Metaswitch representative.
Product Product information Documentation

Apache Cassandra

cassandra.apache.org

cassandra.apache.org/doc/latest

MDM

www.metaswitch.com/products/serviceiq

manuals.metaswitch.com/MDM

OpenStack

www.openstack.org

docs.openstack.org

Rhino TAS

www.metaswitch.com/products/rhino-tas

docs.rhino.metaswitch.com

SIMPL

www.metaswitch.com/products/serviceiq

manuals.metaswitch.com/SIMPL

VMBC

www.metaswitch.com/products/rhino-tas

docs.rhino.metaswitch.com

VMware vSphere

www.vmware.com/au/products/vsphere.html

docs.vmware.com

Terminology

This document uses both industry standard and solution specific terms and acronyms, which you might not be familiar with.

The following table describes the acronyms used in the document:

Acronym Term Description

CI

Continuous integration

Standard industry term. The process of continuously integrating code changes from different developers into a shared code base.

CD

Continuous deployment

Standard industry term. The process of continuously building, testing, and deploying code changes to a production environment.

CDS

Configuration data store

A database component in Rhino VM automation. It hosts application and VM configuration files.

CSAR

Cloud service archive

Standard industry term. A standard archive structure. For more information, see Custom Rhino virtual appliance creation.

DNS

Domain name service

Standard industry term. A protocol for resolving host names to IP addresses.

MDM

Metaswitch Deployment Manager

The name of a Metaswitch product.

NTP

Network time protocol

Standard industry term. A protocol for computer clock synchronization over a network.

REM

Rhino element manager

A component of Rhino TAS. You can use it to manage and configure the Rhino platform. Its use changes in Rhino VM automation. For more information, see Introduction.

SDF

Service definition file

A Metaswitch defined file format. For more information, see VM and Rhino application configuration.

SIMPL

ServiceIQ Management Platform

The name of a Metaswitch product.

TAS

Telephony Application Server

Standard industry term. An application server in a telephone network.

VM

Virtual machine

Standard industry term. The virtualization of a physical computer.

VMBC

VM Build Container

The name of a Metaswitch product.

The following table describes the technical terms used in the document:

Term Description

Heal

The process of recovering a failed VM instance.

Scale in

The process of removing a VM instance from a pool.

Scale out

The process of adding a VM instance to a pool.

Virtual appliance

A CSAR file for VM deployment. For more information, see Custom Rhino virtual appliance creation.