I use Twitter. A lot. It's a fun place to learn stuff and interact with (mostly) sane people. But my first experience with it was lackluster. I only used the web interface, and it felt clumsy. My usage waned until I discovered a better way. Once I started using Tweetdeck (and still do!), I felt like I was finally using Twitter the right way. As someone who has spent much of their career building .NET apps targeting Windows, I think PCF 2.1 generates the same feelings. Here are three game-changing capabilities in PCF 2.1.
#1 – Manage fleets of Windows servers
Want to see a Windows Server administrator break into a cold sweat? Whisper out-of-band Windows patch is here in their ear. For many IT pros, creating, handing-off, patching, and decommissioning Windows Server environments is tough going. Yes, tools have gotten better. But I haven't seen too many shops that can easily hand over dev-ready, Windows-based application environments in short order. Or roll Windows patches through the data center without taking a maintenance window. Windows Server has been late to the "pets vs cattle" party. No longer.
PCF 2.1 now includes Pivotal Application Service (PAS) for Windows. You can provision, operate, and manage dozens, hundreds, or thousands of Windows Server 2016 VMs with BOSH-powered automation. Automation that builds hardened Windows Server environments in public or private cloud. Automation that keeps you from having snowflake servers with non-standard configurations. Automation that replaces unhealthy instances automatically, and does zero-downtime deployments of new base images. But this isn't a black box. You can still RDP into servers, use your own Key Management Server, and even drain the Event Log.
#2 – Watch Cloud Foundry capabilities "just work" for .NET apps on Windows
So we've established that you can run scores of managed Windows VMs in Cloud Foundry. Neat. But developers who use PAS for Windows don't really have to care about the VMs. You see, they simply "push" their .NET Framework apps, and the platform takes care of the rest. PAS isn't a generic orchestrator; it's an app-aware runtime that makes your software more functional, resilient, and observable. Specifically, when .NET Framework developers use PAS for Windows, they get:
cf push experience. The Cloud Foundry CLI (either used directly or via CI/CD tool) offers the most powerful command in the cloud: cf push. By issuing that command, you send your code to the platform … and PAS does the rest. Packaging (via dedicated buildpack), server deployment, network setup, and more.
Native containerization. PAS for Windows is based on Windows Server 2016 v1709. This means that you get native Windows containers for your .NET Framework apps. As a result, you get an isolated file system (C:), resource quotas for memory and CPU, and network isolation.
SSH into running containers. Yup. With native Windows containers, you can now tunnel into specific app instances and poke around. This is handy if you need to browse the file system or trigger Powershell commands.
Injected environment variables. There's no such thing as a "Cloud Foundry app." It's just an app. Nothing special gets added. But if you want custom environment variables or tap into platform-generated ones, it's easy to set up and use.
Log aggregation. Your app emits logs. Cloud Foundry vacuums them up. Whether you have 3 instances of your app, or 30, those logs are pulled into a central place for analysis. Never again will you have to jump onto individual boxes to read local log files.
Performance metrics. PCF Metrics is a built-in part of PAS. From here, you can analyze container metrics and correlate with application logs. For your .NET Framework apps, this "just works."
App resilience. Apps crash sometimes. That's life. But you DON'T want to get paged at 3am to restart it. Cloud Foundry makes sure that the target number of app instances are always up. If your .NET Framework app instance crashes, PAS immediately stands up a new instance to replace it.
Access to the services marketplace. One of the best parts of PCF is the marketplace of first-party and third-party services. Think databases, messaging engines, caches, and more. Your .NET apps running in PAS for Windows easily attach to any of these services.
Policy-based autoscale. The hallmark of a cloud app is its ability to scale gracefully. With PAS autoscale policies, it’s simple to define rules that jump into action when it’s time to scale in, or out.
Interceptable routes. PAS makes it simple to "intercept" traffic to your app, and invoke an external process. This might be an API gateway, a cache, or security layer. This works great for your .NET Framework apps too, and gives you a flexible way to augment your apps without changing code.
You get all that for free just by running your app on PAS for Windows. From my own experience and what I've seen from others, this is dramatically better than how your running .NET-on-Windows today, especially on-premises.
#3 – Deploy many types of apps to the same platform
You might say "ok, that looks good, but this is only for modern, 12-factor ASP.NET MVC apps right? That's not what I have." We hear you. And got you covered.
PAS for Windows doesn't just support newly-built web apps. Bring your .NET 4.0 ASP.NET Web Forms apps. Send your WCF services over. Console apps? We love 'em. Even bring batch apps that run on a platform-set schedule. Because we support Windows Server containers, you can even bring apps that access the Windows registry, Global Assembly Cache, and file system. What can't you bring over? Basically just Windows Services, desktop apps, and apps that require OS-installed drivers. Not bad!
Stop settling for a subpar experience. I'd bet that your .NET apps are super important to the company, and deserve a better runtime experience. With PCF 2.1, we're making it easier for you quickly improve and deploy apps, while giving operators the means to run Windows at cloud scale. And that's a game changer.