Windows, Docker, and Buildpack Apps in One Platform

September 11, 2015 James Bayer

sfeatured-pcfPivotal Cloud Foundry now runs Windows, Docker, and Buildpack apps on a single, integrated platform! By supporting these three types of apps, we believe this is the most comprehensive Cloud Native platform available. Of course, it not only includes the capabilities needed to get up and running with these three types of apps, but also the “day 2” operations capabilities needed to keep the apps up and running and continuously update them, on demand.

If you want to try it out, the software is free to download and evaluate from Pivotal Network. Install Elastic Runtime 1.5 and the Diego Beta on AWS, vSphere, vCloud, CenturyLink Cloud or Openstack. As always, this follows our multi-cloud goals so that you can run this on whatever type of infrastructure you need: on-premise or in the public cloud.

Expanding the Cloud Native Platform


See this video, demonstrating a Java Spring, Windows app, and Docker app all integrated with Pivotal Cloud Foundry.

Elastic Runtime has always supported buildpack apps, which now include official support for six programming languages (Java, Ruby, Node.js, Go, PHP, Python) and static websites. With this beta, developers also have the ability to deploy Docker images and Windows apps in Pivotal’s commercial distribution of Cloud Foundry. Both Docker and Buildpack apps run on Linux hosts, and Windows apps run on Windows Server 2012R2 hosts.

Regardless which type of app you deploy with the simple cf push experience, the platform provides:

  • Dynamic routing—blue/green deploys and self-service app domains
  • Aggregated logs—instant tail access and syslog export
  • Team management —user auth from enterprise identity providers
  • Services marketplace—self-service and on-demand services for developers
  • Container scheduling —intelligent placement for HA and resource optimization
  • Health management —the platform restarts failed app instances
  • App autoscaling —the platform scales apps on developer-defined thresholds
  • Zero Downtime Upgrades—apps and the platform can be upgraded without downtime
  • Infrastructure Automation—VMs are created, updated and maintained by the platform


Originally popularized by Heroku, Cloud Foundry buildpacks make it quick and easy for developers to deploy their app code by delegating the job of assembling and deploying their apps to the cloud platform. The cloud platform has responsibility for assembling the latest, secure versions of the app middleware, runtimes and operating system. Developers only have to take responsibility for their app code rather than owning responsibility for building and maintaining an entire image that contains app code, middleware and operating system files. Because the cloud platform is doing the assembling and deploying, the resulting app is also highly instrumented and otherwise made manageable, automating much of the work needed to make app operations friendly in production. Buildpacks are also a popular extension point with a large ecosystem of developers all over the world that have created buildpacks for many different types of applications. The java buildpack makes it super simple to use with Spring Boot applications as you can see with this example app.

Windows and .NET Apps

Many of our customers have a significant footprint of both Windows and Linux in their application portfolios, and their developers have years of experience in Windows that they want to keep taking advantage of. Windows developers need a simple integrated platform just as much as the Linux developers do! After collaborating with Microsoft and others in the Cloud Foundry open source community for several years, we believe Windows apps are ready to be first class citizens in Cloud Foundry. Cloud Foundry has incorporated the best available isolation technology in the widely deployed Windows Server 2012R2. The existing Windows APIs do a great job of providing Windows containers with very fast startup and high app density per host. Microsoft is very active in improving the containerization capabilities in future versions of Windows, and Cloud Foundry will continue to improve these capabilities, tracking along with each new version of Windows Server. To deploy a Windows app, it’s as simple as cf push MYAPP -s windows2012R2. The app can be any Windows compatible executable and supporting files compatible with Windows Server 2012R2 including .NET. The result is a compiled, running .NET application on Windows 2012R2 inside a Diego cell. Check out the Nora sample app or the .NET MVC example from the video.

Docker Images

Over the last several years, Docker images have emerged as a popular option for assembling portable container images. Sometimes, developers and operations want total control and responsibility for all of the layers in the app container. For example, Docker images enable you to customize almost all layers of an app, even going so far as to make it possible to use a different operating system than the host! Thus far, the downside of getting total control has been worrying about how your cloud platform does orchestration and management of the images once they are in production. We’ve been working on solving for that problem so that teams can start using Docker images and still get all the orchestration and management benefits of Cloud Foundry. Now, deploying a docker image app can be as simple as cf push MYAPP -o DOCKER-IMAGE-REF where the image is from an accessible Docker Registry such as the lattice-app on Docker Hub.

Beta on a Path to General Availability

The Docker and Windows functionality are currently considered Beta, but Pivotal intends to change the status of these features to Generally Available with the next release of Pivotal Cloud Foundry. The next release is also expected to introduce new functionality for policy-enforced ssh access to app containers for advanced troubleshooting and a number of other features.

Note that for the Beta release, Docker functionality is limited in a few ways. Diego is not detecting the port or user from the Docker Image, so Docker applications must runnable as the vcap user and listen on port 8080. With the Elastic Runtime 1.6 release, the platform will detect the user and port from the Docker image and correctly make these connections.

The Platform for Cloud Native Apps

Developers and operators want a uniform experience but want to maintain as much freedom as possible when it comes to choosing how they develop their apps. An integrated platform enables development and operations teams to be incredibly productive and efficient, which, in turn, enables them to be more responsive than ever to their business stakeholders and customers. As always, we’ll have more to say about getting from here to there—both when it comes to process and technology. In the meantime, if you’ve been held back from going down the Cloud Native path by lack of Windows and Docker support, try out the beta support for Windows and Docker apps in Pivotal Cloud Foundry and let us know what you think!


About the Author


More Content by James Bayer
Fine Tuning Pivotal HAWQ and EMC Isilon HDFS
Fine Tuning Pivotal HAWQ and EMC Isilon HDFS

For fine tuning Pivotal HAWQ on EMC Isilon’s HDFS, there are a number of configuration and performance para...

Christian Tzolov on Open Source Engineering, the ODP and Pivotal
Christian Tzolov on Open Source Engineering, the ODP and Pivotal

Christian Tzolov has worked on some really amazing projects in his life—artificial intelligence, data scien...

Enter curious. Exit smarter.

Register Now