Microsoft's open source train has pulled into a most unexpected stop.
PowerShell, the company's flagship command-line environment for automation and systems management, will be released as an open source project and ported to Linux and MacOS.
That's reason enough for celebration or at least raised eyebrows. But more interesting, it provides hints into how Microsoft's hybrid strategy is becoming a cross-platform one.
If you build it, they will come
As unveiled in a phone conference by Jeffrey Snover, technical fellow and lead architect for Microsoft's Enterprise Cloud group, open-sourcing PowerShell was inspired by instructions from Microsoft CEO Satya Nadella to "get out of your cubicles, go talk to customers, find out what they want."
The reality of Microsoft's customers, as Snover put it, is that they are "multicloud, multiplatform, and multi-OS," and it makes sense to help them succeed. "We want to be the customer's preferred partner for running and managing all workloads, whether Windows or Linux."
With PowerShell on Linux, the plan is to provide a framework that can be extended by Linux software vendors in the same way Windows vendors provided cmdlets for PowerShell on Windows. Chef and Puppet, for instance, could extend their management capabilities on Linux into its incarnation of PowerShell, so it's easier to use the same command sets to manage instances of those frameworks across platforms.
PowerShell on Linux also can perform common Linux management tasks with additional smarts. Snover outlined one minor but illustrative scenario that involved managing cron jobs, where any problems with the text file used to store those jobs typically don't manifest until further on down the line. With PowerShell, syntactical errors or incorrectly formatted statements are screened out immediately.
The Shell game
A front end like PowerShell isn't much good without back ends to control it. Microsoft is already partnering with Amazon and Google to automate events on AWS and Google Cloud with PowerShell, but the most useful target is likely to be Microsoft Operations Management Suite (OMS).
OMS can manage multiple clouds, public and hybrid, with a common set of abstractions. Obviously, Azure is one of those clouds, but it doesn't have to be -- any of the various clouds it works with will do, in any combination. Having PowerShell control OMS means admins on any platforms can manage OMS-controlled clouds consistently across OSes and between environments.
Even if Azure isn't part of an actual hybrid cloud stack -- which the company has been pulling together piece by piece for some time -- Microsoft can still make its presence felt wherever hybrid clouds exist. If its software glues together multiple clouds and provides the command-and-control system run from any number of Linux, Windows, or MacOS admin laptops, it's still a win for Microsoft. If that software includes, say, Azure stacks running on Linux, managed by OMS, and controlled by PowerShell -- even better.
Another long-term possibility opened up with this new incarnation of PowerShell: It helps automate Microsoft apps if they are ported to other platforms. SQL Server has PowerShell extensibility in its original Windows incarnation -- wouldn't it only make sense to have that power when it debuts on Linux, too?