Service Development Roadmap

Pivotal recommends that developers create service tiles iteratively, starting at the lowest level of integration and successively re-developing their code for increasing levels of integration.

The topics in this section map out this iterative development process.

  1. Level 1: User-Provided Service

  2. Level 2: Brokered Service

  3. Level 3: Managed Service

  4. Level 4: On-Demand Service

Level 1: User-Provided Service

A PCF developer can call your service from their app code, even if the service runs outside of PCF and has no service broker. Use cases for this include:

  • Your software is available as a SaaS.

  • You already have a way to install your software on-premises at a customer site.

  • Your customer already uses your software, is now adopting PCF, and wants to consume your software from applications that they deploy on PCF.

To use an external service that has no tile, they do the following from the the Cloud Foundry Command-Line Interface (cf CLI).

  1. Run cf create-user-provided-service MY-SERVICE-NAME -p CREDENTIALS (or cf cups) to create a service instance. The CREDENTIALS argument should be a valid JSON string that contains the URL and credentials necessary to connect to your externally-deployed service.

  2. Run cf bind-service to bind the service instance to their app.

By doing this, app developers can bind their apps to your service and write all code necessary to access it through a Cloud Foundry service binding.

This do-it-yourself solution represents the lowest level of PCF service integration. It works only for services running external to PCF, and does not publish the services to the Services Marketplace or make them available to anyone outside the space of the developer who runs these commands. See the User-Provided Service Instances topic for more information.

Running apps with a user-provided service is a great way to determine what information needs to be passed in the credential structure (useful in higher integration levels), verify that the integration works, and develop a test app that can continue to be used at higher levels. From the app developer perspective, once a user-provided service works, later integrations of the service will not require any further code changes. User-provided service bindings are fully forward-compatible with brokered service bindings.

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