Enhancing automated vSphere deployment feature of a software defined application deployment and management platform.

Some of the problems included:

  • Company’s product required extending and customizing its automated vSphere deployment feature
  • Content needed to be uploaded programmatically to vSphere datastore
  • Content needed to be copied programmatically between vSphere datastores
  • OVF artifacts needed to be imported and deployed programmatically to vSphere
  • VMware VI (vSphere) Java API version used did not support configuring read and connect timeouts before creating service instance
  • Lack of configurable read and connect timeouts caused hangs for a long time during vCenter downtime or intermittent problems
  • Some legacy code was coupled to VMware VI (vSphere) Java API directly instead of using abstraction layer thus requiring modifications in order to use the new API
  • API requests and responses needed to be captured for debugging of failed requests, however modifying legacy code directly to collect API requests’ and responses’ data was not possible as it would introduce cyclic dependencies

Some of the solutions applied included:

  • Upgrading to latest version of VMware VI (vSphere) Java API for configurable read and connect timeouts
  • Migrating legacy code to use new version of VMware VI (vSphere) Java API
  • Implementing on-demand programmatic uploading of content to vSphere datastore, with configurable timeout, cancelable operation and progress monitor
  • Implementing on-demand programmatic copying of content between vSphere datastores, with cancelable operation
  • Implementing on-demand programmatic importing of OVF artifacts from content repository and deploying them to vSphere
  • Introducing collecting parameter class to be passed to VMware VI (vSphere) Java API client for collecting API requests’ and responses’ data as a workaround for cyclic dependencies issue
  • Implementing capturing of API requests and responses for debugging of failed requests
  • Implementing configurable connect and read operation timeouts via additional parameters passed when creating instance of VMware VI (vSphere) Java API client

Technology stack

  • Java
  • Spring
  • OSGi
  • vSphere
  • VMware VI (vSphere) Java API
  • Apache HttpComponents
  • Apache Commons CLI
  • Apache Commons IO

Industry

IT