Free eBook from Microsoft Press

Windows Server 2008 TCP/IP Protocols and ServicesMicrosoft Press is celebrating it’s 25th anniversary with a free eBook of the month offer. This Month’s offer is Windows Server 2008 TCP/IP Protocols and Services by Joseph Davies and, although I haven’t read it yet, I probably will (at least in part) as the TCP/IP stack has changed considerably in Windows Vista and Server 2008.

Find out more, or sign-up for future offers on the Microsoft Learning website.

An introduction to Service Management for technology-focused architects

As an experienced infrastructure architect working on a service-led pre-sales exercise, I have struggled to get to grips with what the overall solution looks like and have had to learn a lot about delivering IT Services in a very short time. This article is intended to express the basics of service management for architects who, like myself, are more familiar with technology than service. It’s not a complete reference, and a service architect may be dismayed by my interpretation of the processes; however it is based on advice and guidance from a specialist service management consultancy and I am grateful to Keith Webb for his assistance in reviewing and editing the article.

The IT Infrastructure Library (ITIL) takes service management best practice and presents it in a format that can be applied to IT (and non-IT) service support and delivery. Organised as a number of processes, ITIL describes:

  • Incident Management.
  • Configuration Management.
  • Problem Management.
  • Change Management.
  • Release Management.
  • Service Level Management.
  • Availability Management.
  • Capacity Management.
  • IT Service Continuity Management.
  • Financial Management for IT Services.

Looking at the way that service is often implemented, end users may raise a service request or incident (for example via a website, or by calling a service desk) or incidents may be reported automatically (e.g. an alert generated by an IT system). The incident or service request will be reported to a service desk and an incident record created and stored in the service management tool. Typically, the service desk will have access (via the Configuration Management Database – CMDB) to user information (from various directories – e.g. the Human Resources system or Active Directory) and asset information – the incident record will link to these as appropriate.

From an incident management perspective, the service desk will own the relationship with the end user through to resolution and closure, managing the communications and ensuring that the incident/service request is resolved to the user’s satisfaction (and closed after a pre-defined interval if user contact is not possible). Drawing on resources such as a known error database, the service desk’s aim in incident management is to ensure that service is restored as soon as possible according to defined priorities and within timescales agreed with the business. This can be achieved by what is known as a first time fix (where the incident is resolved by, and does not leave, the service desk); however some incidents will need to be assigned to second/third-line support teams for further tests/investigation. In such cases, it is the responsibility of the service desk to manage the incident through to resolution and closure, even if the incident is assigned elsewhere in the organisation.

Configuration management makes use of the CMDB to record information of any assets (typically in the live environment) the organisation wants to control – this may include people, documentation, hardware, software, network equipment, locations, service management information, contractual information, “howtos”, etc. and, whilst the assets may well be recorded in an asset database, this tends to be more about financial details (date purchased, end of warranty, etc.) and the CMDB builds out on this asset data to provide a more complete record – including relationships between services and relationships between configuration items which combine to provide a service. Some items may not exist in the asset database (e.g. a PC, a monitor or a printer may be considered too expensive to track and inexpensive to purchase, so might be managed as a consumable) and it is part of the configuration management role to agree with the organisation which items are to be controlled (and hence stored in the CMDB). Whilst the CMDB is a relational database, providing a hierarchical structure of the relationship between assets (e.g. a server is a piece of hardware with a number of individual components, and certain software installed, configured in a particular manner, and connected to various networks, to provide a service as defined in a particular document, etc.). These relationships can quickly become complex, and the CMDB does not necessarily store all the records (e.g. certain configuration items may exist in another repository, linked from the CMDB) and the real value of the CMDB is the relational nature which allows for extremely flexible reporting. In reality, whilst various products may feed into the CMDB, the CMDB itself tends to be built around a service management tool such as BMC Remedy or HP Service Center.

Problem management examines incidents (either at one time, or over a period) and attempts to identify the root cause of a problem. Over time, this may feed into the incident management process but the two disciplines have distinctly differing attributes – whilst incident management is about providing quick fixes to restore service, problem management is about examining the underlying cause and may take an extended period of time. Problem management has both reactive and proactive aspects: the reactive aspect is concerned with solving problems in response to one or more incidents and the proactive aspect is concerned with preventing incidents from occurring in the first place.

Where an incident leads to a change being required, a change record is created (in the service management tool, by the service desk or the change team) and the change management process is invoked. The change team will typically assess the risk, impact of doing/not carrying out the change, urgency, requirement and effect on other services relating to a change, owning and managing any related testing and communication with users of the service until a request for change is rejected or implemented.

