April 5, 2012

Part 2 - Making the Administration of Servers Easier

It comes as no surprise that in order to build a private cloud (or a public one if you’re in the hosting space) that the fewer server admins per server, the better.  Some enterprises have a hard limit of say 20 to 1, others with impressive automation and orchestration have gotten up to 100 to 1, or more likely, broken out individual server administration tasks to individual teams – this team for patching, that team for AD, etc.

In WS8, the convergence of knowledge around maintaining large numbers of server instances becomes almost fun.  There really is no longer a reason to have one large server running dozens or hundreds of apps, simply because they are easier to administer.  In fact, because of the continuous fine tuning of memory and processing requirement, dozens of Windows 8 instances can run on a single host without any trouble!  But the tools better be there – and they are!

PowerShell 3 – the key to unlocking the potential of maintaining large numbers of servers is the ability to script their management and maintenance without going through hundreds of clicks on each server.  I was always hesitant to run command lines – just always felt more comfortable with my GUI so I could see exactly what was happening.  Linux/Unix admins scoff at me frequently.  PowerShell has come a long ways since its introduction and is chock full of great new features to help you keep tabs on your systems, without ever actually logging in to them!  Here are the new PowerShell 3 features from the docs:

  1. Workflows – create a workflow in native PowerShell or XAML and it can be run via the Windows Workflow Engine.  These workflows will be able to take advantage of all of the great WF features developers have come to love (and some hate) such as parallel processing, restart, resume, repeat, branching, etc.
  2. Session ‘Resilience’ – baked into PS3 is the ability to reconnect to broken remote sessions in a very safe way.
  3. Scheduling – It’s nice to queue up large configuration changes – PS3 scheduling provides for just that.
  4. Run As – For those teams that delegate certain administrative tasks to other admins, you have thee ability now to have your scripts elevate appropriately (and remotely!) so they can execute privileged commands without explicitly granting that user privileged rights.
  5. Easier to use – PS3 helps you out a lot more by making command discovery and scripting more intuitive.  They haven’t ditched $_. yet, but I’m still trying to get them too 🙂
  6. Ability to build entire ‘deployment’ scripts that configure every piece of your newly installed server remotely and in batches – need 100 new IIS vms, script away and target the right machines when they come up!

Server Manager – Server Manager is essentially ‘the app of apps’ – originally introduced several versions back, I wasn’t really sure it would be useful.  Boy was I wrong!  Most administrative things are controlled by Server Manager from installing features and roles to configuring those roles, monitoring, etc.  Since everything is now remotely manageable, it stands to reason that MSFT would make it easy to do just that with Server Manager.  Server Manager supports the ability to not only control servers remotely, it can control them in batches by type, role and more.  What’s even better, almost everything you do in Server Manager outputs for your easy saving later the actual PowerShell script that it ran behind the scenes.  This allows you to quickly build a library of scripts that you can use in the future – do it once in the GUI, get the script, modify, replicate, run!

I continue to be impressed with the management features and the increase in completeness of Server Manager and PowerShell.  There will still be the need occasionally to dive into WMI (if wishing only made it not so) or standard command prompt or the occasional MMC, but those days are clearly numbered!