VM audit trail and life-cycle history (e.g. who shutdown this virtual machine, when?)

Self-service "virtual data centers"

This document walks you through many of the key features of ConVirt. The assumption is that you have already installed and setup your ConVirt Management Server, and have a couple of KVM or Xen hosts under management. If not, you can walk through these steps in our Getting Started Guide - ConVirt for KVM and Xen.

2.1 Create A Template

A template is a set of related configuration information from which you can create one or more virtual machines. ConVirt ships with a set of default templates geared towards doing an ISO install, and can be easily customized to your environment.

First, lets create a template - we're going to do this by cloning and modifying an existing template:

Select the Template Library

Drill down to the Common Templates group and select the Linux_CD_Installation template.

Right click on the template and select "Create Like":

Enter a name for the new template and click OK.

You should see the new template show up in the Common Templates group.

Right click on the new template, and select Edit Settings.

A Template Settings dialog box should pop up that will guide you through the process of editing the template. In the General section, change the default values to match your virtual machine template. For example, you can change the memory or change the number of virtual CPUs.

Next we'll modify the template to use an ISO file to create new virtual machines, rather than the physical cdrom device.

Select the Storage tab on the left, and then select the cdrom VM device.

For Options, change "Use Physical Device" to "Use ISO File".

For Location, search for the location of the ISO file you'd like to use for this template.

Click Save

The template is now set up to use the specified ISO file to provision new virtual machines. Click OK.

Revise the version if you like, then click Yes.

You have just created a template that is suitable for provisioning multiple virtual machines in your environment.

2.2 Provision A Virtual Machine

Now that you have created your template, you can use it to provision a new virtual machine. There are several ways to provision a VM:

Provision on a server pool

Provision on a specific host

Provision from a template as the starting point

For this example, we will provision a VM on one of our host servers:

Right click on the host, and select Provision Virtual Machine.

A dialog box will come up that will guide you through the provisioning process. Select the Template Group and Template Name you just created in the last section, and give the VM a name:

Next we will associate the shared storage with this new VM. Select the Storage tab on the left, click on the "writable" disk, and select Edit.

In the Storage Details dialog, click the "shared storage" icon on the right side.

Select the shared storage that you had previously created, and click OK.

The Location should be updated with appropriate location of your shared storage. Click Save.

Click OK to provision the VM.

If the connection is successful, you should see the new VM show up in the Navigation page under your host server.

2.3 Start & Connect To Your Virtual Machine

Now that you have provisioned your VM, you can start it, connect to it, and use it. And you can do all this from the ConVirt console:

Right click on the new VM, and select Start.

When the VM icon turns green, the VM has been started

Right click on the VM, and select View Console

ConVirt asks which viewer you want to use to view the console:

Then ConVirt opens a console window to your new virtual machine.

2.4 Change Resource Allocation on an Existing VM

With ConVirt, its easy to change the memory, number of virtual CPUs, storage, and network resources for an existing virtual machine.

Shutdown the virtual machine

Select "Edit Settings"

Modify the Memory and Virtual CPUs, and click Save:

You should see the new values reflected in the VM Summary pane

Re-start the VM

2.5 Live Migrate a VM

Live migration moves running virtual machines from one physical host to another with no impact on virtual machine availability to users. Note the following requirements to enable live migration:

VMs must use the same shared storage

Hosts must use identical mount points

Installation media (iso) must be centrally accessible

For para-virtualized Xen VMs, the kernel and ram disk should also be shared

Migration needs to be done within the same subnet

In addition, we strongly suggest you use identical machines with the same virtualization platform version running.

Drag a running virtual machine from one host to another

Click Yes to confirm the operation

Your running VM now shows up under the other host

NOTE: There is also a convenient Migrate All feature to migrate all virtual machines on one host to other hosts in a server pool. This is particularly useful when a host is being upgraded or brought down for maintenance.

2.6 Monitoring & Configuration Management

ConVirt's monitoring and configuration management functionality enables you to quickly identify bottlenecks, re-allocate resources, and ensure compliance with corporate policies. All of the monitoring information is presented at multiple levels â individual virtual machine, host server, server pool, and enterprise, bringing the most pressing issues to your attention right away.

2.6.1 Performance Monitoring

As soon as a virtual machine is deployed or a host server is added, ConVirt automatically collects a comprehensive set of availability, performance and utilization metrics for CPU, memory, storage, and network I/O.