Sometimes, a number of changes may be packaged as a release, as part of the release management process. Release Management undertakes the planning, design, build, configuration and testing of hardware and software to create a set of release components for a live environment. A release may be as small as a tiny code change to a script or it could be a service pack, a number of software components, an application, or even a piece of hardware.

Service level management is the name given to the planning, coordinating, drafting, negotiating, agreeing, monitoring and reporting of services and their associated Service Level Agreements (SLAs) and service targets. It is also the on-going review of service achievements against those targets to ensure that the required and cost-justifiable service quality is maintained and gradually improved. As well as reporting on service targets (e.g. number of incidents which are resolved as first-time fixes, percentage availability of a service during the past month, etc.), service level management includes a degree of relationship management – agreeing the required levels of service with the customer. For example, a KPI for first-time fixes which is too high may be counterproductive as it will encourage rapid call closure rather than problem management (which would be expected to improve the overall level of service over time). Tools may be used to monitor or alert via alarms when service level limits (e.g. time to respond, time to resolve, etc.) are being approached for a given incident.

Capacity management is about providing appropriate capacity (the right level, at the right time) in an infrastructure component or service and needs to be aware of the business plans as these may have a serious impact upon service. For example, a major marketing campaign may increase the load on a website or a call centre and appropriate capacity will need to be provided in order to continue to meet defined service levels.

Availability management is linked to capacity management but is aligned with service continuity. If a service is judged to be business-critical and requires high availability, then additional components may be provided to increase the resilience of the solution but the use of such components needs to be balanced with introducing additional cost to a solution, affecting profitability (even if service is over-delivered against the agreed levels, it is unlikely that this will result in extra revenue). As new technologies emerge which provide dynamic solutions to capacity and availability management (e.g. server virtualisation) become mainstream, a new generation of service management tools will be required to cope with dynamic discovery and reporting as the CMDB is constantly updated to reflect changes to controlled configuration items.

IT service continuity management is concerned with managing an organisation’s ability to continue to provide a pre-determined and agreed level of IT Service to support the minimum business requirements following an interruption to the business. As organisations become more dependent upon technology, which is now a core component of most business processes, continued availability of IT and the delivery of IT services is critical to their survival. This is accomplished by introducing risk reduction measures such as resilient systems, and recovery options including back-up facilities.

Financial management for IT services accounts for the cost of service provision, providing a valuation of the services being delivered, the valuation of the assets that are in use in enabling those services to be delivered and the costs of operating and supporting those services. Financial Management also looks at to recover those costs, where applicable, in a controlled manner. It provides the sound stewardship of the monetary resources of the organisation. It supports the organisation in planning and executing its business objectives.

ITIL 2 is a non-proprietary framework of service management best practices – it is not mandatory but organisations may increase their effectiveness by adopting and adapting the disciplines that are most appropriate to the environment. ITIL 3 is an extension of ITIL 2 (i.e. it includes all of ITIL 2 and more).

ISO/IEC 20000-1 is an auditable standard, aligned with ITIL 2 and organisations can both gain or lose ISO/IEC 20000-1 accreditation as a result of their adherence (or otherwise) to the required standards.

A solution may consist of a number of service towers, each of which may implement various ITIL processes. In practice, the processes will be similar across the various towers; however the specifics may vary. There will be economies of scale where multiple towers are implemented using the same tools (i.e. introducing service efficiencies) and the business will typically be able to supply volumetric data which will aid in distinguishing the number of people required to deliver each service.

Why digital rights management is anti-consumer

I’ve had a few rants on this blog about why DRM-protected consumer goods (i.e. music and video) are A Bad Thing (e.g. here and here) but this comic from xkcd.com really makes a good point (which Walmart customers will appreciate – even if the company did later decide to keep the DRM servers running, how long can they be expected to do so for?):

Steal This Comic - from xkcd.com

(This comic is licensed under a Creative Commons Attribution-NonCommercial 2.5 License.)

7digitalFor UK downloaders looking for DRM-free music, I recommend 7digital (but have no affiliation with them).

Microsoft Statement on Yahoo!

I’ve just read what has to be the shortest press release I’ve ever seen from Microsoft. It says, in full:

REDMOND, Wash., Oct. 16, 2008 – Microsoft Corp. issued the following statement regarding Yahoo!:

“Our position hasn’t changed. Microsoft has no interest in acquiring Yahoo!; there are no discussions between the companies.”

