$ 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.
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.
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.
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.
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.
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.
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.
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 from Pivotal 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.
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.
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.