As a .NET developer, you should be feeling pretty good about the recent and continuing .NET renaissance. Microsoft finally embraces open source software. You can now run .NET Core workloads on Linux servers. There is actually support for containers in Windows 2016. It's a whole new world.
Still, many enterprises have hundreds or thousands of Windows servers all running IIS and hosting lots and lots of .NET applications. So these welcome changes are a nice step forward, but there are still some questions to answer. Can you migrate your .NET footprint to the cloud? How do you manage all these Windows machines? Where should you run your .NET Framework apps?
Picking a Platform for Running .NET Workloads
If you're asking these kinds of questions, you probably already know the value of a cloud application platform. Among other things, running apps on a platform offers increased productivity for developers. It helps to abstract out much of the undifferentiated heavy lifting of managing infrastructure and other primitives.
So you've got to pick a platform. There are some options out there. Maybe you've played with Kubernetes a bit. Perhaps your management is keen to use native public cloud services.
Except, you've got all this .NET stuff. Do you plan on refactoring everything to use .NET Core? If not, you're going to need things like the registry, the Global Assembly Cache, the file system. You're going to need a Windows host.
That rules out any current releases of Kubernetes. (At least for now. Kubernetes is coming to Windows eventually, but it's not generally available yet. There's still some work to get it there.) Okay, so is public cloud the answer? Only if you want to continue to deal with VMs. The public cloud providers all only offer Kubernetes-based container services. So you’ll be back to managing (and paying for) Windows hosts instead if you want to get .NET Framework apps running there.
For container-based Windows workloads, there's only one platform that's got you completely covered: Pivotal Cloud Foundry.
The Only Cloud-Native Platform with .NET Framework Support
At Pivotal, we've always believed that Windows folks and .NET developers deserve the same first-class treatment that Linux and Java users enjoy. That's why we created Steeltoe (more on this later). It's part of why we were named Microsoft Azure "Partner of the Year" in 2017. It's also the reason we are the first multi-cloud platform to support Windows containers in production.
We've been supporting .NET Framework workloads for a while now. We already have customers successfully running hundreds of .NET Framework apps in production. Now, with the introduction of containers into Windows 2016, it's gotten even better. Look what you can do on PCF that you can't do on other platforms:
Run .NET Framework and .NET Core Workloads. Go ahead and run your .NET Core apps. Push ASP.NET Web Forms or MVC apps too. You can even deploy WCF Services or console apps. Don't worry about what flavor of .NET you have. Let the platform figure out what to do!
Use Platform-Built Containers for Windows. PAS for Windows, part of the PCF family, runs native Windows containers under the covers. Except, you shouldn't have to worry about building them yourself. You just want to write the code and get it out there. The platform builds OCI-compatible containers for you. That brings with it necessary security features like file system and network isolation, plus limits for disk, CPU, and memory usage. What’s more, all apps run under an unprivileged container user. You can even SSH directly into running containers to do some troubleshooting. (It feels like magic!)
Windows Event Log Streaming. There's no need to RDP into the server and launch the Event Viewer anymore. With PAS for Windows, just configure a syslog endpoint for Windows Event Logs, then simply use a tool like Splunk or DataDog to view, filter, and analyze them.
Visual Studio Integration and Remote Debugging for .NET Framework apps. PCF supports Microsoft’s Cloud Foundry plugin for Visual Studio and the remote debugging capabilities of Visual Studio are possible for applications running in PAS for Windows.
Streamlined Windows Infrastructure Management. There’s goodness for the operations folks, too. Normally, the immutable infrastructure concept can be challenging to implement in a Windows server world. Thankfully, PCF is powered by BOSH. That means automatically-built, hardened Windows server instances that self-heal when something goes wrong. It also means support for zero-downtime deployments of new base images when you need to patch. If it sounds too magical and you're looking for some comfort, don't worry. You can still RDP or SSH into the servers to identify and fix issues.
Remember, it's all possible because PCF runs the Windows hosts for you, but provides all the same abstractions available for Linux workloads. That's not something you'll see with Kubernetes yet.
Developing Microservices with .NET on PCF
Now you've got this platform to support all your .NET workloads. You'll still want to leverage a modern application architecture like microservices for any new .NET development. In that case, PCF also gives you some niceties that other platforms don't:
Steeltoe Integration with Apps Manager. Steeltoe is a set of open source libraries that are part of the .NET Foundation. These libraries are designed to help .NET developers build cloud-native applications and microservices. Steeltoe offers endpoints to expose useful information like health status, recent HTTP requests, and thread dumps. PCF leverages these endpoints to provide easy visibility into your running applications right from within Apps Manager. Steeltoe also extends popular projects like Spring Cloud and NetflixOSS to the world of .NET. That means it can support popular microservices components like service discovery, config server, and circuit breaker in a portable way. There's no need to use service-specific code libraries like some alternative solutions require.
Observability with PCF Metrics. PCF Metrics delivers a holistic view of an application’s performance. Metrics, logs, and events, are all aggregated together in an intuitive, contextual way. Analyze container metrics and correlate with application logs. As a built-in part of PAS, PCF Metrics works no matter what kind of .NET app you're running on the platform. They're even more helpful when you're trying to debug in the tangled web of microservice interactions.
There's More to Come
Pivotal Cloud Foundry is already way ahead of other platform offerings when it comes to running .NET on Windows. With PAS for Windows, Pivotal has more Windows container experience than virtually anyone outside of Microsoft. Still, we're just getting started. We're even helping in the effort to bring Kubernetes to Windows.
While the other guys scramble to catch up, look for Pivotal to ship more great features on PAS for Windows later this year like container-to-container networking, integrated Windows authentication, and volume services support.
Now you know the only platform to run all your .NET workloads on. Check out PAS for Windows today and get your .NET Framework apps up and running on PCF in no time!
About the Author
Bryan is a Product Marketing Director for Pivotal where he helps customers understand how to transform the way they build software. Prior to Pivotal, he worked at a large telco as Director of Product Management for Infrastructure. Before this experience in the cloud product management space, he also spent over ten years working for an enterprise in a number of various information technology areas including web application development, document management and collaboration, identity and access management, and analytics and business intelligence. He lives in Southern California with his wife, two daughters, and dog Princeton.Follow on Twitter More Content by Bryan Friedman