BLOG

Richard Seroter

Deploy .NET Apps to Cloud Foundry v2 with Iron Foundry

The Pivotal team recently made a significant upgrade to Cloud Foundry, changing how applications are deployed, staged, isolated, and routed. In order to work with this new model, Iron Foundry had to undergo some re-engineering work. Today, we’re proud to announce an initial release of a Cloud Foundry v2-compliant build of Iron Foundry.

The Iron Foundry team has spent some hard-core engineering time building a quality .NET extension to Cloud Foundry. Specifically, we’ve made the following three major updates:

  • Updated .NET DEA. Unlike the previous version of Iron Foundry which included a .NET port of Ruby DEA code, we now use the base Ruby DEA code that is part of Cloud Foundry. It’s been modified slightly to run on Windows, but by reusing the Ruby code, we can more easily stay in sync with improvements introduced by the Cloud Foundry team.
  • .NET Buildpack. Cloud Foundry v2 makes use of buildpacks to package frameworks and runtimes, and the Iron Foundry team has created a CLR buildpack that supports ASP.NET and (soon) standalone apps.
  • .NET Warden. The Warden in Cloud Foundry v2 provides application isolation and resource constraints. It takes advantage of native Linux capabilities and is a key part of the Cloud Foundry framework. We’ve created a Windows-oriented Warden that delivers a secure, isolated container for each application instance. This behavior isn’t natural for a Windows environment, so we’ve been creative in our initial design and are using the IIS web server via the hostable web core vs. the “full” IIS experience. However, we’re considering additional techniques for taking advantage of IIS capabilities (such as application pool recycling) that aren’t present in the hostable web core.

Cloud Foundry v2 introduced the cf tool that replaced the vmc tool that was used for Cloud Foundry v1 management. The cf interface includes an improved set of capabilities for interrogating, deploying, managing, and configuring Cloud Foundry environments and applications. Now with Iron Foundry v2, you can  use the cf tool against applications running in the .NET DEA! Push applications, scale up, scale down, and do all the things with .NET applications that you do with any other application running in a Cloud Foundry environment.

What’s next?

  • Today we’re releasing a complete set of instructions for pulling Iron Foundry v2 from its source on GitHub and building a working environment. Read the DEA installation docs here. We’re also providing an installer for the .NET Warden. Check out the .NET Warden installation docs here. Moving forward, we’re going to be creating a Micro Iron Foundry instance as well as an installer for the new .NET DEA.
  • We’re continuing engineering work on the .NET Warden and welcome any contribution from the community! We’re going to continue maturing the isolated, controlled Warden experience on Windows and would love your feedback.
  • Any issues you discover with the new DEA can be logged here in GitHub. Any general Iron Foundry issues should be logged here.
  • The public ironfoundry.me sandbox environment is still running Cloud Foundry v1, but we’ll be offering a v2-compliant environment soon!

We’re very excited that those running Cloud Foundry v2 environments can now use the best available .NET extension. Want to jump in and help out? Download the code, make changes, and submit a pull request in GitHub!