260 likes | 420 Views
SAC-644T. Make your product manageable. Jeffrey Snover Distinguished Engineer & Lead Architect, Windows Server Microsoft Corporation. Refaat Issa Senior Program Manager, Windows PowerShell Microsoft Corporation. Why Care?. “Because that’s where the money is.” Willie Sutton.
E N D
SAC-644T Make your product manageable Jeffrey Snover Distinguished Engineer & Lead Architect, Windows Server Microsoft Corporation Refaat Issa Senior Program Manager, Windows PowerShell Microsoft Corporation
Why Care? “Because that’s where the money is.” Willie Sutton
Why Manageability? • Manageability is increasingly the differentiator between product offerings • Low end needs consistency and simplicity • Virtualization drives scale • Operations demand agility, quality and repeatability
New Windows 8 Manageability Opportunities • Write a WMI V2 provider • Write PowerShell Cmdlets • PS-WMI • PS-Workflow • Configure a REST API using PowerShell and OData
Writing a WMI V2 Provider • Dramatically simplified provider model • Convert-Mof2Provider generates provider skeleton & early bound data structures from specification • Create buildable provider with default method bodies that return NOT_SUPPORTED • PS-WMI - Guidelines and APIs • Enables PowerShell to convert provider into Cmdlets
demo PS-WMI: Native Code Cmdlets via WMIV2 Jeffrey Snover Distinguished Engineer & Lead Architect, Windows Server Refaat Issa Senior Program Manager, Windows PowerShell
Chicken and Egg Why vendors spend their development budgets building custom management tools • Manageable elements (ME) don’t deliver customer value, solutions do • Solutions don’t support MEs until there is market share • MEs don’t get market share until there are solutions • PowerShell fixes this: IT Pros script solutions
Windows Management Framework (WMF) • Minimizes effort to make your product manageable • Maximizes the value of making your product manageable • Enables the removal of admin GUIs off Server through robust remote management
The N x M Problem Solution Developer IT Pro IT Developer Disk Storage Exchange Devices YOUR ELEMENTS
The Solution OR Maximizing the value of leveraging the Windows Management Framework Solution Developer IT Pro IT Developer WMF Disk Storage Exchange Devices YOUR ELEMENTS
WMF Components Server Manager, PowerShell, ISE Admin GUIs and tools, IDEs …. Client Remote Tools WSMAN OData Clients and Servers Protocols & HTTP/HTTPS Engines WMI PowerShell Workflow SMI-S, COM, .NET, RPC, DCOM, HTTP … Access APIs & Storage, Exchange, SharePoint, Disk, Process … Managed Elements(Local/Remote)
Writing a Workflow Cmdlet • Workflow designer tool • PowerShell • Use the keyword “workflow” in place of “function” • Parameters must be named not positional • Be aware of workflow semantics
Why Workflow? • Tame the complexity of production management at scale • Long running activities across multiple machines • Task failures • Machine interrupts and reboots • Something has to handle the complexity, it shouldn’t be the user
Workflow Sample: Install-ADReplicaServer Set up OS CN = A CN = B Patch CN = A Scheduled Task CN = B Install AD DS CN = A Run DCPromo CN = A Asynchronous Task Install DNS CN = A Replicate AD CN = A Scheduled Task CN = B
Workflow Parameters PowerShell provides a Secure, multi-machine, Distributed workflow engine • AsJob • JobName • ForwardJobEvent • PSAllowRedirection • PSApplicationName • PSAuthentication • PSAuthenticationLevel • PSCertificateThumbprint • PSComputerName • PSConfigurationName • PSConnectionRetryCount • PSConnectionRetryInterval • PSConnectionURI • PSCredential • PSElapsedTimeoutSec • PSParameterCollection • PSPersist • PSPersistInterval • PSPort • PSPrivateMetadata • PSRunningTimeoutSec • PSSessionOption • PSUseSSL
demo PS-Workflow: Cmdlets via Workflows Jeffrey Snover Distinguished Engineer & Lead Architect, Windows Server Refaat Issa Senior Program Manager, Windows PowerShell
Why Implement Cmdlets? • IT Pro experience • Rich interactive experience: CLI, Show-Command and POWA • Simple => Sophisticated multi-machine scripting and workflow • Developer experience • .NET APIs for local/remote/multi-machine management • Hostable in IIS for cloud-service management • REST and WSMAN access from non-Windows management tools • Tool experience • Large and rapidly growing list of tool support • ISE…, PoshBoard …, PowerBoots…, PowerGUI …, System Center…
Representational State Transfer (REST) • WEB API of choice • Base URI • http://example.com/resources/ • CRUD operations over HTTP • POST, GET, PUT and DELETE • Data encoding • JSON or XML • “Program with your browser” model
Open Data Protocol (OData) • http://www.odata.org/ • Set of conventions for implementing REST • $Metadata • URI conventions for filtering and addressing • Enables rich tools • Excel 2010, SSIS, etc • Rich client side libraries • JavaScript, PHP, Java, Objective-C, Ruby, Perl, Durpal, Joomla, etc
PowerShell Web API • REST (ODATA) API to sets of PowerShell cmdlets • Implemented by configuring the mapping: • PowerShell => CIM data model => REST via IIS • SDK samples & tools: • http://archive.msdn.microsoft.com/mgmtODataWebServ • http://code.msdn.microsoft.com/windowsdesktop/PswsRoleBasedPlugins-1c7a7ef1 • http://code.msdn.microsoft.com/windowsdesktop/PswsRoleBasedPlugins-9c79b75a
demo REST API (OData) via PowerShell Jeffrey Snover Distinguished Engineer & Lead Architect, Windows Server Refaat Issa Senior Program Manager, Windows PowerShell
Manageability Call to Action • Native code: implement CIM standard schema • Use simplified WMI V2 provider model and tools • Use guidelines & library to get Cmdlets for free [PS-WMI] • Managed code: implement PowerShell Cmdlets • Easiest to produce and widest implementation choices: .NET, PowerShell, Windows Workflow
Manageability Call to Action: Non-Windows Devices • Support CIM and WSMAN standards in your devices • Implement our CIM/WSMAN extensions • Implement SMI-S for storage • Windows Storage Management API and PowerShell Cmdlets
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.