In case you haven’t heard the news, Microsoft recently announced that it is open-sourcing PowerShell and will be bringing it to both Linux and OS X. And not only that, but Microsoft has also open-sourced the .NET framework and PowerShell Editor Services, making them available for Linux and OS X at the PowerShell GitHub repository.
Does anyone else see this as an almost natural progression? Those of us in the industry who were working on Windows Server before PowerShell might have gotten started writing scripts in the Windows command shell. We might then have moved up to an enhanced batch scripting language such as KiXtart, the closed-source, free-format scripting language for Windows. I worked primarily in a Windows environment; I also used Bash for configuring and installing VMware ESX servers, a new technology from VMware called virtualization.
By the time PowerShell was introduced, my primary scripting language skill was more Bash than anything else. When I first starting working with PowerShell, one of my first thoughts was: “Wow! There are a lot of Linux commands that were working from the PowerShell prompt.” From that moment on, I thought that Microsoft was starting to shift the scripting structure to keep it more in line with the structure and command of the most common Linux shell’s commands. I assumed that some kind of integration was all but inevitable.
There may be another monumental reason for Microsoft’s decision that now is the time to open-source the .NET framework. It all has to do with Microsoft’s Azure Cloud Services. One can only surmise that nearly one in every three workloads currently running on Microsoft Azure are actually Linux-based virtual machines running on top of Microsoft’s Hyper-V hypervisor.
I believe that once Microsoft started supporting Linux virtual machines on the Azure platform, Microsoft was going to be bridge administration to Linux servers with the tools already in place for managing Hyper-V. Consider the Microsoft Operations Management Suite, the product that integrates Microsoft System Center with the cloud-hosted virtual machine management. What is the underlining technology used to provide System Center’s automation capabilities? None other than PowerShell itself. This makes it clear that Microsoft needs a seamless way to manage and provide administration to all the virtual machines that it is able to support within a single tool, as well as needing a single base scripting language that can manage both without giving up or reducing the functionality that the PowerShell community has become accustomed to.
Obviously, the announcement of the open-sourcing of .NET is a big deal for those of us working in environments where we need to support both Microsoft- and Linux-based virtual machines, but what about the reverse? I am curious to see if PowerShell will continue to enjoy the same kind of success and acceptance inside the primarily Linux and OS X environments.
Some of the comments I have seen about this announcement are more cynical: “World, upside down? When is what? Why the who? Which FOR Where?” Will the Linux community actually embrace PowerShell? Will the Linux community help extend the technology, or will it reject PowerShell altogether? I believe that is going to be the big question, and it is something that we are just going to have to wait and see. I believe that the mainly Linux shops will not embrace PowerShell and will be forced to enter the waters to provide a solution for a specific use case. I believe this shop would be more inclined to install SSH on any Windows Servers it needs to interact with, and to manage in that manner. For the data centers that are truly a mixed shop, I believe there will be more acceptance from the Windows world. Time could very well prove me wrong in the long run, because you have better odds when betting on Microsoft to succeed than when betting on Microsoft to fail. No matter how the acceptance level turns out, Microsoft has answered the needs of its customers by providing a single platform and tool set to manage all the systems that Microsoft can support.