The Cloud Foundry .NET team has recently completed a significant milestone. Through a great partnership between Pivotal, CenturyLink, and IronFoundry we have made strides toward offering fully integrated Windows support on the Cloud Foundry platform. This support allows .NET applications the same access to the Cloud Foundry that Linux applications currently enjoy.
What do we have so far?
We started with an IIS Hostable Web Core (HWC) to provide the process, CPU, and memory isolation for the Window service. We combined that capability with the Iron Foundry Container library. The outcome is a container for .NET applications that can be deployed and managed on the Cloud Foundry platform.
We are now eager to open the repo and give the Cloud Foundry community an early look at the work that is underway. The repo on GitHub provides our Cloud Foundry community the ability to implement Windows support in the Diego release.
The repos that are now available on GitHub include:
- windows_app_lifecycle—The Windows architecture relies on App Lifecycles, an extension of Diego, to provide the deployment strategy. The App Lifecycle provides the binaries that manage the lifecycle of a Cloud Foundry application. The App Lifecycle includes the Builder, Launcher, and the Healthcheck binaries, which when combined together allow you to build, launch, and manage your applications.
Builder downloads the appropriate buildpack, as well as the necessary application bits, and then produces a droplet. Launcher initiates the deployment of the application, essentially running the start command with the correct system context. Launcher uses a standard rootfs environment. Healthcheck provides an ongoing health check of the application inside the container. The health check is done via a TCP port check, which by default is done over port 8080.
- garden-windows—Garden Windows serves as a Windows backend for Garden. Garden is required for diego, and is essentially a container for applications that are running on Cloud Foundry. Garden enables a platform-neutral API for containerization. Garden-windows provides the Windows backend for this API.
- containerizer—Containerizer is the soon to be renamed C# project that allows the Windows kernel calls to containerize your application. This is where the container magic happens for .NET applications.
- diego-release—The repo updates included a new branch in the diego-release repo. The additions include all of the updated necessary to run a Windows stack in Diego. Specifically, you want to look for sync-package-specs and sync-submodule-config.
What Does This Mean?
We achieved a major milestone towards having a Windows container on Cloud Foundry. The repo contains working code that will allow a .NET application to run on a Cloud Foundry platform that is running Diego. You get all the speed and agility of Diego for .NET applications.
The team continues to work diligently to complete the next major milestone—a true Beta release. The Beta release will include an MSI installer, for easy deployment into an existing Diego environment. You can follow the team’s progress in our Tracker. We look forward to collaborating with the Cloud Foundry community on this important feature.
Thanks to an Amazing Team
We have an amazing team of developers from Pivotal, CenturyLink, and IronFoundry that continue to support the Windows effort. Shout out to: Mark Kropf, Mike Dalessio, David Varvel, Dave Goddard, David Morhovich, Brannon Jones, Bob Brumfield, Chris Sterling, Matt Cholick, and Jared Gordon.
- Follow the .NET Project in our Tracker
- Check out other Pivotal Cloud Foundry blogs
- Learn more about Pivotal Cloud Foundry
About the Author