Data center-level Overview tab provides a summary of data center resources, and shows CPU utilization graph for top 5 hosts in the data center over time, with additional detail showing top 5 hosts and virtual machines.

The Server Pool-level Overview shows a summary of resources at the server pool level, a graph of performance over time (memory utilization, in this case), and top 5 hosts and virtual machines for this particular server pool.

The Host-level Overview shows a summary of resources at the host level, a graph of performance over time (CPU utilization, in this case), CPU usage, and top 5 virtual machines for this particular host.

The Virtual Machine-level Overview shows a summary of resources at the VM level, a graph of performance over time (CPU utilization), and an audit trail of the tasks and operations applied to the VM over time.

2.6.2 Configuration and Compliance

ConVirt automatically collects detailed configuration information for host servers and virtual machines. This information is aggregated at a server pool and data center level, providing you with a consolidated view of your entire environment and helping you ensure compliance with corporate policies. In particular, ConVirt tracks the relationships between virtual machines and the templates that were used to deploy them, and flags any discrepancies. The product also keeps a detailed audit trail at the VM, host, server pool and data center level, so you can answer questions like "Who shut down this virtual machine, and when?"

ConVirt provides configuration information at both the host and virtual machine level, including detailed information about storage and virtual networks.

ConVirt provides a detailed tabular view of all the servers and virtual machines in a server pool. This view is sortable on any attribute, and searchable for machine names.

The Tasks tab provides a detailed audit trail of all operations executed, and the data is aggregated up from the VM level to the host, server pool, and data center levels.

3 Server Pool Management and Automation

In order to take advantage of the agility introduced by virtualization, you need to uniformly manage pools of hosts according to IT policies and resource constraints. ConVirt simplifies server pool management by letting you monitor, provision, and configure virtual machines at the host and server pool level. For example, ConVirt summarizes key monitoring information across a server pool, allows you to apply pool-wide configuration and provisioning policies, and lets you associate shared storage with a pool of servers.

3.1 Intelligent Placement - Provision a VM on the Server Pool

When provisioning a new virtual machine or migrating an existing virtual machine, it is important to understand which host server is the best candidate to host the additional workload. However, as the number of servers grows, determining resource utilization across servers gets increasingly difficult. ConVirt eliminates this time-consuming and error-prone task by automatically identifying the best placement of the virtual machine within the server pool, based on performance and resource utilization.

Right click on the server pool, and select Provision Virtual Machine

A dialog pops up for the template with a host server already selected. ConVirt looks at a combination of CPU and memory utilization to determine the best host on which to place a VM, and you can modify these placement rules.

Select the Template Group and Template Name, give the VM a name, modify memory, vCPUs and Guest-OS variables as appropriate, and click OK to provision the VM.

You should see the new VM show up in the Navigation page under your host server.

3.2 Manage Shared Storage

ConVirt allows you to centrally declare your storage, and share it with your server pools. Once storage is shared, ConVirt automates the configuration and mounting of the storage on all hosts in the server pools.

The first step is to create a new storage resource at the Data Center level.

This dialog shows all the storage resources currently defined at the Data Center level (currently none). Click New to create a new resource.

This Storage Details dialog will walk us through the process of configuring and testing a new storage resource. Select NFS from the drop down menu and specify details.

The Mount Point here is key - ConVirt will automatically create this Mount Point and mount the storage on all the hosts on all the server pools where this storage is available. This is a key piece of automation you donât have to worry about any more.

The next step is to validate that the storage configuration is correct and working. Convirt allows you to test this by temporarily mounting the storage to ensure that the entries are valid, and appropriate permissions exist.

Select a managed server where the mount point is already setup, and click Scan

If successful, ConVirt will show total and available storage.

The last step is to identify which server pools will have access to this storage. Click on the Server Pools tab, select the appropriate pools, and click Save.

We have now created a new NFS storage resource, validated it, and shared it with selected server pools.

Note that when we created the storage, ConVirt automatically mounted the storage on all the host servers in our selected server pools. Click the green Status button to see the detail. Any new hosts added to these server pools will automatically inherit access to this storage as well

3.3 Manage Virtual Networks

