GemFire for Pivotal Cloud Foundry (PCF) enables you to easily configure and provision complete Pivotal GemFire client/server clusters using Pivotal Cloud Foundry. A Cloud Foundry Administrator can easily configure three different types of GemFire clusters (service plans) using different numbers of locators and servers, as well as different resources per cluster node for each service plan. Each service plan instance uses GemFire best practices to automatically configure JVM resource utilization and garbage collection settings, taking into consideration the resources available on the cluster node. Service instances are dedicated, not multitenant, by default, but they can be used by different applications, if desired. Allocating a service instance provisions a GemFire cluster from the pool of available unallocated GemFire clusters that were instantiated during the tile installation. GemFire processes, locators and servers, run in dedicated VMs.
Pivotal provides the GemFire Pulse Web application gfsh command-line utility to help you monitor manage the service instances that you deploy. In addition, Pivotal provides a Cloud Foundry CLI plug-in that developers can use to perform the most common GemFire cluster management operations such as:
- Restarting the cluster
- Downloading cluster configuration files, log files, or statistics
- Uploading custom cluster configurations.
Finally, GemFire for Pivotal Cloud Foundry provides a custom rest URL to help you easily use the GemFire REST API with a bound service instance. Requests to the URL automatically round-robin to available cache servers, so there is no need to associate REST requests with a specific server.
How Does the Service Work?
PCF Administrator Workflow
The following diagram depicts the high-level workflow for deploying the GemFire service.
Figure 1. Installing and Configuring the Service
Pivotal Cloud Foundry Administrator imports the GemFire service product file into Pivotal Cloud Foundry Operations Manager.
When a Pivotal Cloud Foundry Administrator configures the GemFire service for the first time, they define the number of discrete service instances for each GemFire Service Plan. A service instance is a GemFire cluster. GemFire for Pivotal Cloud Foundry enables you to configure instances for three different GemFire cluster configurations, where each instance can provide a different number of locators and cache servers, as well as memory and disk space resources.
After making their configuration choices, the Pivotal Cloud Foundry Administrator deploys the service, causing Pivotal Cloud Foundry Ops Manager to create and setup the appropriate set of virtual machines.
Operations Manager deploys a virtual machine to run the GemFire Service Broker, which is responsible for allocating GemFire Cluster service instances to Pivotal Cloud Foundry users and for passing relevant information into the applications that are bound to each service instance.
Operations Manager also deploys the specified number of GemFire service instances (clusters) as configured by the administrator. Lastly, there are a few temporary VMs used for install and uninstall errands.
After the service has been deployed in Operations Manager, it is ready for use by application developers in the Elastic Runtime environment. The following diagram depicts the high-level workflow that an application developer would use to consume the service.
PCF Developer (Service User) Workflow
Figure 2. Using the Service
Pivotal Cloud Foundry Developer uses the CLI or Developer Console to create a GemFire service instance in the Elastic Runtime space where they are pushing the relevant applications.
Creating a service instance causes Elastic Runtime to contact the GemFire Service Broker, which allocates one un-allocated GemFire cluster of dedicated virtual machines to the GemFire service instance. In the response to Elastic Runtime, the Service Broker includes the URL to reach the GemFire Pulse monitoring tool for the service instance. The Elastic Runtime exposes this URL in the Developer Console’s metadata for the service instance.
Pivotal Cloud Foundry Developer pushes their application to Elastic Runtime.
Pivotal Cloud Foundry Developer binds their application to the GemFire service instance. The GemFire Service Broker populates the application’s VCAP_SERVICES environment variable with the metadata required to access the GemFire service instance’s locators and cache servers.
Pivotal Cloud Foundry developer can configure, monitor, and manage the cluster using Pulse and/or the GemFire for Pivotal Cloud Foundry CLI plug-in.