Trends in vCenter Plugin Development:

In the virtualization world almost everyone has a fair idea of vCenter plugin. It plays a very important role in performing various operations by integrating the storage, virtualization and networking technologies under one single user interface.

Traditional Way

New Way

All vCenter plugin code were written in plain java. Spring is used for writing the code.
Third party libraries were more in number as there weren’t any fixed framework. The number of third party libraries are reduced due to use of spring in the development.
Custom script with extra server were used for deployment of vCenter plugin on vCenter Server. Dedicated installer with cross platform are used for deployment.
Before vSphere 5.5 Update 1, developers were unable to use the HTML and Javascript which forces to implement UI in Flex. After vSphere 5.5 Update 1, developers are able to use latest UI technology like Angular JS to develop UI with the help of HTML bridge.
SDK does not provide virgo server in package hence, need to download serenity client manually. After vSphere 6.0, SDK contains virgo server for local deployment of OSGI bundles.


Challenges in vCenter Plugin Development:

  1. Set up dummy production environment:
  • For the sake of faster development, one cannot start implementation on the production environment directly
  • Multiple configurations of vCenters for each version of vSphere web clients SDK is needed on various platforms like Windows, Linux, Mac. It is according to the requirement of one’s client
  • Configuration and Installation of multiple flavors of vCenter on different operating systems is a lesser time consuming process
  1. Set up local development environment:
  • To develop code in the local environment, one needs to go through few steps of setup which is provided by the vSphere web client SDK
  • Setup guide provided by the vSphere web client SDK is the best way to set up one’s local environment. But at times certain problems are experienced during this configuration.
  • Following common problems are encountered during the configuration,
    • Selection of IDE :
      • One needs to select IDE carefully because when we develop vCenter plugin, we need to integrate the web server with the IDE.
      • If we want to develop a GUI with Flex then you allow to use Eclipse IDE with version 32 bit only, because flash builder is not supporting to 64 bit version of Eclipse.
      • If you are not using Flex for GUI then you can use any IDE like Eclipse, NetBeans, STS etc. but as per recommendation from vmware Eclipse is preferred for development.
    • Need to use recommended JRE version which was mentioned in vSphere web client SDK.
  1. OSGI framework and third party libraries:
  • vCenter supports the OSGI framework which deploys the code in OSGI compatible JAR/WAR called as Bundles. OSGI bundle requires all import dependencies/packages which are declared in their file. Hence one needs to fulfill all the dependencies before deploying any new bundle in the web server
  • To resolve all dependencies, third party libraries need to be added into the web server and these third party libraries must be OSGI compliant. Sometimes few third party libraries also need to resolve their own dependencies with the help of other ones
  1. Integration with HTML-Bridge:
  • In vCenter plugin distinct OSGI bundle is developed – one WAR for UI and another JAR to serve and process the request which was received from this WAR
  • Integration of these two bundles with each other through the spring MVC framework is necessary
  1. Testing:
  • After development of any feature, one needs to do unit testing on each version of vSphere client SDK and on multiple vCenters having different operating systems which are slightly time consuming but can’t be avoid it
  • The quality assurance team needs to carry out the same procedures to test any feature on local as well as production environment