So what’s brought about this denial then?

November 2008 MVUG meeting announced

Those who attended the first Microsoft Virtualization User Group (MVUG) meeting in September will probably appreciate the quality of the event that Patrick Lownds and Matthew Millers put together with guest speakers from Microsoft (Justin Zarb, Matt McSpirit and James O’Neill) presenting on the various elements of the Microsoft Virtualization line-up (which reminds me… I must finish up that series of blog posts…).

The next event has just been announced for the evening of 10 November (at Microsoft in Reading) with presentations on Virtualization Solution Accelerators and System Center Data Protection Manager 2007 (i.e. backing up a virtualised environment) – register for the physical event – or catch the event virtually via LiveMeeting.

Timezone blindness

<rant>Daylight saving time is an outdated concept, a complete nuisance and should be abolished.</rant>

I’m in the UK and I have a call with a Microsoft Product Group in Redmond (WA) tonight at 12:00 PST. US Pacific time is 8 hours ahead of the UK, and we’re both on daylight savings and in the northern hemisphere… or so I thought (I’m still pretty sure about the northern hemisphere bit).

LiveMeeting tells me that the meeting has not started yet and to wait until the scheduled meeting time before trying again, so I checked the current time in the US and sure enough it’s only 11:00 on the west coast… then I checked the meeting request and saw that Google Calendar had picked up the time as UTC/GMT +7 (which is correct) but in the summer the UK time is not Greenwich Mean Time (GMT) but British Summer Time (BST) and somehow (possibly by Google Calendar, possibly by Microsoft Outlook, possibly by me), the iCalendar (.ics) file that Microsoft provided when I registered for the event had been mangled and my calendar only had a 7 hour time difference. Still, at least I was early not late…

In future, I’ll be making good use of the other link in the e-mail from Microsoft – the world clock timezone converter – which takes into account daylight saving time (DST) as well as the local time zone.

Lusting after the new aluminium MacBook

I really like my Apple MacBook. It’s expensive (compared with other similarly specified PCs) but I really enjoy using it – whether I’m running Mac OS X or Windows. Even so, I’ve always fancied an aluminium Mac but the Mac Pro was too expensive, I didn’t like the keyboard on the MacBook Pro and I still think the MacBook Air is little more than a toy.

New Aluminium MacBook - image used courtesy of Apple.A few hours ago, Apple announced the MacBook that I’ve been waiting for. The only problem is that with a 9-month-old MacBook White, there is no way I can justify the upgrade (even if I did have any change left in the piggy bank…)

I guess it will have to join that Nikon D3 DSLR on my wishlist! Talk about a “first-world problem”.

Windows 7 – or is it 6.1?

There’s a lot of speculation about Windows 7 right now but specifics are a bit thin on the ground. Aside from the Engineering Windows 7 blog (which is information rich but makes some of my blog posts look short), as I said last year, pretty much the best place to watch right now is Paul Thurrott’s Windows 7 FAQ (Michael Pietroforte has an synopsis for IT administrators). Come PDC and WinHEC and the ‘net will be awash with Windows 7 news as that’s when developers and journos will finally get their grubby mits on a pre-release version of Microsoft’s latest operating system.

There has been some official news this week though. Yesterday, Mike Nash, Corporate Vice President for Windows Product Management at Microsoft, announced on the Windows Vista blog that the Windows 7 codename will not just be the codename but will also be the actual name for the next version of Windows (I understand that relates to the Windows client operating system and that Windows Server 2008 R2 will be the name for the server release):

“Over the years, we have taken different approaches to naming Windows. We’ve used version numbers like Windows 3.11, or dates like Windows 98, or ‘aspirational’ monikers like Windows XP or Windows Vista.”

OK, I get it. And Windows 7.0 would make sense for a major update (as Mike explained today in a follow-up post, but I’ll provide a few more details here):

  • Windows 1.0 and 2.0 (Windows 286) existed as products but were not widely adopted.
  • Windows 3.0, 3.1 (codename Janus), Windows for Workgroups 3.1 (codename Kato) and 3.11 (codename Snowball) were the first widely adopted versions.
  • At that time the OS forked and Windows NT (New Technology) was born at v3.1, then 3.5 (codename Daytona), 3.51 (all minor release updates).
  • The original Windows (not NT) 4.0 (codename Chicago/Detroit/Knoxville/Nashville) was called Windows 95 (and there were several variations of this operating system).
  • Windows NT 4.0 (codename Cairo) was the first major update for Windows NT.
  • Windows 98 (codename Memphis) and ME (Millennium Edition) were minor updates from Windows 95 (still 4.x) and then someone saw sense and closed down that product line, merging the codebase back into NT.
  • Windows NT 5.0 was marketed as Windows 2000 (a major update).
  • Windows NT 5.1 (codename Whistler) was marketed as Windows XP (a minor update).
  • Windows NT 5.2 was marketed as Windows Server 2003 (codename Whistler Server) and Windows Server 2003 R2.
  • Windows NT 6.0 (a major release) was marketed as Windows Vista (codename Longhorn) and Windows Server 2008 (codename Longhorn Server).

