Different storage vendors develop vSphere web client plugin which allows their customer to manage their storage efficiently through an isolated interface. It allows VMware admin to perform storage-related operations easily. Storage plugin for vSphere web client consumes the REST APIs from storage vendor and VMware web client SDKs that allows a user to perform vSphere Storage related operations. Previously, plugin UI was developed in Flex but after 5.5 version VMware has added support for HTML to develop the plugin.

The plugin will have mainly 2 entities involved, 1) vCenter server and 2) Storage server.

Consider, we do not have a plugin developed. Then the admin user needs to perform certain operations on storage through his/her respective CLI or Rest APIs and then perform certain operations on vCenter to achieve the expected outcome. But if the plugin is available, then the admin user needs to give few inputs to plugin and then the plugin will do the rest of the job. 

Let’s take a few examples to understand the need of vSphere web client plugin.

  • In Storage provisioning,
    without the vCenter plugin, if the user wants to create datastore, then he needs to ask the storage admin to create a volume with some configuration (like size, name, and redundancy). storage admin then needs to assign these volumes to a particular ESXi server and then on the host side, the user needs to discover the volume and create a datastore out of it.

    with the vCenter pluginif the user needs to create a data store, he can just log in to the web client and use the vCenter plugin wizard to create the datastore. In this wizard, the user can specify various volume configuration details like volume name, size and redundancy also select the hosts on which the datastore needs to be mapped and within 2 to 3 minutes, he can provide the datastore. So with the plugin, the storage provisioning task gets simplified to a great extent. Also, the web client plugin will allow the user to create datastore like iSCSI, FC and NFS.

  • Volume Snapshots: As we know, VMware ESXi supports creating snapshots of the virtual machine but there is no option available to create the snapshots of the data stores. With the web client plugin, one can take snapshots of the volumes backed by a datastore. Hence, the plugin will create the data store of the snapshot of the volume backing the datastore. Also, a user can schedule the snapshots and can revert to a particular snapshot whenever needed. The user can also clone the datastore from a particular snapshot of the volume.
  • Storage Events and Alarms: This is also a very important use case as far as the plugin is considered. With this plugin feature, the user can monitor the storage events through vSphere events and alarms panel. So for example, if there are any critical events on storage side like the storage capacity is 95% full, or few services on the storage services are not running (Stopped), a user will see those alarms in the alarms panel of the vCenter server and take a corrective action for it.
  • System Utilization and Performance monitoring: This plugin feature will allow the user to monitor the storage system statistics such as system utilization and performance. With this feature, one can monitor the system utilization statistics such as CPU, memory and disk utilization of the storage system. This data can be live data or historical data. The user can also monitor the system performance data such as IOPS, latency and throughput values on a storage side. This data can be represented in the plugin in graphical format.

Now let’s have an overview of the development and testing of the plugin.

To develop the plugin, we need to follow certain guidelines given by VMware. We need to create 2 projects. One project for the service layer and another one for UI of our plugin. The service project will contain the business logic of the plugin which consists of REST APIs from a storage server and vCenter server. UI will be developed using HTML5, Angular and Javascript. We will speak more in details in an upcoming podcast.

Once development is completed, we need to test the plugin across different versions of vCenter server and it is a very challenging job, because the support matrix for vSphere web client, is huge. So in the market, if you see, there are various versions of vCenter server like 5.5, 6.0 and 6.5. Also, all these versions are available in two flavors, one is windows based vCenter and other is the vCenter server appliance (vCSA). So, a tester has to scale out things for e.g.: on some versions of vCenter server, full testing can be done and on others, the user can do sanity testing.

One more challenge that normally testers face is – there are some known issues with the vSphere web client itself. So, in some cases tester needs to identify whether the issue is from the plugin side or it’s a defect in vSphere web client itself.

Also, in the market, there are various web browsers available like Google Chrome, Mozilla Firefox and Internet Explorer so tester need to test the web client plugin on all these browsers. In short, QA for web client plugin becomes a challenging task.

Also, with storage start-ups, we have observed that storage REST APIs are not fully stable. As vSphere web client plugin consumes storage REST APIs, if these are not stable, it might affect the development and testing of the web client plugin.

Once the plugin is developed and tested, then what should we do?  Release in field or certify the plugin from VMware.

The stakeholder should go for the web client plugin certification.

VMware has a program which allows the storage vendors to certify their plugin with the VMware.  The user needs to have TAP (Technology Alliance Partner) membership and should register for VMware SDDC Integration program. After that, the user can run a few manual tests and needs to fill out the questionnaire. The user can submit this result to VMware and can certify their plugin on a particular version of the vSphere web client. As far as the benefits are considered, storage vendors get VMware Ready branding for certified plugins which can be used for marketing purpose.

Also, certified plugins will be listed on VMware’s compatibility guide page.

Few other advantages include:

  1. Certified plugin ensures that your plugin adopts best practices provided by VMware
  2. Also, it ensures a better end-user experience
  3. Makes sure that your plug-in doesn’t adversely impact vCenter server

As we know VMware is deprecating Flex from vSphere web client and it will entirely in HTML.  Till 5.0 plugins were used using Flex UI. But from 5.5 onwards we can create a plugin using HTML and plug-in vSphere web client Flex UI. From 6.5 onward they have separate HTML web client for users. The plugins which were developed under Flex UI, then need to migrate to HTML. And the plugin which is developed in HTML needs to be changed in their UI code to support respective vSphere version (6.5 and 6.7).

Calsoft helps product companies develop plugins that manage storage subsystems from a single UI and perform a common set of storage provisioning and compute tasks without the need to switch between multiple management interfaces. Calsoft’s plugin development expertise extends across all major hypervisor providers including VMware, Microsoft, Linux, and Citrix. You can request this success story based on information in this article.

[Tweet “Overview of vSphere Web Client Storage Plugin ~ via @CalsoftInc”]