.NET on Pivotal Cloud Foundry PAS

.NET enterprise portfolios are complex. Much of the enterprise cloud-native efforts have been focused on Java, but there is a growing focus on .NET applications on modern cloud-native platforms.  For the last 3 years, Pivotal has shipped the capability to run Windows .NET Core apps and now .NET Framework apps on our cloud-native platform.

This blog post borrows liberally from William Martin’s excellent talk, “New Capabilities and Product Strategy for .NET on PCF” from SpringOne Platform September, 2018.  Please go watch that presentation now!

Workloads in the enterprise are often not as easily portable as you would like. Dependencies installed on the host or the use of OS based APIs are hard to overcome. The workloads can be difficult to modernize, but there is a high cost to maintain legacy applications. Windows server licenses, outdated frameworks, or other dependencies increase the risk of adopting new architectures. It can be difficult to adopt new Windows versions, and even at EOL, Windows server 2008 still has a strong install base. Some workloads are not worth rewriting in .NET Core, despite the promising yet still feature incomplete capabilities of the new framework.

There are opportunities for Windows enterprise workloads. Docker is emerging as a supported container platform. .NET Core is both a challenge and an opportunity to create a more cloud-native and portable application portfolio. Azure services are an interesting technology to create hybrid cloud capabilities. The learnings from the OSS world around microservices, event sourcing, service mesh, container orchestration, functions, etc. are all advantages that the .NET world can take advantage of.

There exists, however a chasm between the challenges faced to day and the capability of an organization to adopt the patterns that promise a bright future.

Pivotal is engaged in a mission to establish a cloud-native .NET renaissance and provide an opinionated vision of a complete transformation platform. PAS as a platform can host the most transformative and important .NET nand Windows applications. It is a cloud-native platform for .NET Core microservices together with .NET Framework and Windows hosted services. The adapability of the platform to dev teams needs allow developers to move faster in their transformation.

netporfolio

Pivotal’s approach to transformation practices are created out of the Linux cloud-native world, and leverage that experience addressing the specific needs of Azure and 365 developer strategy. We seek to achieve a capability parity between Linux and Windows workloads. We are secure by default in our implementation and practice. Our AppTx teams have created best practices for cloud native app creation and migration. We focus on the core benefits of sustainable security, speed, stability, scale, and cost savings which are applicable to any language or framework. We seek to continuously refine and co-create these practices with the entire .NET community and with our customers.

netpractices

Ultimately Pivotal is attempting to provide all the benefits of automation for the speed of deployment release, and the safety and security of going fast at scale.

pasw-01

In 2015 Pivotal introduced Diego for Windows using a third party container runtime.  This provided developers with the “cf push” experience, but operators were left behind since they had to procure and deploy the Windows VM’s themselves.

pasw-02

 

In 2017 Pivotal released the PCF Runtime for Windows that gave Operators the benefit of being able to deploy the Windows VM’s automatically through BOSH.  This still used the third party container scheduler, as Microsoft had not released native functionality by this time.

pasw-03In March of 2018 Pivotal released the Pivotal Application Service for Windows using the native Windows Server 2016 Containers engine.

Pragmatically we offer the same set of capabilities to .NET users as well as Java.


Pivotal Application Service for Windows (PASW)

BOSH can deploy Windows Server VM’s.  We leverage the Windows Server Core base image from Microsoft as our stemcell that can support .NET Framework as well as .NET Core.  For the containers, we don’t use either Docker or IIS.  We drop down and use Hosted Web Core and the native Windows Container APIs to create and manage the lifecycle of containers.  You build your app in visual studio, and then you cf push your code into PAS.  With buildpacks the code, the dependencies, and the rootfs are bundled into a droplet container.  The contract between all these immutable elements allows us to guarantee a consistent OCI compliant image where the application instance runs once and then every time at scale.

pasw-whichapps