ConVirt significantly streamlines the error-prone and time-consuming tasks of configuring your network resources, providing a centralized interface for managing your virtual networks. With ConVirt, you can centrally define your virtual network, attach it to your host server pools, then ConVirt automates the provisioning of the networks on all the hosts in the pool.

The New Virtual Network dialog box walks us through the process of configuring a new network resource. Fill in the appropriate network information for your environment. Note that the Ethernet name must be consistent across all machines in the network. Click Save to create the new Virtual Network.

We've now successfully defined our VLAN. Click Close.

The next step is to attach this VLAN to our server pool. Lets go to our server pool, right click on it, and select Manage Virtual Networks

This brings up the Manage Virtual Networks dialog for the server pool - select Attach to see a list of networks available to this server pool.

Select the network we just created and click Attach.

The dialog is updated with the new virtual network attached to this server pool. Click on the green status icon to view details about the new VLAN connection.

4 Advanced Automation and Orchestration

ConVirt has the advanced automation and scalability features needed to run large scale or mission critical virtualization environments.

High availability provides failover services for both virtual machines and physical servers.

Dynamic workload management provides scheduled, policy-based workload migration to support server consolidation for power savings or load balancing across a pool of servers

Backup and restore supports both scheduled and on-demand backups

Maintenance mode allows servers to be taken down and worked on without breaking this automation

4.1 High Availability

ConVirt has built a unique, lightweight High Availability (HA) mechanism that lets you quickly configure HA for your server pools with an easy-to-use wizard within the ConVirt console. Once HA is enabled, ConVirt monitors all the virtual machines and physical hosts in a server pool, and handles automated restart of these resources in the event of a failure.

To configure HA, select a server pool in the Navigation Pane and select âConfigure High Availabilityâ from the right click menu. The Configure High Availability dialog will guide you through the process of setting up HA.

In the General tab, select "Enable High Availability", then configure the options:

Failover scope (ie. just VMs, or VMs and hosts)

Virtual Machine Failover on the same server

Virtual Machine and Server Failover

Where to migrate VMs in the event of a physical host failure:

Migrate Virtual Machines to Other Servers in the Pool (and optionally back once the host comes back up)

Migrate Virtual Machines to Dedicated Standby Servers

In the Fencing Configuration tab, you can set up fencing devices to eliminate the risk of the same virtual machine running on two physical servers. In event of a server failure, ConVirt will make sure that the server is indeed isolated/powered down so that virtual machines can be started on a different server. In absence of this there is a chance that the same virtual machine get started on two servers, causing corruption.

Click Edit next to one of the servers to set up Fencing for it

The Fencing Devices dialog will come up, showing you what fencing devices are currently available. Click New.

The Configure Fencing Device & Parameters dialog will come up, allowing you to define new fencing devices. Configure a new fencing device, and click OK.

The Fencing Devices dialog is updated with the new fencing devices for your host servers.

In the Virtual Machine Priority tab, you can set the priority order that VMs should be re-started. Set the priorities, then click OK.

You have just set up failover for your server pool by simply clicking a few buttons, without having to install anything on the hosts or build out a heavyweight Linux cluster.

4.2 Dynamic Workload Management

Dynamic Workload Management (DWM) allows the server load within a server pool to be managed using policies. Based on these policies and their associated schedules, ConVirt will automatically migrate virtual machines between servers in a pool to achieve the policy goals.

To configure DWM, select a server pool in the Navigation Pane and select âConfigure Dynamic Workload Managementâ from the right click menu. The Configure Dynamic Workload Management dialog will guide you through the process of setting up your policies.

Even Distribution Policy

The Even Distribution policy ensures that no server in the server pool is over-utilized. The policy is configured using a threshold. When the Server CPU utilization reaches the threshold, the server is considered "loaded". ConVirt, will move one of more virtual machines from that server to another suitable server. This, combined with ConVirt's Intelligent Placement, will result in an even spread of virtual machines across various servers within a server pool.

Specify the thresholds and re-try times, then click Schedule.

The schedule defines what time window the policy will be active. Specify the frequency, start time, and duration for the policy, and click OK.

Power Save Policy

The Power Save policy consolidates virtual machines to a smaller number of servers to save power during low utilization periods.

The policy is configured with 2 thresholds - one threshold determines when to kick off the consolidation process, and the other determines that maximum CPU utilization per server.

For example, when the server CPU is less than 10 % for 5 minutes, ConVirt will try to move running virtual machines to another server.

