On-Demand Service

This topic explains how to integrate your software as an on-demand service and service tile for PCF.

Overview

Brokered service and managed service integrations assume that you have a single VM instance deployed for your software deployed, or a limited number of VMs.

These VMs can be multi-tenant, and you can possibly scale them manually to accommodate many concurrent applications. But for real production deployments, most of your customers will want dedicated VM instances of your service for each application.

On-demand (dynamic) services enable this flexibility in a scalable way. When an operator deploys the service, do not pre-allocate VM resources for service instances. Instead, they define an allowable range of VM memory and CPU sizes and create a dedicated network on the IaaS to host any required number of service instance VMs.

When a developer creates an instance of an on-demand service, they provision its resources within the allowed range, and BOSH dynamically creates a new, dedicated VM for the instance.

Create an On-Demand Service

The best way to create an on-demand service is to use the On-Demand Services SDK.

The on-demand services SDK provides a generic on-demand service broker (ODB) that Tile Generator can consume like any other service broker.

The on-demand service author does not write a service broker. Instead, they write a service adapter component that takes requests from the ODB and interfaces with their service software to fulfill requests from the ODB.

To create their tile, the tile author then feeds their service adapter and the BOSH release of the ODB to Tile Generator.

  • [On-Demand Services SDK] documentation explains how to write a service adapter for an on-demand service that uses the ODB.

  • Once you have the individual components for your brokered service integration, you can work through the development steps to create your tile.

At any level of integration, Pivotal recommends and supports using Concourse for continuous integration during development.

High Availability

If you had not already configured your service for High Availability as a managed service, the final step would be to consider how you can make each of your dynamically-provisioned service instances more highly available.

Create a pull request or raise an issue on the source for this page in GitHub