Pivotal Web Services Features

Behind the scenes with $ cf push

$ cf push


cf push uploads your files to the platform which transforms them into a running application.


Behind the scenes, your files go through staging scripts called buildpacks to create a ready-to-run droplet.


Diego is the container management system, handling application scheduling and management.


Your app receives an entry in a dynamic routing tier, which load balances traffic across all your app instances.

Simplified build and deploy cycles

Supported languages include Go, Ruby, Java, and Node

Default Buildpacks, no headaches

Buildpacks let you push applications so they just simply work. Run apps written for Java, Grails, Play, Spring, Node.js, Ruby on Rails, Sinatra or Go with default buildbacks. If you need another language, use a community buildpack or write a custom one.

How does it work? When you push your application, the system iterates over a list of default buildpacks until one is found for your app. It installs the correct runtime (JVM, Ruby or JavaScript interpreter), containers (web servers), supporting libraries, and packages (Ruby gems or NPM packages). Buildbacks then put your app bits into the runtime or container and builds the start command. This frees you from configuring the container or dealing with memory settings. Retain fine-grained control of your dependencies by forking a buildpack.

Bind services to your applications

Choose 3rd party databases, email services, monitoring and more from the Marketplace. Add this service to your dev, staging, or production space. Using the Command Line or Web Console, bind the service from your space to one or many applications. 'Binding' generates a secure set of credentials to connect to those resources. PWS places all service configuration and connection in environment variables, letting your application stay portable across multiple environments and providers. You can let Pivotal Web Services auto-configure a service connection so your app doesn't have to manually parse environment variables.

Powerful Tools for Operations and Monitoring

Developer console supports mobile and desktop devices

Performance monitoring

The PWS Developer Console helps you easily view all your development spaces, applications, their status, number of bound services, etc. Drill down into each application and see each instance, its status, and resource consumption.

For more monitoring, use New Relic with PWS's zero-touch configuration. For Java applications, simply create and bind a New Relic service to your app. For other languages like Ruby or JavaScript install the NewRelic agent first.

Active health monitoring

Your app is highly available in production thanks to an automated Health Manager. If one of your app instances exits due to an error or if the number of instances running is less than what you originally specified through cf push or cf scale, the platform provides fast, automated health recovery and updates the app log when events happen. Health Manager is a highly available clustered service, so you can rely on it to keep your app running.

Unified Log Streaming

Use one real-time streaming log API to track application events: lifecycle, system components such as CloudController, router HTTP access logs, crash logs with exit reason, and of course, application events written to STDERR and STDOUT.

Tail the log interactively or use a remote syslog drain to your favorite 3rd party tool like Splunk or logstash for deeper analysis. Log entries are scoped to a unique application ID and instance index so you can correlate across multiple events.

Web Console built for team-based Agile Development

View application status, teams, and usage on the web console dashboard. Organize your software by spaces, a flexible way to group applications and services in the way that makes sense to you. You can organize by lifecycle stage such as development, stage and production or by grouping related applications and services into richer applications. Connect spaces with your continuous integration pipeline by lifecycle stage. Track usage quotas and billing across all your spaces with GitHub-like organizations that can contain custom domains. You can share access to spaces with a granular set of roles and permissions.

Extend and integrate


Choose from and connect your app to a wide variety of popular services from the Marketplace such as MySQL, PostgreSQL, Mongo, Redis, SendGrid email, NewRelic monitoring, RabbitMQ and more with a single click. Predict all your charges on one bill and even share services across applications to get the most from each provider. You can manage each service directly from within your Pivotal Web Services Developer Console.

Extending buildpacks

Don't see your language or framework in our built-in buildpacks but want the convenience of PaaS? Choose a community buildpack and go! There are buildpacks for most languages or frameworks on Linux such as Erlang, Haskell, Clojure and more. Or create your own custom buildpack for your language ‐ all you need to do is detect your framework based on your app files, download the framework and create the app start command. Or maybe you want a different version of Java, Ruby, Go, Python or PHP than we run by default. You can fork our buildpacks to customize the framework and runtime version, application server or even auto-configure services for your app.

Existing data stores

Activate the full power of your app by connecting it to existing data stores, either on-premises or in the cloud, such as Amazon S3, Cassandra, Oracle, SQL Server and more. Simply create a User Provided Service with the connection information and credentials for your service, bind it to your app and re-push. You now have instant connectivity to your data, on your terms.