Once all virtual machines are moved, the server can be shutdown using already specified Power/Fencing configuration.

The servers shutdown during Power Save would be started back up when the Power Save Policy ends according to the schedule. Servers will also be started when the server utilization on one of the consolidated servers goes beyond the upper threshold.

Specify the thresholds and re-try times, then click Schedule.

The schedule defines what time window the policy will be active. Specify the frequency, start time, and duration for the policy, and click OK.

4.3 Backup & Restore

KVM and Xen donât come with native backup and restore tools, so organizations have traditionally had to cobble together scripts and chron jobs to protect their data. ConVirt Backup and Restore provides reliable, policy based backups for virtual machines across your server pools without the need for scripting or agents.

4.3.1 Create and Schedule a Backup

To configure Backup, select a server pool in the Navigation Pane and select âConfigure Backupâ from the right click menu.

The Configure Backup dialog lists all the backup policies in place for the server pool. Click New to bring up the "Create Backup Policy for Server Pool" dialog.

NOTE: Backup policies can be applied to individual hosts or groups of hosts, but they are managed at the server pool level.

In the General tab, specify a name for the backup policy, then select the appropriate backup options:

Cold or Hot backup

Disk Image or File backup

Create TAR file and compression

Retention policy

In the Destination tab, configure the appropriate backup options:

Backup Location (local or remote server)

Transfer Method (copy, RSYNC, or custom)

In the Schedule tab, configure the frequency and time for the backup to run.

In the Virtual Machines tab, identify which VMs in the server pool should be backed up using the policy. Click OK to save the backup policy.

If you click on the server pool in the Navigation Pane, you can see the new backup policy in place on the Backup tab, including a the policies in place, backups completed, and backup failures.

4.3.2 On Demand Backup

Now that we have a Backup policy in place, we may want to run it against the new VM we just provisioned, to get an initial backup in place.

Right click on the VM and select Backup Now.

Confirm that you want to take a backup of the VM by clicking Yes.

ConVirt submits a sequence of tasks (in the Task Pane at the bottom) to execute the backup policy, then records the results on the Backup tab for the VM.

4.3.3 Restore From Backup

The final step in a complete backup solution is to restore a backup. With ConVirt, you can do this from several places - from the Backup tab for the Server Pool or VM, or by right-clicking on the VM.

Right click on the VM, and select Restore From Recent Backup

Confirm that you want to restore the VM by clicking Yes.

Select which backup you would like to restore and click OK.

ConVirt submits a set of tasks to shut down the VM and restore the selected backup.

4.4 Maintenance Mode and Annotations

During the course of operations, host servers periodically need to be brought down for hardware or software maintenance. During these windows, the management application should "ignore" the host. With ConVirt, you can put a host into Maintenance Mode, and it will be ignored for automated provisioning or migration tasks including Intelligent Placement, High Availability, and Dynamic Workload Management. ConVirt also automates the migration of current workloads to other hosts before entering Maintenance Mode, and optionally bringing the workloads back after leaving Maintenance Mode.

Right click on the host server, and select Maintenance to bring up the Server Maintenance dialog.

Check the box next to Maintenance, and select the appropriate option for handling VMs on the host when you put the server into maintenance mode.

Click OK to put the server into maintenance mode.

ConVirt places the server into maintenance mode (indicated by the yellow indicator on the host icon), and migrates any VMs per the maintenance policy. In this example, note that VM ubu-002 was migrated to the other server in the pool.

Annotations are a quick way of communicating with your colleagues who may also be working on the infrastructure. You can set an annotation on a host or a virtual machine. This helps improve coordination and prevents multiple people from working on the same issue. It also keeps others updated about progress. Annotations are sent as email notifications to everyone that can view the entity.

Right click on a host or VM and select Annotate

In the Annotate dialog, enter your message and click Save.

An Annotation icon will show up in the Summary pane of the Overview tab, indicating that there is a message available for that host or VM.

Click the Annotation icon to open the message.

5 Self Service

ConVirt makes it easy to give your business unit and customer administrators access to data center virtualization resources with an easy-to-use, lightweight self-service capability that overlays your existing virtualization - no new infrastructure required. You simply delegate compute resources to your business customers, and they provision and manage the compute resources via a web-based self-service console.

5.1 Set Up Network Resources

