When using a pay-as-you-go type service, you would like to see how much you have spent and how much you are going to pay at the end of the month. You might also want to have an insight on the cost of services for the last several months.
The native UI extensibility of vCloud Director (vCD), introduced in version 9.0, allows us to build any type of custom UI and incorporate it into the product to offer seamless user experience. This includes dashboards and charts - the ultimate visual aid for statistical data.
Solution Architecture
Our solution consists of 3 main components:
- UI extension, containing a dashboard with different charts presenting billing information.
- Storage, exposed through a vCD API extension, for retrieving billing data.
- Data Collectors, small scheduled processes that pull data from billing solutions (like VRBC).
You may wonder "Why are we not pulling the data directly from VRBC?". There are a couple of reasons:
- To optimize for performance, the data is ready to be consumed by the UI.
- To support different billing data sources. Often, the service providers charge not only for the infrastructure, but also for additional custom services they offer, e.g. API calls to messaging queue.
Solution Implementation (PoC)
Lets try to build a simplified version of this solution as a proof of concept.
Data
For our PoC, we will prepare the data manually in a JSON format.
API Extension
To serve the data we need an API extension.
Dashboard
Once we have the data served, we can display it using a charting library in the vCD user interface and present the showback information to the tenant administrator.