(See Bitzenbytes for more details of Windows development that I chose to skip over here.)

So far, this all makes sense (at least to me)… but then Mike Nash announced that:

“We decided to ship the Windows 7 code as Windows 6.1 – which is what you will see in the actual version of the product in cmd.exe or computer properties.”

So, Windows 7 (codename Blackcomb/Vienna/7) will not be v7.0 (indicating a major release) but will actually be 6.1 (i.e. a minor release). Based on recent history that really ought to fit with a Windows Vista R2 (marketing disaster waiting to happen), Windows Server 2008 R2 or Windows 2010 name. Nash continues by highlighting that:

“Windows 7 is a significant and evolutionary advancement of the client operating system. It is in every way a major effort in design, engineering and innovation. The only thing to read into the code versioning is that we are absolutely committed to making sure application compatibility is optimized for our customers.”

So, Windows 7 will be more like the move from Windows 2000 to Windows XP/2003, a significant step forward but still not a major update (unlike NT 4.0 to Windows 2000, or XP/2003 to Vista/2008). That’s good – especially for corporate IT departments struggling with Vista application compatibility (mostly through their own lack of foresight it should be noted). I understand why it’s numbered 6.1 internally but why confuse the issue by calling it 7 for marketing purposes?

I have a feeling that Windows 7 will not, despite yesterday’s announcement, be the final product name.

Microsoft Virtualization: part 5 (presentation virtualisation)

Continuing the series of posts on Microsoft Virtualization technologies, I’ll move onto what Microsoft refers to as presentation virtualisation (and everyone else calls terminal services, or server based computing).

Like host virtualisation, Terminal Services is not a new technology and Microsoft has provided basic Terminal Server capabilities within Windows Server for many years, with Citrix providing the enterprise functionality for those who need it. With Windows Server 2008, Microsoft has taken a step forward, introducing new Terminal Services functionality – with new features including:

  • Terminal Services Web Access – providing a web portal for access to RemoteApps – applications which run on the terminal server but have the look and feel of a local application (albeit subject to the limitations of the RDP connection – this is probably not the best way to deploy graphics-intensive applications). Whilst this is a great feature, it is somewhat let down by the fact that the Web Access portal is not customisable and that all users see all RemoteApps (although permissions are applied to control the execution of RemoteApps). For web access to RemoteApps, v6.1 of the Remote Desktop Connection (RDP) client is required but for v6.0 clients an MSI may be created using RemoteApp Manager (which may be deployed using Active Directory group policy).
  • Terminal Services Gateway – provides a seamless connection to Terminal Services (over HTTPS) without need for a VPN. It’s not intended to replace the need for a firewall (e.g. ISA Server) but it does mean that only one port needs to be opened (443) and may be an appropriate solution when a local copy of the data is not required or when bandwidth/application characteristics make the VPN experience poor.
  • Terminal Services Session Broker – a new role to provide load balancing and which enables a user to reconnect to an existing session in a load-balanced terminal server farm.

There are improvements on the client end too – for details of the client enhancements in Remote Desktop Connection (v6.1), provided with Windows XP SP3, Vista SP1 and Server 2008 see Microsoft knowledge base article 951616.

One of the more signicificant improvements in RDP 6.1 (but which requires Windows Server 2008 Terminal Services Printing) is Terminal Services EasyPrint. Whereas printing is traditionally problematic in a server-based computing environment (matching drivers, etc.) – Terminal Services EasyPrint presents a local print dialog and prints to the local printer – no print drivers are required on the server and there is complete transparency if a 32-bit client is used with a 64-bit server. If the application understands XPS (i.e. it uses the Windows Presentation Framework) then it prints XPS using the EasyPrint XPS Driver (which creates an XPS spool file). Otherwise there is a GDI to XPS conversion module (e.g. for Win32 applications). On the client side, the spool file is received over RDP using the Remote Desktop Connection with an EasyPrint plugin to spool the XPS through an XPS printer driver (converted by print processor if required). If the print device does not support XPS, the print job is converted to EMF by the Microsoft.NET Framework and printed using a GDI printer driver.