In order to create self-service Virtual Data Centers, ConVirt transforms existing virtualized infrastructure into a cloud by overlaying an Infrastructure-as-a-Service (IaaS) layer. To manage this layer, you need to set up several network resources:

Network Service - one additional VM to be used as a network service (with Ubuntu 12.04 or CentOS 5.x/6.x). This VM will have connectivity to

Public Network : to make virtual machines available on the public network.

VLAN ID pool - a set of free VLAN IDs.

Public IP pool - a few unused IP addresses on public networks to allocate to virtual machines

5.1.1 Network Service

Convirt's Network Service connects the following networks:

Management Network : This is the network ConVirt uses to configure/manage the Network Service

Private VLAN Network : This is the network that is partitioned for running virtual machines owned by different tenants/VDCs using VLAN

Public Network : This is a public/internet facing network. ConVirt will use the interface identified for this network for making virtual machines available on the public network.

For larger scale production deployments, these networks would each be set up on their own physical network. For the purposes of this guide, we will use the same physical network to support both the Management and External/Public networks. In addition, while the Network Service can be run on an external server or on a VM, for this guide we will designate one VM to run ConVirt's Network Service.

Provision Network Service VM

Provision a Linux VM on one of your hosts

Use ConVirt to provision an Ubuntu 12.04 VM on one of your hosts

Provision it with 2 virtual NICs:

eth0 for the External/Public and Management interfaces, connecting to hv-switch0

eth1 for the VM Network/Private VLAN interface, connecting to vm-switch0(note: this network should allow all VLANs!)

Connect to the VM and set up a root password by typing:

