Embedding vCloud Availability Portal into vCloud Director UI

Some time ago I blogged about the possibility to link to vCloud Availability Portal directly from vCloud Director UI (here and here). This was done by inserting custom links into the vCloud Director Flex UI.

vCloud Director 9.x tenant HTML5 UI provides much richer possibilities to embed additional links, pages and full websites. My colleague Kelby Valenti wrote two whitepapers and one blog post how to do so.

Extending VMware vCloud Director User Interface Using Portal

ExtensibilityExtending VMware vCloud Director User Interface Using Portal Extensibility – Ticketing Example

Publishing vCloud Director User Interface Extensions

VMware also already released one service that integrates its UI into vCloud Director – vRealize Operations Tenant App.

In the below screenshot you can see VCD UI extended with five new sections that appear as additional menu options next to Datacenters, Libraries and Administration:

Stub Module – default example included in the UI Extensibility SDK providing static page example (Terms of Service, etc.).

Operations Manager – above mentioned vRealize Operations Tenant App

Blog – this blog embedded as iframe.

Documentation – Static page with links to vCloud Director documentation.

The last module is the vCloud Availability 2.0 portal – the subject of this article:

It is also embedded using iframe.

I am attaching the source files so you can download and adapt them for your purposes. You will also need the SDK and I recommend deployment automation created by Kelby as described in his blog post listed above.

Some notes:

  • The actual link to the portal is in the src/main/vcav.component.ts file. In my case it is https://portal.proxy.cpsbu.local so replace it with the correct link for your environment.
  • For security reasons the vCloud Availability portal prohibits being rendered in browser frame by setting  X-Frame-Options header to DENY. To work around this limitation I am replacing the header with X-Frame-Options: ALLOW-FROM <VCD-url> on the existing load balancer that is load balancing my two vCloud Availability Portal nodes as well as redirecting external port 443 to appliances’ port 8443. This is done with NSX Edge Gateway, SSL termination and the following application rule:
  • The link to the portal is also passing the vCloud Director session authentication token for Single Sign-On. Note that however in the current release (2.0.1) this functionality is broken.

 

DBaaS with vCloud Director

Database-as-a-Service (DBaaS) is an additional service on top of IaaS offering that gives the tenant opportunity to easily provision databases for her VMs without the need to have DB Admin skills. Although database could be provided as a VM catalog template – it is not not that simple. When such template is deployed, the DB inside must be properly sized, licensed, configured and continuously managed (e.g. back-up). DBaaS solves this by abstracting all those tasks.

VMware vFabric Data Director (vFDD) is the component from VMware software stack that does all that was written above. This post will not go into too much detail how vFDD works, instead it will concentrate on the new capability of vCloud Director 5.5 to integrate with vFDD and to enable simple consumption of database services.

First of all we need vFDD installed and running. It comes as two VM virtual appliance that needs vSphere resources to manage and to deploy the databases into. The concept is very similar to vCloud Director and also the GUI looks very familiar.

Data Director

It can be integrated with vCenter Single Sign-On and vCloud Director.

vFDD Integration

The vSphere resources (clusters, resource pools) can be completely independent from vCloud Director infrastructure. This simplifies licensing for MS SQL or Oracle as dedicated CPU sockets can be licensed only. We need to create database templates. vFDD supports Oracle (10gR2, 11gR2), MS SQL (2008/2012) MySQL (5.5) and VMware vFabric Postgres (9.1/9.2) databases. These templates are then used to provision database VMs as needed.

vCloud Director 5.5 has a new Service Extension menu. It is not visible by default and must be enabled with a vCloud API call. We can see that the Data Director service was properly integrated.

VCD ExtensionsEach extension can provide multiple service offerings which must be associated by vCloud System Administrator with tenant’s Org VDC in order to be consumed by the end-users. In my case as I have created only Postgres DB template in vFDD I see only one service offering which I am going to associate with ACME Org VDC.

Service OfferingNow Organization Administrator will see new “Service Offering” tab in his Org VDC with the service offerings available to be consumed.

Service Offering - tenant view Each individual database service can be provisioned by the tenant from My Cloud – Services menu.

DB ProvisioningThis takes a while as the DB virtual machine is cloned by vFDD, powered-on and configured. The provisioned DB can now be associated with a VM. This is just a logical association – it does not actually do anything to do application running inside the VM. The VM owner can see the service instance parameters (connection string, password, …) in vCloud Director GUI and can properly configure her application to access the database.

Service Consumption

The service extension in vCloud Director is universal and could be used for association with other services besides Data Director. Cloud Foundry can provide RabbitMQ AMQP message bus services. I can see this to be used for other services such are NFS or backup.