Terminal Services EasyPrint

Whilst Microsoft’s presentation virtualisation offerings may not be as fully-featured as those from other vendors, most notably Citrix, they are included within the Windows Server 2008 operating system and offer a lot of additional functionality when compared with previous Windows Server releases.

In the next post in this series, I’ll look at how the four strands of Microsoft Virtualization (host/server, desktop, application and presentation) are encapsulated within an overall management framework using System Center products.

Microsoft Virtualization: part 4 (application virtualisation)

I’m getting behind on my blogging (my day job keeps getting in the way) but this post continues the series I started on Microsoft’s virtualisation technologies. So far, I’ve set the scene, looked at host/server virtualisation and desktop virtualisation and this time it’s Microsoft Application Virtualization – formerly known as SoftGrid and also known as App-V.

Microsoft provides a technical overview of App-V but the basic premise is that applications are isolated from one another whilst running on the same operating system. In fact, with App-V, the applications are not even installed but are sequenced into a virtual environment by monitoring file and registry changes made by the application and wrapping these up as a single file which is streamed to users on demand (or loaded from a local cache) to execute in its own “bubble” (technically known as a SystemGuard environment). Whilst not all applications are suitable for virtualisation (e.g. those that run at system level, or require specialist hardware such as a “dongle”) many are and one significant advantage is that the virtualised applications can also be run in a terminal services environment (without needing separate packages for desktop and server-based computing). It’s worth considering though, that virtualising an application doesn’t change the license – so, whilst it may be possible to run two versions of an application side by side, it may not be allowed under the terms of the end user license agreement (e.g. Internet Explorer).

I wrote a post about application virtualisation using Softricity SoftGrid a couple of years ago but, with App-V v4.5, Microsoft has made a number of significant changes. The main investment areas have related to allowing virtualised applications to communicate (through a new feature called dynamic suite composition), extending scalability, globalisation/localisation and security.

Of the many improvements in App-V v4.5, arguably the main feature is the new dynamic suite composition functionality. Using dynamic suite composition, the administrator can group applications so that shared components are re-used, reducing the package size and allowing plugins and middleware to be sequenced separately from the applications that will use them. This is controlled through definition of dependencies (mandatory or optional) so that two SystemGuard environments (App-V “bubbles”) can share the same virtual environment.

On the scalability front, App-V 4.5 also takes a step forward, as it provides three delivery options to strike a balance between enterprise deployment in a distributed environment and retaining the benefits of application isolation and on-demand delivery. The three delivery options are:

  • Full infrastructure – with a desktop publishing service, dynamic delivery and active package upgrades but requiring the use of Active Directory and SQL Server.
  • Lightweight infrastructure – still allowing dynamic delivery and active package upgrades but without the need for SQL Server, allowing application streaming capability to be added to Microsoft System Center Configuration Manager or third party enterprise software delivery frameworks.
  • Standalone mode – with no server infrastructure required and MSI packages as the configuration control, then mode allows standalone execution of virtual applications and is also interoperable with Microsoft System Center Configuration Manager or third party enterprise software delivery applications but it does not allow dynamic delivery or active package upgrades.

Additional scalability enhancements include background streaming (auto-load at login or at first launch for quick launch and offline availability) and the configuration of application source roots (for a local client to determine the appropriate server to use) as well as client support for Windows Server 2008 Terminal Services (in Microsoft Application Virtualization for Terminal Services). There are also new options for resource targeting for the application, open software description (OSD) and icon files, enhanced data metering (a WMI provider to collect application usage information) and better integration with the Windows platform (Microsoft Update and volume shadow copy service support, a System Center Operations Manager (SCOM) 2007 management pack, group policy template support, a best practice analyser and improved diagnostic support. Finally on the scalability front, the sequencer has been enhanced with a streamlined process (fewer wizards and less clicks), MSI creation capability (for standalone use), improvements at the command line and differential SFT file support for updates.

App-V is not the only application virtualisation technology (notable alternatives include VMware ThinApp – formerly Thinstall and Symantec/Altiris SVS) but it is one of the best-known. It’s also an important component of the Microsoft Virtualization strategy. In the next post in this series, I’ll take a look at presentation virtualisation.

Finally, it’s worth noting that I’m not an application virtualisation expert – but Aaron Parker is – if you’re interested in this topic then it’s worth adding Aaron’s blog to your feed reader.