Microsoft Expected To Unveil Nano Server and PowerShell Vision at Build Event This Week
Microsoft likely will tell us more about its cloud-optimized next Windows Server product, including a new Nano Server component, at this week's Build event for developers.
Much of that message likely will come from Jeffrey Snover, lead architect for the Windows Server Division and a Microsoft Distinguished Engineer. His upcoming talk at Build, "Nano Server -- a Cloud Optimized Server for Developers," is scheduled for this Thursday, but Snover has already dropped clues on what to expect in his earlier talks.
The new Nano Server component (code-named "Tuva") of the next Windows Server product is still somewhat shrouded in mystery. Snover has described it as part of a new cloud-optimized architecture for the next Windows Server product. According to Snover, Nano Server will be "20 times smaller than Server Core," which is the minimal-footprint server configuration possible with the current Windows Server 2012 R2 product. A small-footprint server promises greater security by having a smaller surface area for attack, along with less software to patch. Microsoft has also described possible scalability improvements, such as running 1,000 Nano Server virtual machines on a 1TB machine, and patch management improvements such as cutting down on the time it takes to execute preboot execution environment-type updates.
One of the tradeoffs to this new approach will be the graphical user interface (GUI). The GUI that made Windows management somewhat user friendly for IT pros will go away with Nano Server. Instead, Nano Server will be managed via remote PowerShell scripting. Snover has a lot to say about PowerShell since he is credited as being its inventor. PowerShell, which now supports the management of all of Microsoft's server products, has emerged as one of Microsoft's leading investment areas.
The Dev-Ops "Revolution"
It might be fair to say that Snover's vision for Windows Server management and his dev-ops focus with PowerShell will be a central theme at Microsoft's upcoming events. He's speaking at Microsoft's Ignite event for IT pros next month, as well as at Build this week. Snover's talks likely will be at the cutting edge, though. The next Windows Server product is expected to appear sometime in 2016. And Snover recently admitted that the dev-ops approach is still part of "an early vanguard of the industry."
With PowerShell, Snover aimed to create a scripting language that would be common for both developers and IT pros. He outlined this vision in his "Monad Manifesto," which was an attempt to spell out an approach that eventually led to the creation of PowerShell.
Developers actually did not like PowerShell initially, Snover explained, during a "State of PowerShell" talk at this month's PowerShell Summit North America event. PowerShell's Desired State Configuration (DSC) approach -- a kind of push/pull approach to keeping a server's configuration in an optimal state -- was "too early" to be appreciated, Snover said, adding that the early DSC element "was not up to the task."
Developers also did not like the shell semantics of PowerShell, so classes were added. Also, PowerShell wasn't in Visual Studio, so Snover's team worked to integrate PowerShell Tools for Visual Studio, known as "POSHtools." He explained that POSHtools is a Visual Studio plug-in that adds Intellisense highlighting for working with PowerShell scripts. There initially were no unit tests or validation framework for PowerShell, so the team collaborated with VMware to ship Pester in Windows. There was no code tooling in PowerShell, so Snover's team added Script Analytics.
It also was hard to find community feedback on PowerShell. PsGet was developed to help with installing PowerShell modules. A Linux-like Package Manager came into being to help with installations, which, for Windows 10, is called "OneGet." Snover added that Package Manager will be available for previous versions of PowerShell, not just the current leading-edge PowerShell 5.0.
Security was an early concern with PowerShell. To address PowerShell malware, Microsoft added antimalware scans to code. Dynamic code did not get logged, so Microsoft added Group Policy for deep script logging, Snover said.
Microsoft had started to make PowerShell more friendly to developers by the time PowerShell 2.0 was released, Snover explained. He added that PowerShell 3.0 was a huge release that crossed the dev-ops gap. It brought "cmdlet definition XML" (CDXML), which allowed PowerShell cmdlets to be written in native code. PowerShell 4.0 was Microsoft's big shift to DSC, while PowerShell 5.0 added more heft for the dev-ops mindset, Snover explained.
Snover added that PowerShell is part of a sustained investment effort at Microsoft that is centered on the cloud. It's part of CEO Satya Nadella's "cloud first" mandate for the company. He said that the complexity of the cloud has "people's hair on fire and PowerShell is a bucket of water." Microsoft's cloud computing platform, Azure, is being used to support Linux workloads, as well as Windows ones. "Azure has to be the sea that refuses no river," Snover explained.
Microsoft's contributions to PowerShell will be ongoing, but they will get dwarfed by those of the community, which really likes tools that can fit into their environments, Snover explained. One of his predictions for this year is that PowerShell eventually will go open source. It's not so inconceivable considering Microsoft's recent decision to issue its .NET server core stack as open source code.
Microsoft's road to PowerShell, after so many years of building GUIs for Windows, wasn't easy. "Trying to use a command-line environment … at Microsoft was a big change," Snover said, in an MCP Insider Series talk, "PowerShell Inventor Jeffrey Snover Answers Your AMA Questions." Snover, who came to Microsoft from DEC, was pointedly asked what it was about Windows that he didn't understand. However, PowerShell is now part of the story as Microsoft has shifted its focus more toward the cloud.
What's Next for PowerShell?
Snover recently used his Twitter feed to highlight some coming PowerShell news. Here's what to expect, according to his April 20 posts:
- The next Windows Management Framework 5.0 preview will be available on April 30 for Windows 7 and Windows Server 2008 R2 and higher versions
- The new PowerShell Package Manager (known as "OneGet") will be available for "down-level versions" of PowerShell, not just for PowerShell 5.0
- Microsoft is planning to open source its DSC Resources Kit, its PowerShell Script Analyzer and Visual Studio PowerShell plug-in
- Lastly, "Pester will ship in the next version of Windows!"
Getting Started with PowerShell
Snover had some advice for those developers and IT pros trying to keep pace with Microsoft's shift. He recommended using the discovery capabilities of PowerShell to find what you need, adding that "PowerShell is not about remembering things." Instead, users can use PowerShell itself to figure things out.
Those learning PowerShell should study noun-plus-verb structure. After learning enough PowerShell, the user can "start guessing" how to get things done. PowerShell's new Script Analyzer has extensible set of tools to check code. PowerShell will generate a fully qualified error ID, which is designed for use in search engines via copy and paste to get more information. Snover explained that PowerShell has cmdlets ("commandlets") rather than "commands" purely to make it easier to find information using search engines.
Snover recommended getting involved in PowerShell forums to get more information. He specifically recommended the free e-book, "The Community Book of PowerShell Practices," available at Powershell.org, to get some best-practices advice.