patpitchaya - Fotolia
Cloud and DevOps have reshaped IT operations admins' day-to-day responsibilities -- as well as what's in their IT management toolkit.
Microsoft's PowerShell, which for years has served as a go-to automation tool and scripting language for Windows shops, is one example of how IT control must evolve in light of DevOps and cloud-native strategies. To align with software delivery and hosting shifts, IT admins and developers need to think carefully about the future of PowerShell -- namely, how the tool fits into CI/CD pipelines and public cloud deployments.
PowerShell technology, community growth
In 2015, I became a PowerShell MVP, while the scripting language -- still called Windows PowerShell -- was in version 4. Windows admins used PowerShell religiously to write scripts for projects that, at the time, seemed exciting. These tasks included automating Active Directory user provisioning, Exchange mailbox deployments and VM creation with Hyper-V and the VMware PowerCLI. Microsoft put a lot of focus and support into PowerShell, and it was gaining steam as the automation language for management of the Microsoft ecosystem of business applications and IT technologies.
Four years later, things have changed. There are no more PowerShell MVPs, as Microsoft rebranded that distinction as Cloud and Datacenter Management MVPs. PowerShell's principal architect, Bruce Payette, no longer works for Microsoft -- he's now with the company's public cloud rival, Amazon Web Services -- and the creator of PowerShell, Jeffrey Snover, refocused his work onto Microsoft's artificial intelligence and cloud infrastructure strategy.
Microsoft's stance around PowerShell has noticeably shifted, and influenced the industry at large. PowerShell became an open source product available not only on Windows, but on other OSes, such as Linux and MacOS.
Even though PowerShell continues to evolve, development has slowed dramatically as the language is feature-complete, based on Snover's Monad Manifesto -- a document written in 2002 that outlined his vision for PowerShell as a systems administration tool. The Windows and open source community keeps the language alive and well with contributions to PowerShell's project on GitHub.
What's in store for the future of PowerShell?
PowerShell has changed from a single product to write code into a tool that interacts with other development and infrastructure services -- including those in Microsoft's Azure public cloud. Microsoft has pushed the PowerShell language out of the spotlight and instead promotes it as an accessory in an admin's Azure tool belt, along with the Azure CLI, Python libraries and Azure Resource Manager templates. The focus is now on how to use PowerShell to manage Azure resources.
PowerShell developers, often called automation engineers, don't use PowerShell to write standalone applications. They automate processes via PowerShell -- bringing a developer's skills to infrastructure builds, unit and infrastructure tests with the Pester framework, and software deployments -- in a CI/CD pipeline.
Automation engineers who use PowerShell often write code that other systems then execute. In these cases, PowerShell code fills in the functionality gaps of other software or services. For example, PowerShell engineers can run scripts inside of a cloud service, such as Azure Pipelines, to enable customized features.
Even though Microsoft's spotlight on PowerShell has dimmed, the language's popularity with automation engineers holds steady -- something evidenced by the large and active community that surrounds it. The PowerShell and DevOps Summit -- hosted in Bellevue, Washington in April 2019, and previously just called PowerShell Summit -- hosted 400 attendees, and waitlisted over 200 people. Based on that conference's attendance alone, the future of PowerShell looks bright -- even if the tool is just one, of many, in IT admins' DevOps and cloud automation tool sets.