On-Demand Service Offering

Page last updated:

Redis for PCF offers on-demand and shared-VM service plans. This section describes the architecture, lifecycle, and configurations of the on-demand plan, as well as networking information for the on-demand service. For similar information for the Shared-VM plans, see Shared-VM Service Offering.

Architecture of the On-Demand Plan

This diagram shows the architecture of the service broker and on-demand plans and how the user’s app binds to a Redis instance.

The p.redis service broker manages the on-demand service plan instances.
The operator uses Ops Manager to configure the plans.
App-developers can create instances of each plan on-demand up to a set quota, and bind their apps to these instances.
The operator specifies the per-plan and global quotas.

TLS in Redis for PCF

You can enable TLS to secure traffic between apps and service instances. In Redis for PCF, the available options are Optional and Not Configured.

TLS Set to Optional

When setting TLS to Optional within On-Demand Service Settings, both TLS and non-TLS connections are accepted. TLS traffic goes through a proxy as shown in the diagram below. Enabling TLS is not expected to noticeably reduce performance. This depends, however, on network infrastructure, application architecture, and other such resources being in good shape.

Pivotal recommends setting TLS as Optional, because it allows app developers to migrate to TLS connections regardless of whether traffic is restricted to just TLS connections.

Note: The option to enforce TLS only is not supported in Redis for PCF.

Steeltoe and Spring apps use the TLS port by default, if it is available. Other apps might require further configuration to make use of the correct port.

The diagram below shows how apps communicate with on-demand Redis instances when you set TLS to Optional.

The bound app can connect to the Redis service on the on-demand Redis service
instance VM through a TLS proxy or connect directly.
The TLS proxy and Redis are both on the Redis service instance.
The traffic is secure from the app to the TLS proxy.
Once on the service instance, the traffic from the TLS proxy to Redis is unsecured.

TLS Set to Not Configured

When setting TLS to Not Configured within the On-Demand Service Settings, the communication with service instances remains unchanged from Redis for PCF v2.1 and earlier.

The diagram below shows how apps communicate with on-demand Redis instances when you set TLS to Not Configured.

The bound app connects directly to the Redis service on the on-demand Redis service instance VM.
The traffic on this connection is unsecured.

On-Demand Service Plans

Three On-Demand Cache Plans

On-Demand plans are best suited to cache-use cases and are configured as such by default.

Redis for PCF offers three on-demand plans as the p.redis service within the PCF Redis tile. Below is a description of each plan as it appears in the Marketplace along with its intended use case.

  • Small Cache Plan: A Redis instance deployed to a dedicated VM, suggested to be configured with about 1 GB of memory and more than 2.5 GB of persistent disk.
  • Medium Cache Plan: A Redis instance deployed to a dedicated VM, suggested to be configured with about 2 GB of memory and more than 5 GB of persistent disk.
  • Large Cache: A Redis instance deployed to a dedicated VM, suggested to be configured with about 4 GB of memory and more than 10 GB of persistent disk.

For each service plan, the operator can configure the Plan name, Plan description, Server VM type and Server Disk type, or choose to disable the plan completely. Set the persistent disk size to least 2.5 times the memory of the instance.

Features of On-Demand Service Plans

  • Each on-demand service instance is deployed to its own VM and is suitable for production workloads.
  • The service plans are operator-configured and enabled. Once enabled, app developers can view the available plans in the Marketplace and provision a Redis instance from that plan.
  • Operators can update the cache plan settings, including the VM size and disk size, after the plans have been created.
  • Operators and app developers can change certain Redis configurations from the default. See Configuration for On-Demand Service Plans below for more information.
  • The default maxmemory-policy is allkeys-lru and can be updated for other cache policies.
  • On-Demand Redis supports Redis Database Backup (RDB) snapshots, but not Append-Only File (AOF) persistence. For more information, see Redis Persistence in the Redis documentation.
  • The maximum number of instances is managed by a per-plan and global quota. For information about setting quotas, see Setting Limits for On-Demand Service Instances.

Configuration of On-Demand Service Plans

For on-demand plans, certain Redis configurations can be set by the operator during plan configuration, and by the app developer during instance provisioning. Other Redis configurations cannot be changed from the default.

Operator Configurable Redis Settings

The Redis settings that an operator can configure in the tile UI include:

  • Redis Client Timeout
  • Redis TCP Keepalive
  • Max Clients
  • Lua Scripting
  • Plan Quota

For more information, see On-Demand Plan Settings.

App Developer Configurable Redis Settings

The Redis settings that an app developer can configure include:

  • maxmemory-policy
  • notify-keyspace-events
  • slowlog-log-slower-than
  • slowlog-max-len

For more information, see Customize an On-Demand Service Instance.

Operator Notes for On-Demand Service Plans

  • Instances of the on-demand plan can be deployed until their number reaches either an operator-set per-plan quota or a global quota. For information about setting quotas, see Setting Limits for On-Demand Service Instances.
  • Instances are provisioned based on the On-Demand Services SDK and service broker adapter associated with this plan.
  • maxmemory in redis.conf is set to 45% of the system memory.
  • Any on-demand plan can be disabled from the plan page in Ops Manager.

Known Limitations for On-Demand Service Plans

Limitations for the on-demand service include:

  • Operators must not downsize the VMs or disk size as this can cause data loss in pre-existing instances.

  • Operators can update certain plan settings after the plans have been created. To ensure upgrades happen across all instances, set the upgrade instances errand to On.

  • If the operator updates the VM size, disk size, or the Redis configuration settings, thereby enabling Lua Scripting, max-clients, timeout, and TCP keepalive, then these settings are implemented in all existing instances.

Lifecycle for On-Demand Service Plan

Here is the lifecycle of Redis for PCF, from an operator installing the tile through an app developer using the service then an operator deleting the tile.

On-Demand Lifecycle Diagram