sudo (you'll be prompted for the password that you used at the time of installation)

su -l root

passwd (enter the password for the root user)

Create a kvm directory (this allows the CMS to discover the VM as a KVM host):

On the VM, extract the contents of the archive into a directory. For example:

tar -xzf convirture-enterprise-tools-3.4.3.tar.gz

Change to the ~/convirture-enterprise-tools/install/managed_server/scripts directory. For example:

cd ./convirture-enterprise-tools/install/managed_server/scripts

Install required dependencies:

./convirt-tool install_dependencies

Use the convirt-tool command to configure the VM (make sure to include the "--skip_bridge" option as you do not need to create bridges on all interfaces):

./convirt-tool --skip_bridge setup

Take note of the details needed to register the VM with ConVirt in the next section

Get the IP address of the eth0 interface

ifconfig eth0

Discover Network Service VM Into ConVirt

Add a new server pool to hold the Network Service host

Make sure the type is "KVM"

Add the Network Service virtual machine as a KVM host

Right click no the new server pool, and select Add Server

Select KVM as the platform type

In the Add Server dialog, enter the following info to import the Network Service virtual machine as a host:

Host Name - use the IP address of the eth0 interface of the Network Service VM

Username/Password - enter the root credentials for the VM that you set up in the previous section

Click OK to add the server

You should see the virtual machine added as a host under the new server pool you created.

5.1.2 VLAN ID Pool

ConVirt creates private virtual networks for isolation. One such network is created each time a new self-service Virtual Data Center is provisioned. In addition, ConVirt has the capability to allow users to create their own private networks. To do this, ConVirt requires a VLAN ID when such a private network is created. For convenience, a VLAN ID Pool needs to be declared.

Right click on Data Center and select Manage VLAN ID Pool

Click New on the Manage VLAN ID Pool dialog

In the VLAN ID Pool Detail window on the Definition tab, provide the appropriate details.

In the VLAN ID Pool Detail window on the Server Pools tab, select the server pools for which these VLAN IDs will be available, and click Save.

You've now created a pool of VLAN IDs that you can use to provision self-service Virtual Data Centers.

5.1.3 Public IP Pool

ConVirt enables self-service Virtual Data Centers to optionally make their virtual machines accessible over the Internet by assigning a public IP address. To do this, you define a Public IP pool, and then assign Public IP quotas to Virtual Data Centers. Self-service Virtual Data Center clients can then request a Public IP, assign it to a virtual machine, and release it back into the Public IP pool.

Here's how to set up the Public IP pool:

Right click on Data Center and select Manage Public IP Pool

This brings up the Manage Public IP Pool dialog showing the available pools. Click Add.

In the Public IP Pool dialog, specify the name of the pool and the IPs, then click Save.

The Manage Public IP Pool dialog is updated to show the new pool.

5.2 Create A Local Cloud From Your Virtualized Resources

The first step in adding self service is to convert your virtualization infrastructure into a local cloud. To do this in ConVirt, an IaaS entity needs to be defined. With a few simple clicks, ConVirtâs IaaS wizard allows you to designate which parts of your existing infrastructure (server pools, networks, storage, and templates) should be used for the cloud deployment, then generates the IaaS.

Right click on IaaS and select "Add IaaS" to create a new cloud resource

The type of cloud we're going to create uses "Local Infrastructure"

This brings up the Add Local Infrastructure Iaas dialog - put in a name and description of the cloud you want to create.

Select the server pool (local infrastructure) that you would like to use for the cloud

Select the network(s) you would like to make available to cloud users

Select the templates that you would like to make available to cloud users

Select your networking service, then click Save. ConVirt will orchestrate your local resources together into an Infrastructure-as-a-Service cloud. Note that the Ethernet name must be consistent across all the machines in the server pool.

The new cloud should show up in the IaaS area of your navigation pane.

5.3 Delegate Cloud Resources Via A "Virtual Data Center"

The next step in adding self service is to delegate some of these IaaS resources to your business customers. To do this in ConVirt, you create a Virtual Data Center (VDC), which allows customer administrators to use the IaaS cloud capacity without knowing any details about the underlying physical infrastructure. With a few simple clicks, ConVirtâs VDC wizard allows you to define the compute, template, storage and networks resources that will be made available, the quota limit for each resource, and the authorized users/administrators of the VDC. ConVirt automatically assembles the VDC based on your selections.

Next you choose the cloud resource you'd like the self-service console to use. Note that you can have multiple Virtual Data Centers utilizing a single IaaS cloud. Select the cloud you just created and click OK.

The Provisioning Virtual Data Center dialog should pop up, to walk you through the self-service definition. Type in an appropriate name and a description.

Select the templates you would like to make available via the self-service console. Note - the templates will be limited to what is available via the cloud resource you are using.

Select the network resources you would like to make available via the self-service console.

Define the resource quotas for the self-service console. ConVirt enforces these quota limits so that users of the self-service consoles cannot go beyond the limits you set.

And finally, create or assign the administrator(s) for this self-service console. Note that you can assign existing users who were already defined as ConVirt admins, or you can integrate users from your LDAP or Active Directory, or you can create new users.

Click Save to create the self-service Virtual Data Center. You will receive a confirmation alert.

The new self-service console will show up under the Virtual Data Center section of the navigation pane. You can see the quota information in the Summary tab on the right.

5.4 Provision & Manage VMs On A Self-Service Basis

Once the Virtual Data Center (VDC) is created, authorized users/administrators will be able to access and manage the environment from ConVirt's web-based console. Users/administrators are able to do things like create Virtual Machines; create networks (if configured at the time of VDC creation); start, stop and connect to Virtual Machines; delete/destroy Virtual Machines; and reserve a public IP address and associate it to a Virtual Machine.

Open a different browser, and log in to the ConVirt Management Server using the self-service user credentials you just created.

What comes up is a version of ConVirtâs web-based console that shows only the resources that are authorized to be used in this self service environment.

In this self service environment, you have access to all the controls that ConVirt provides - the only limits are on the resources you can access. So lets go ahead and provision a virtual machine - right click on the Virtual Machines folder and select Provision Virtual Machine.

Type in a name for the virtual machine you'd like to create, select a template to use, and click Save.

ConVirt provisions the new VM.

Next lets start the virtual machine - right click on it and select Start.

ConVirt starts the new VM.

Now lets view the console for the new VM - right click on the VM and select Connect.

ConVirt prompts you for the local viewer you would like to use to connect to the VM.

The console window opens and you can get to work on your VM.

6 Conclusion

This concludes our feature walkthrough. Hopefully it has given you a good feel for how ConVirt works, and the depth of functionality available in the product. Please check out some of the following sections of our website for more information:

Comments

Contents:

Accelerite

Accelerite is a provider of endpoint management, mobility, and cloud solutions to some of the largest enterprises in the world.
Accelerite is the products business of Persistent Systems (BSE & NSE: PERSISTENT), a global leader in software product development and technology services, with over 8,000 team members worldwide.