CHAPTER 16
Compatibility Testing

At this point in the book, the new features of Windows Server 2016 have been presented and discussed in depth, as have the essential design considerations and migration processes. The goal of this chapter is to examine the process of testing the actual applications that rely on the Windows Server 2016 infrastructure.

This chapter provides insight into the steps necessary to gather information before the testing process begins, how to actually test the applications and document the results, and how to determine whether a more extensive prototype testing process is needed. Going through this process is vital to ensure the success of the project and to avoid a displeased end-user community. The application testing process is intended as a quick way to validate the compatibility and functionality of the proposed end state for the upgrade.

Currently, many companies are seeking to optimize their network environment, whether that is getting the best use out of servers on-premise or migrating server services to the cloud. Migrating to Windows Server 2016 with its higher capacity limits and multitenant capabilities is a chance to optimize servers within the network infrastructure. At the end of the process, fewer servers will handle the same tasks as before, and new functionality and cloud-based services might have been added, making the configurations of the environment that much more complex, and making it even more important to thoroughly test the mission-critical networking applications for compatibility. For example, Windows Server 2016 introduces a tremendous number of new technologies that enhance failover clustering, web applications, virtualization, security, Remote Desktop Services, improved branch office deployments, cloud services with Azure, and much more, prompting some organizations to replace existing Windows systems with Windows Server 2016. Therefore, it is even more important to test this configuration to ensure that the hardware and software are compatible, the performance meets user expectations, and the everyday features used by the employees to share knowledge and collaborate are in place.

The results of the application compatibility testing process will validate the goals of the project or reveal goals that need to be modified because of application incompatibility or instability. If one key application simply will not work reliably on Windows Server 2016, the legacy Windows system might need to be kept as part of the networking environment, which changes the overall design. As discussed in Part II of this book, “Windows Server 2016 Active Directory,” a variety of different combinations of Windows Server system configurations can be combined in the end configuration, so the chances that there will be a way to keep the troublesome applications working in the new environment are good.

       NOTE

Many legacy systems running old applications and operating systems cannot be upgraded to Windows Server 2016. This is because the application is not compatible with 64-bit operating systems like what Windows Server 2016 is built under. A direct upgrade from the legacy operating system is not supported, and the hardware is not compatible with Windows Server 2016. When these circumstances exist, it is common for organizations to utilize virtualization technologies such as Hyper-V Server or VMware to emulate and maintain these legacy applications and operating systems.


The Importance of Compatibility Testing

The process presented in this chapter is an essential step to take in validating the design for the end state of the migration or upgrade. The size of the organization and the breadth and scope of the upgrade are important factors to consider in determining the level of testing needed and whether a full prototype should be conducted.

The differences between a prototype phase and an application testing phase can be dramatic or negligible based on the nature of the upgrade. A prototype phase replicates the end state as completely as possible, often using the same hardware in the test lab that will be used in the production rollout.

       CAUTION

Application testing can be performed on different hardware with different configurations than the end state, but be aware that the more differences there are between the testing environment and the actual upgraded environment, the greater the risk for unexpected results. Essentially, you can perform application testing without complete prototyping, but you shouldn’t prototype without a thorough application testing process. This recommendation also applies when you are planning to use virtual technologies such as Hyper-V.


Most network users do not know or care which server or how many servers perform which task or house which application, but they will be unhappy if an application no longer works after a migration to Windows Server 2016. If the organization already has Active Directory in place and is running Windows Server 2008/2008 R2 systems, the risk of application incompatibility is likely to be less than if the organization is migrating from an older operating system, such as Windows Serve 2003, Windows 2000 (or earlier) or a competing operating system, such as Novell NetWare.

Preparing for Compatibility Testing

Although the amount of preparation needed will vary based on a number of factors, certain steps should be followed in any organization—the scope of the testing should be identified (what’s in and what’s out), the goals of the testing process should be clarified, and the process should be mapped out.

A significant advantage of following a phased design methodology, as presented in Chapter 2, “Planning, Prototyping, Migrating, and Deploying Windows Server,” is in the planning discussions that take place and in the resulting statements of work, design, and migration documents that are created as deliverables. Often, companies contract with migration experts or Microsoft partners—such as Convergent Computing, also known as CCO—to help companies avoid classic mistakes in the upgrade process. By the end of this planning process, it will be clear why the project is happening, which departments need which features and capabilities, and what budget is available to perform the work. The timeline and key milestones also will be defined.

If a phased discovery and design process hasn’t been followed, this information needs to be gathered to ensure that the testing process addresses the goals of the project stakeholders, and that the right applications are in fact tested and verified by the appropriate people.

Determining the Scope for Application Testing

At this point in the process, a list should be put together that clarifies which Windows Server 2016 version is to be used, which version of server software will be used, which add-in features are required, and which third-party applications are needed. As discussed previously, Windows Server 2016 comes in Standard and Datacenter Editions. Windows Server 2016 comes in a 64-bit version only, eliminating the 32-bit version of the server operating system. Smaller organizations might choose to use the Standard Edition of Windows Server 2016 operating system, whereas larger organizations might require the Datacenter Edition on their server systems to support greater densities of virtual guest sessions.

A key issue to discuss at this point is whether it is acceptable to have multiple versions of the Windows Server operating system in the final solution. Some organizations want to control standards on both software and support services and require just a single network operating system such as Windows Server 2016 across the board.

       NOTE

Although the Standard Edition of Windows Server 2016 is less expensive than the Datacenter Edition of the license, cost should not be the primary reason for choosing one version over another. The way Microsoft is doing licensing of Windows Server 2016, the versions are no longer limited in basic features like clustering, load balancing, or support for memory per guest session and rather focused on the number of virtual instances that can be run on the operating systems. Organizations that need to run more than a couple virtual guest sessions on a host system will buy the Datacenter Edition of the software just to increase the density of guest sessions per host server.


Third-party applications should be identified as well. The applications most often used include tape-backup software modules or agents, antivirus software, fax software, and voicemail integration products. Additional third-party add-on products might include the following:

Image Administration

Image Antispam

Image Backup and storage

Image Customer relationship management (CRM)

Image Log monitoring

Image Line-of-business applications

Image Migration

Image Reporting

Image Security and encryption

The hardware to be used should be listed, as well, to ensure that it is available when needed. Ideally, the exact hardware to be used in the upgrade will be ordered for the application testing process, but if that is not possible, hardware with specifications similar to that of the servers that will eventually be used should be allocated. Although processor speed and amount of RAM will most likely not make a difference to whether the application functions properly on the server platform, certain hardware devices should be as similar as possible. Tape drives, for example, should have the same features as the ones to be used in the production environment because this is one of the most critical components. If an autoloader will be used in the production environment, one should be made available for the application testing process. If faxing from the Outlook Inbox is required, the same faxing hardware should also be allocated. Another example is implementing clustering with a storage-area network (SAN) back end. If a SAN will be used in production and the test criteria of the lab is to validate clustering functionality, the same production SAN should be used in the test environment. By using the same SAN solution, clustering test criteria and clustering functionality can be validated and guaranteed.

Some applications require clients to be present for the testing process, so at least one workstation class system should be available for this purpose. Connectivity to the Internet might also be necessary for testing the functionality of remote access products and antivirus software.

Table 16.1 shows a sample checklist of requirements for summarizing the scope of the application testing phase.

TABLE 16.1 Checklist for Application Testing

Server #1 Details (Include Version Numbers)

Server specs required:

Processor

RAM

Hard drive configuration

Other

Network operating system and service packs:

Tape backup software version and agents:

Additional third-party apps required:

Virtualization? Yes/No

Additional hardware required:

SAN device

Tape drive

UPS

Switch/hub

Other

Internet access required? Yes/No

This process should not take a great deal of time if previous planning has taken place. If the planning phase was skipped, some brainstorming will be required to ensure that the scope includes all the key ingredients required for the application testing. The goals for the application testing process will also affect the scope, which is covered in the following section.

Defining the Goals for Compatibility Testing

As with the previous step of defining the scope of the testing process, defining the goals might be a very quick process, or could require some discussions with the stakeholders involved in the project.

One useful way of looking at the goals for the project is to treat them as the checklist for successful completion of the testing. What conditions need to be met for the organization to confidently move forward with the next step in the Windows migration? The next step might be a more complete prototype testing phase. For smaller organizations, it might be a pilot rollout, where the new networking environment is offered to a select group of savvy users.

These goals are separate from the business goals the company might have, such as a more reliable network infrastructure or improved security. A more complete prototype phase could seek to address these goals, while the application testing process stays focused on the performance of the specific combinations of the operating system and embedded and connected applications.

A convenient way to differentiate the goals of the project is to split them into key areas, as described in the following sections.

Time Frame for the Testing

This goal can be defined with this statement: “The testing must be completed in X days/weeks.”

If there is very little time available to perform the testing, this limits how much time can be spent on each application and how many end users can put each through its paces. It also necessitates a lesser degree of documentation. Remember to include time for researching the applications’ compatibility with the vendors as part of the timeline. A quick project plan might be useful in this process as a way of verifying the assumptions and selling the timeline to the decision makers.

Contingency time should ideally be built in to this goal. Resources assigned to the testing can get sick or might be pulled back into the office for production support, or applications might require additional testing when problems are encountered. Vendors might not provide trial versions of the software as quickly as desired, or new versions of software or even the hardware itself can be delayed. With many companies seeking to consolidate the number of servers in use, it is not uncommon to see labs evolve through the testing process. Different versions of the Windows operating system are used, as are different versions of various application software programs.

       Estimating the Duration of the Application Testing Process

A good rule of thumb is to allow four hours per application to be tested for basic testing and eight hours for a more thorough testing process. This allows time for the initial research with the vendors, configuration of the Windows Server 2016 operating system, and testing of the applications. Of course, the total time required will vary based on the types of applications to be tested.

For example, a Windows Server 2016 system with a line-of-business application, such as an enterprise resource planning (ERP) program with a front-end web application, would take an estimated one or two days to test for basic compatibility and functionality, and potentially a week for more rigorous testing.

Note that if more than one resource is available to perform the testing, these configurations can be tested in parallel, shortening the duration of the process, but not the work effort.

It is always better to have some extra time during the testing phase. This time can be used for more extensive user testing, training, or documentation.


Budget for the Testing

This goal can be defined with this statement: “The testing must be completed within a budget of $X.”

Of course, there might be no budget allocated for testing, but it is better to know this as soon as possible. A lack of budget means that no new hardware can be ordered, evaluation copies of the software (both Microsoft and the third-party applications) need to be used, and no external resources will be brought in. If the budget is available or can be accessed in advance of the production upgrade, a subset of the production hardware should be ordered for this phase. Testing on the exact hardware that will be used in the actual upgrade rather than a cast-off server will yield more valuable results.

More and more virtualization technology is being utilized in test labs for reducing costs associated with hardware procurement. Virtualization is an excellent way to reduce capital expenditures. Keep in mind that hardware-specific prototype testing cannot be achieved when using virtualization as the guest operating system. In addition, performance metrics might get skewed when running more than one guest operating system on a virtual server.

Resources to Be Used

This goal can be defined with this statement: “The testing will be completed by in-house resources or external consultants.”

Often, the internal network administration staff is too busy with daily tasks or tackling emergencies that spring up (which might be the reason for the upgrade in the first place), and staff personnel should not be expected to dedicate 100% of their time to the testing process.

If an outside consulting firm with expertise in Windows Server 2016 is going to be used in the testing process, it can be a good leverage point to have already created and decided on an internal budget for the testing process. This cuts down on the time it takes to debate the approaches from competing firms.

Extent of the Testing

The extent of compatibility testing can be defined with this statement: “Each application will be tested for basic, midlevel, or complete compatibility and feature sets.”

This goal might be set for different types of applications where some mission-critical applications would need to have extensive testing, whereas less-critical applications might have more basic testing performed. A short time frame with a tightly limited budget will not allow for extensive testing, so basic compatibility will most likely be the goal.

       Defining the Different Levels of Compatibility Testing

Basic compatibility testing, as used in this chapter, essentially means that the mission-critical applications are tested to verify that they load without errors and perform their primary functions properly with Windows Server 2016. Often the goal with basic testing is to simply see whether the application works, without spending a lot of time or money on hardware and resources, and with a minimum amount of documentation and training. Note that this level of testing reduces but does not eliminate the risks involved in the production rollout.

Midlevel testing is defined as a process whereby Windows Server 2016 is configured with all the applications that will be present in the eventual implementation, so that the test configuration matches the production configuration as closely as possible to reduce the chance of surprise behavior during the rollout. This level of testing requires more preparation to understand the configuration and more involvement from testing resources, and should include end users. Some training should take place during the process, and documentation is created to record the server configurations and details of the testing process. Although this level of testing greatly reduces the risks of problems during the production migration or upgrade, the migration process of moving data between servers and training the resources on this process hasn’t been covered, so some uncertainty still exists.

Complete testing adds additional resource training and possibly end-user training during the process and should include testing of the actual migration process. Complete training requires more documentation to record the processes required to build or image servers and perform the migration steps. Complete testing is what is typically defined as the prototype phase.


Training Requirements During Testing

This goal can be defined with this statement: “Company IT resources will/will not receive training during the application testing process.”

Although the IT resources performing the testing will learn a great deal by going through the testing process, the organization might want to provide additional training to these individuals, especially if new functionality and applications are being tested. If external consultants are brought in, it is important that the organization’s own resources are still involved in the testing process for training and validation purposes. The application testing phase might be an excellent time to have help desk personnel or departmental managers in the user community learn more about new features that will soon be offered so they can help support the user community and generate excitement for the project.

Documentation Required

This goal can be defined with this statement: “Documentation will/will not be generated to summarize the process and results.”

Again, the budget and timeline for the testing will affect the answer to this question. Many organizations require a paper trail for all testing procedures, especially when the Windows infrastructure will have an impact on the viability of the business itself. For other organizations, the networking environment is not as critical, so less or no documentation might be required.

The application testing phase is a great opportunity to document the steps required for application installations or upgrades if time permits, and this level of instruction can greatly facilitate the production rollout of the upgraded networking components.

Extent of User Community Involvement

This goal can be defined with this statement: “End users will be included/will not be included in the testing process.”

If there are applications—such as customer relationship management (CRM), document routing, voicemail or paging add-ons, or connectivity to PDAs and mobile devices—a higher level of user testing (at least from the power users and executives) should be considered.

Fate of the Testing Lab

This goal can be defined with this statement: “The application testing lab will/will not remain in place after the testing is complete.”

Organizations decide to keep labs in place after their primary purpose has been served for a number of reasons. Whenever a patch or upgrade to Windows Server 2016 or to a third-party application integrates with Windows Server 2016, it is advisable to test it in a nonproduction environment. Even seemingly innocent patches to antivirus products can crash a production server. Other items might require user testing to see whether they should be rolled out to the production servers.

Documenting the Compatibility Testing Plan

The information discussed and gathered through the previous exercises needs to be gathered and distributed to the stakeholders to ensure that the members of the team are working toward the same goals. These components are the scope and the goals of the application testing process and should include the timeline, budget, extent of the testing (basic, midlevel, complete), training requirements, documentation requirements, and fate of the testing lab. This step is even more important if a formal discovery and design phase was not completed.

By taking the time to document these constraints, the testing process will be more structured and less likely to miss a key step or get bogged down on one application. The individuals performing the testing will essentially have a checklist of the exact testing process, and are less likely to spend an inordinate amount of time on one application, or “get creative” and try products that are not within the scope of work. After the testing is complete, the stakeholders will also have made it clear what is expected in terms of documentation so the results of the testing can be presented and reviewed efficiently.

This summary document should be presented to the stakeholders of the project for review and approval. The organization is then ready to proceed with the research and testing process for Windows Server 2016 compatibility.

Researching Products and Applications

The next step in the compatibility testing process is to actually begin research on the products and applications being tested. With the documented goals and expectations of the necessary compatibility testing process, the organization can proceed with information gathering.

Taking Inventory of Network Systems

The first step of the information-gathering process is to take inventory of the network systems that will be part of the Windows Server 2016 environment. These systems include domain controllers, application servers, gateway systems, and utility servers.

       NOTE

When you are identifying the systems that are part of the Windows Server 2016 environment, you should create separate lists that note whether a server is a domain controller or member server of the environment, or whether the server is standalone and does not directly interact with the domain. Usually, standalone servers that are not integrated into the domain are significantly less likely to require a parallel upgrade to Windows Server 2016. Because the system is operating as a standalone, it will typically continue to operate in that manner and can be removed from the scope of testing and migration during the initial migration phase. Removing this server can also greatly minimize the scope of the project by limiting the number of servers that need to be included in the testing and migration process.


For systems that are part of the network domain, the devices should be identified by which network operating system they are running. Another item that should be captured is whether the server is physical or virtual. Table 16.2 shows a sample system device inventory sheet.

TABLE 16.2 System Device Inventory Table

Server Name

Member of Domain (Y/N)

Domain Controller (Y/N)

Virtual Server (Y/N)

General Functions

Operating System

SERVER-A

Y

Y

Y

DC, DNS, DHCP

Windows 2003 R2

SERVER-B

Y

N

N

Exchange Server

Windows 2008 R2

SERVER-C

Y

N

Y

File/Print Server

Windows 2008

SERVER-D

N

N

N

WWW Web Server

Windows 2003 SP2

Taking Inventory of Applications on Existing Servers

Now that you have a list of the server systems on your network, the next step is to take inventory of the applications running on the systems. Take care to identify all applications running on a system, including tape software, antivirus software, network monitoring, and management utilities.

The primary applications that need to be upgraded will be obvious, as will the standard services such as data backup and antivirus software. However, in most organizations, additional applications hiding on the network need to be identified. If System Center Configuration Manager 2007/2012/2012 R2 (ConfigMgr) is in use, or another network management tool with inventory capabilities, it should also be able to provide this basic information.

       NOTE

Another angle to validating that all applications are tested before a migration is to just ask all departmental managers to provide a list of applications that are essential for them and their employees. This takes the opposite angle of looking not at the servers and the applications, but looking at what the managers or employees in the organization say they use as part of their job responsibilities. From these lists, you can put together a master list.


Understanding the Differences Between Applications and Windows Services

We need to make a distinction as it pertains to the Windows Server 2016 operating environment. Applications are programs that run on top of Windows Server 2016, such as application tools or front-end services, and services are programs that integrate with the operating system, such as SQL, Exchange, antivirus applications, and so on. As discussed previously, in the .NET Framework, applications are designed to sit on top of the Windows platform, so the more embedded the legacy application is in the operating system, the greater the potential for problems.

It is also helpful to separate the Microsoft and non-Microsoft applications and services. The Microsoft applications that are to be upgraded to the new Windows Server 2016 environment are likely to have been thoroughly tested by Microsoft. Possible incompatibilities should have been identified, and a great deal of information will be available on Microsoft TechNet or on the Microsoft product page of its website. For non-Microsoft applications and services, however, weeks could pass after a product’s release before information about any compatibility problems with the Microsoft operating system surfaces. This holds true for service packs and product updates, as well, where problems might be made public weeks or months after the release of the update.

Furthermore, many organizations that create custom applications will find that little information is available on Windows Server 2016 compatibility, so they could require more complex lab tests to validate compatibility.

Completing an Inventory Sheet per Application

An organization should create an inventory sheet for each application being validated. Having an inventory sheet per application can result in dozens, if not hundreds, of sheets of paper. However, each application needs to go through extensive verification for compatibility, so the information gathered will be helpful.

A sample product inventory sheet includes the following categories:

Image Vendor name

Image Product name

Image Version number

Image Application or service?

Image Mission-critical?

Image Compatible with Windows Server 2016 (Y/N)?

Image Vendor-stated requirements to make compatible

Image Decision to migrate (update, upgrade, replace, remain on existing OS, stop using, proceed without vendor support)

Additional items that might be relevant could include which offices or departments use the application, how many users need it, and so on.

Any notes from the vendor, such as whitepapers for migration, tip/trick migration steps, upgrade utilities, and any other documentation should be printed, downloaded, and kept on file. Although a vendor might state that a product is compatible on its website today, you might find that by the time an upgrade occurs, the vendor has changed its statement on compatibility. Any backup information that led to the decision to proceed with the migration might also be useful in the future.

Prioritizing the Applications on the List

After you complete and review the list, you have specific information showing the consensus of which applications are critical and which are not.

There is no need to treat all applications and utilities with equal importance because a simple utility that does not work and is not identified as a critical application can be easily upgraded or replaced later and should not hold up the migration. However, problems with a mission-critical business application should be reviewed in detail because they might affect the whole upgrade process.

Remember that certain utility applications should be considered critical to any network environment. These include tape backup (with the appropriate agents) and virus-protection software. In organizations that perform network and systems management, management tools and agents are also essential.

Verifying Compatibility with Vendors

Armed with the full list of applications that need to be tested for compatibility, the application testing team can now start hitting the phones and delving into the vendors’ websites for the compatibility information.

For early adopters of certain application software programs, more research might be necessary because vendors tend to lag behind in publishing statements of compatibility with new products. Past experience has shown that simply using the search feature on the vendor’s site can be a frustrating process, so having an actual contact who has a vested interest in providing the latest and greatest information (such as the company’s sales representative) can be a great time-saver.

Each vendor tends to use its own terminology when discussing Windows Server 2016 compatibility (especially when it isn’t 100% tested); a functional way to define the level of compatibility is with the following four areas:

Image Compatible

Image Compatible with patches or updates

Image Not compatible (requires version upgrade)

Image Not compatible and no compatible version available (requires new product)

When possible, it is also a good practice to gather information about the specifics of the testing environment, such as the version and service pack (SP) level of the Windows operating system the application was tested with, along with the hardware devices (if applicable, such as tape drives, specific mobile devices, and so forth) tested.

Tracking Sheets for Application Compatibility Research

For organizational purposes, a tracking sheet should be created for each application to record the information discovered from the vendors. A sample product inventory sheet includes the following categories:

Image Vendor name

Image Product name and version number

Image Vendor contact name and contact information

Image Level of criticality: Critical, near-critical, or nice to have

Image Compatible with Windows Server 2016: Yes/No/Did not say

Image Vendor-stated requirements to upgrade or make application compatible

Image Recommended action: None, patch/fix/update, version upgrade, replace with new product, stop using product, continue using product without vendor support

Image Operating system compatibility: Windows Server 2012/2012 R2, Windows Server 2008/2008 R2, Windows Server 2003, other

Image Processor architecture compatibility: 64-bit compatible?

Image Notes: Conversation notes, URLs used, copies of printed compatibility statements, or hard copy provided by vendor

It is a matter of judgment as to the extent of the notes from discussions with the vendors and materials printed from websites that are retained and included with the inventory sheet and kept on file. Remember that URLs change frequently, so it makes sense to print the information when it is located.

In cases where product upgrades are required, information can be recorded on the part numbers, cost, and other pertinent information.

Six States of Compatibility

There are essentially six possible states of compatibility that can be defined, based on the input from the vendors, and that need to be verified during the testing process. These levels of compatibility roughly equate to levels of risk of unanticipated behavior and issues during the upgrade process:

1. The application version currently in use is compatible with Windows Server 2016.

2. The application version currently in use is compatible with Windows Server 2016, with a minor update or service patch.

3. The application currently in use is compatible with Windows Server 2016, with a version upgrade of the application.

4. The application currently in use is not compatible with Windows Server 2016 and no upgrade is available, but it will be kept running as is on an older version of Windows Server (or other network operating system) in the upgraded Windows Server 2016 networking environment.

5. The application currently in use is not compatible with Windows Server 2016 and will be phased out and not used after the upgrade is complete.

6. The application currently in use is not compatible with Windows Server 2016 per the vendor, or no information about compatibility was available, but it apparently runs on Windows Server 2016, so the organization needs to determine whether it will run the application on an operating system potentially not supported by the application vendor.

Each of these states is discussed in more detail in the following sections.

Using a Windows Server 2016–Compatible Application

Although most applications require some sort of upgrade, the vendor might simply state that the version currently in use will work properly with Windows Server 2016 and provide supporting documentation or specify a URL with more information about the topic. This is more likely to be the case with applications that do not integrate with the Windows Server components, but instead interface with certain components, and might even be installed on separate servers.

It is up to the organization to determine whether testing is necessary to verify the vendor’s compatibility statement. If the application in question is critical to the integrity or security of the Windows Server 2016 operating system or provides the users with features and capabilities that enhance their business activities and transactions, testing is definitely recommended. For upgrades that have short time frames and limited budgets available for testing (basic testing as defined earlier in the chapter), these applications might be demoted to the bottom of the list of priorities and would be tested only after the applications requiring updates or upgrades had been tested.

A clear benefit of the applications that the vendor verifies as being Windows Server 2016 compatible is that the administrative staff will already know how to install and support the product and how it interfaces with Windows Server 2016 and the help desk; end users will not need to be trained or endure the learning curves required by new versions of the products.

       NOTE

As mentioned previously, make sure to clarify what network operating system and which specific version of Windows operating system were used in the testing process, including the processor architecture version, because seemingly insignificant changes, such as security patches to the OS, can influence the product’s performance in your upgraded environment. Tape backup software is notorious for being very sensitive to minor changes in the version of Windows, and tape backups can appear to be working when they aren’t. If devices such as text pagers or mobile devices are involved in the process, the specific operating systems tested and the details of the hardware models should be verified if possible to ensure that the vendor testing included the models in use by the organization.

If a number of applications are being installed on one Windows Server 2016 system, unpredictable conflicts are possible. Therefore, testing is still recommended for mission-critical Windows Server 2016 applications, even for applications the vendor asserts are fully compatible with Windows Server 2016.


Requiring a Minor Update or Service Patch for Compatibility

When upgrading from Windows Server 2008 or Windows Server 2008 R2, many applications simply need a relatively minor service update or patch for compatibility with Windows Server 2016. This is less likely to be the case when migrating from Windows Server 2003 or a completely different operating system, such as Novell NetWare or Linux. This is also evident when running web applications because IIS Web Services has evolved and been completely rewritten.

During the testing process, the service updates and patches are typically quick and easy to install, are available over the Internet, and are often free of charge. It is important to read any notes or readme files that come with the update because specific settings in the Windows Server 2016 configuration might need to be modified for them to work. These updates and patches tend to change and be updated themselves after they are released, so it is worth checking periodically to see whether new revisions have become available.

These types of updates generally do not affect the core features or functionality of the products in most cases, although some new features might be introduced, so they have little training and support ramifications because the help desk and support staff will already be experienced in supporting the products.

Applications that Require a Version Upgrade for Compatibility

In other cases, especially when migrating from Windows 2000 or another network operating system, a complete migration strategy is required, and this tends to be a more complex process than downloading a patch or installing a minor update to the product. The process varies by product, with some allowing an in-place upgrade, where the software is not on the Windows Server 2016 server itself, and others simply installing from scratch.

The amount of time required to install and test these upgrades is greater, the learning curve steeper, and the danger of technical complexities and issues increases. Thus, additional time should be allowed for testing the installation process of the new products, configuring them for optimal Windows connectivity, and fine-tuning for performance factors. Training for the IT resources and help desk staff will be important because of the probability of significant differences between the new and old versions.

Compatibility with all hardware devices should not be taken for granted, whether it is the server itself, tape backup devices, or SAN hardware.

If a new version of the product is required, it can be difficult to avoid paying for the upgrade, so budget can become a factor. Some vendors can be persuaded to provide evaluation copies that expire after 30 to 120 days.

Handling an Incompatible Application that Will Remain “As Is”

As discussed earlier in this chapter, Windows Server 2016 can coexist with earlier versions of the Windows operating system, so a Windows Server 2016 migration does not require that every server be upgraded. In larger organizations, for example, smaller offices might choose to remain on legacy versions for a period of time if there are legitimate business reasons or cost concerns with upgrading expensive applications. If custom scripts or applications have been written that integrate and add functionality to Windows 2000 Server or Windows Server 2003, it might make sense to keep those servers intact on the network, or better yet put in a strategy to upgrade the scripts to support a more currently supported operating system.

Although it might sound like an opportunity to skip any testing because the server configurations aren’t changing, connectivity to the new Windows Server 2016 configurations still needs to be tested, to ensure that the functionality between the servers is stable.

Again, in this scenario, the application itself is not upgraded, modified, or changed, so there will not be a requirement for administrative or end-user training.

Incompatible Applications that Will Not Be Used

An organization might decide that because an application is incompatible with Windows Server 2016, no upgrade is available, or the cost is prohibitive, so it will simply retire it. Windows Server 2016 includes a variety of new features, as discussed throughout the book, which might make certain utilities and management tools unnecessary. For example, a disaster recovery module for a tape backup product might no longer be necessary after clustering is implemented.

Take care during the testing process to note the differences that the administrative staff, help desk, and end users will notice in the day-to-day interactions with the networking system. If features are disappearing, a survey to assess the impact can be very helpful. Many users will raise a fuss if a feature suddenly goes away, even if it was rarely used, whereas the complaints could be avoided if they had been informed in advance.

Officially Incompatible Applications That Seem to Work Fine

The final category applies to situations in which no information can be found about compatibility. Some vendors choose to provide no information and take no stance on compatibility with Windows Server 2016. This puts the organization in a precarious situation, as it has to rely on internal testing results to make a decision. Even if the application seems to work properly, the decision might be made to phase out or retire the product if its failure could harm the business process. If the application performs a valuable function, it is probably time to look for or create a replacement, or at least to allocate time for this process at a later time.

If the organization chooses to keep the application, it might be kept in place on an older version of Windows or moved to the new Windows Server 2016 environment. In either case, the administrative staff, help desk, and end users should be warned that the application is not officially supported or officially compatible and might behave erratically.

Creating an Upgrade Decision Matrix

Although each application will have its own inventory sheet, it is helpful to put together a brief summary document outlining the final results of the vendor research process and the ramifications to the network upgrade project. As with all documents that affect the scope and end state of the network infrastructure, this document should be reviewed and approved by the project stakeholders.

This document can be expanded to summarize which applications will be installed on which network server if there are going to be multiple Windows Server 2016 servers in the final configuration. In this way, the document can serve as a checklist to follow during the actual testing process.

Assessing the Effects of the Compatibility Results on the Compatibility Testing Plan

After all the data has been collected on the compatibility, lack of compatibility, or lack of information, the compatibility testing plan should be revisited to see whether changes need to be made. As discussed earlier in the chapter, the components of the compatibility testing plan are the scope of the application testing process and the goals of the process (timeline, budget, extent of the testing, training requirements, documentation requirements, and fate of the testing lab).

Some of the goals might now be more difficult to meet, and require additional budget, time, and resources. If essential network applications need to be replaced with version upgrades or a solution from a different vendor, additional time for testing and training might also be required. Certain key end users might also need to roll up their sleeves and perform hands-on testing to ensure that the new products perform to their expectations.

This might be the point in the application testing process at which a decision is made that a more complete prototype testing phase is needed, and the lab would be expanded to more closely, or exactly, resemble the end state of the migration.

Microsoft Assessment and Planning Toolkit

As mentioned throughout the chapter, it is important to conduct compatibility testing when upgrading or migrating to Windows Server 2016. It is essential to have specific knowledge about each server within the infrastructure and whether the server and associated hardware and software are ready for Windows Server 2016. Microsoft has a free toolkit that will help accelerate your migration to Windows Server 2016.

The Microsoft Assessment and Planning (MAP) toolkit can assist with a migration or upgrade to Windows Server 2016 by conducting inventory, assessments, and reporting on servers throughout the infrastructure. In addition, unlike other tools, it can gather information without installing agents on servers.

You can download the toolkit from http://technet.microsoft.com/en-us/library/bb977556.aspx. After the toolkit is installed, you can create a server inventory report, which will identify currently installed operating systems. The report will also include detailed analysis of software and hardware readiness and compatibility with Windows Server 2016.

Lab-Testing Existing Applications

With the preparation and research completed and the compatibility testing plan verified as needed, the actual testing can begin. The testing process should be fairly anticlimactic at this point because the process has been discussed at length, and it will be clear what the testing goals are and which applications will be tested. Due diligence in terms of vendor research should be complete, and now it is just a matter of building the test server or servers and documenting the results.

The testing process can yield unforeseen results because the exact combination of hardware and software might affect the performance of a key application, but it's far better to have this occur in a nonproduction environment where failures won’t affect the organization’s ability to deliver its services.

During the testing process, valuable experience with the installation and upgrade process will be gained and will contribute to the success of the production migration. The migration team will be familiar with—or possibly experts at—the installation and application migration processes when it counts, and are more likely to avoid configuration mistakes and resolve technical issues.

Allocating and Configuring Hardware

Ideally, the budget will be available to purchase the same server hardware and related peripherals (such as tape drives, UPSs, mobile devices, and applications) that will be used in the production migration. This is preferable to using a server machine that has been sitting in a closet for an undetermined period of time, which might respond differently than the eventual hardware that will be used. Using old hardware can actually generate more work in the long run and adds more variables to an already complex process.

If the testing process is to exactly mirror the production environment, this would be considered to be a prototype phase, which is generally broader in scope than compatibility testing, and requires additional hardware, software, and time to complete. A prototype phase is recommended for more complex networks in which the upgrade process is riskier and more involved and in which the budget, time, and resources are available.

Don’t forget to allocate a representative workstation for each desktop operating system that is supported by the organization and a sample remote access system, such as a typical laptop or mobile device that is used by the sales force or traveling executive.

Allocating and Configuring Windows Server 2016

By this point, the software has been ordered, allocated, downloaded, and set aside for easy access, along with any notes taken or installation procedures downloaded in the research phase. If some time has elapsed since the compatibility research with the vendors, it is worth checking to see whether any new patches have been released. The upgrade decision matrix discussed earlier in the chapter is an excellent checklist to have on hand during this process to ensure that nothing is missed that could cause delays during the testing process.

When configuring the servers with the appropriate operating systems, the company standards for configurations, based on industry best practices, should be adhered to, if they have been documented. Standards can include the level of hard drive redundancy, separation of the application files and data files, naming conventions, roles of the servers, approved and tested security updates, and security configurations.

Next, Windows Server 2016 should be configured to also meet organization standards and then for the essential utilities that will protect the integrity of the data and the operating system, which typically include the backup software, antivirus software, and management utilities and applications. After this base configuration is completed, it can be worth performing a complete backup of the system or taking a snapshot of the server configuration in case the subsequent testing is problematic and a rollback is necessary.

Loading the Remaining Applications

With Windows Server 2016 configured with the core operating system and essential utilities, the value-added applications can be tested. Value-added applications enhance the functionality of Windows and enable the users to perform their jobs more efficiently and drive the business more effectively. It is helpful to provide a project plan calendar or schedule to the end users who will be assisting in the testing process at this point so they know when their services will be needed.

So many different combinations of applications might be installed and tested at this point that the different permutations cannot all be covered in this chapter. As a basic guideline, first test the most essential applications and the applications that were not identified previously as being compatible. By tackling the applications that are more likely to be problematic early on in the process, the testing resources will be fresh, and any flags can be raised to the stakeholders while there is still time left in the testing process for remediation.

Thorough testing by the end users is recommended, as is inclusion of the help desk staff in the process. Notes taken during the testing process will be valuable in creating any configuration guides or migration processes for the production implementation.

       NOTE

Beyond basic functionality, data entry, and access to application-specific data, some additional tests that indicate an application has been successfully installed in the test environment include printing to different standard printers, running standard reports, exporting and importing data, and exchanging information with other systems or devices. Testing should be done by end users of the application and administrative IT staff who support, maintain, and manage the application. Notes should be taken on the process and the results because they can prove very useful during the production migration.


Certified for Windows Server 2016

Microsoft offers a program that enables vendors to innovate on the Windows Server 2016 platform and related technologies. This program is called Innovate on Windows Server, and it allows vendors, organizations, and partners to build, test, and certify that their applications and products are compatible with Windows Server 2016. Once a product is certified, a logo is placed on it stating “Certified for Windows Server 2016.”

During the analysis phase of whether existing applications will be compatible with Windows Server 2016, it is a best practice to validate that the applications do carry the Certified for Windows Server 2016 logo by contacting the manufacturer. By having the logo, application testing and additional analysis of a specific application is minimized when upgrading to Windows Server 2016.

You can find the ISV Application Readiness and Certification program at www.windowsservercatalog.com. The program provides guidelines and validation that an application meets the standards for application compatibility and integration support expected in a tightly integrated Microsoft-based solution.

Testing the Migration and Upgrade Process

This section touches on the next logical step in the testing process. After it has been verified that the final configuration agreed on in the planning process is stable and which applications and utilities will be installed on which server, the actual upgrade process can be tested. The upgrade process is covered in Chapter 15, “Migrating to Active Directory 2016.”

Documenting the Results of the Compatibility Testing

A number of documents can be produced during the compatibility testing process. Understanding the expectations of the stakeholders and what the documents will be used for is important. For example, more detailed budgetary information might need to be compiled based on the information, or go/no-go decisions might need to be reached. Thus, a summary of the improvements offered by Windows Server 2016 in the areas of reliability, performance visible to the user community, and features improved and added might need to be presented in a convincing fashion.

At a minimum, a summary of the testing process should be created, and a final recommendation for the applications to be included in the production upgrade or migration should be provided to the stakeholders. This can be as simple as the upgrade decision matrix discussed earlier in the chapter, or it can be more thorough, including detailed notes of the exact testing procedures followed. Notes can be made available summarizing the results of end-user testing, validating the applications, and describing results—both positive and negative.

If the testing hardware is the same as the hardware that will be used in the production upgrade, server configuration documents that list the details of the hardware and software configurations can be created; they will ensure that the servers built in the production environment will have the same fundamental configuration as was tested in the lab.

A more detailed build document can be created that walks the technician through the exact steps required to build the Windows Server 2016 system, in cases where many network servers need to be created in a short period of time.

The level of effort or the amount of time to actually perform the upgrade or the migration of a sample subdirectory can be recorded as part of the documentation, and this information can be very helpful in planning the total amount of time that will be required to perform the upgrade or migration.

Determining Whether a Prototype Phase Is Required

The issue of whether a more complete prototype phase is needed or if a more limited application compatibility testing phase is sufficient has come up several times in this chapter. The essential difference between the two is that the prototype phase duplicates as exactly as possible the actual end state of the upgrade, from server hardware to peripherals and software, so that the entire upgrade process can be tested to reduce the chance of surprises during the production upgrade. The application testing phase can be less extensive, involve a single server or virtual servers, and be designed to verify that the applications required will work reliably on the Windows Server 2016 configuration. Compatibility testing can take as little time as a week—from goal definition, to research, to actual testing. A prototype phase takes considerably longer because of the additional steps required.

The following is a checklist that will help your organization make the decision:

Image Is sufficient budget available for a subset of the actual hardware that will be used in the upgrade?

Image Is sufficient time available for the configuration of the prototype lab and testing of the software?

Image Are the internal resources available for a period of time long enough to finish the prototype testing? Is the budget available to pay for external consulting resources to complete the work?

Image Is the Windows networking environment mission-critical to the business’s capability to go about its daily activities and generate revenues, and will interruption of Windows services cost the company an unacceptable amount of money?

Image Does the actual migration process need to be tested and documented to ensure the success of the upgrade?

Image Do resources need to be trained on the upgrade process (building the servers, and configuring the network operating system and related applications)?

Image Do the applications that will be tested need to be compatible with 64-bit processor architecture?

If you find that the answer to more than half of these questions is yes, it is likely that a prototype phase will be required.

Summary

Windows Server 2016 compatibility testing should be performed before any upgrade or migration. The process can be completed very quickly for smaller networks (basic testing) or for larger networks with fairly simple networking environments.

The first steps include identifying the scope and goals of the project to ensure that the stakeholders are involved in determining the success factors for the project. Then research needs to be performed, internal to the company, on which in-place applications are network-related. This includes not only Windows Server, but also tape backup software, antivirus software, network management and monitoring tools, add-ons, and inventory sheets created summarizing this information.

Decisions as to which applications are critical, near-critical, or just nice to have should also be made. Research should then be performed with the vendors of the products, tracking sheets should be created to record this information, and the application should be categorized in one of six states of compatibility. Next, the testing begins, with the configuration of the lab environment that is isolated from the production network, and the applications are loaded and tested by both administrative and end user or help desk staff. The results are then documented, and the final decisions of whether to proceed are made.

With this process, the production upgrade or migration is smoother, and the likelihood of technical problems that can harm the business’ ability to transact or provide its services is greatly reduced. The problems are identified beforehand and resolved, and the resources who will perform the work gain familiarity with all the products and processes involved.

Best Practices

The following are best practices from this chapter:

Image Take the time to understand the goals of the project (what will the organization gain by doing the upgrade?) and the scope of the project (what is included and what is excluded from the project?).

Image Understand all the applications that connect with Windows Server 2016 and whether they are critical, near-critical, or simply nice to have.

Image Accelerate a migration to Windows Server 2016 by using the MAP toolkit.

Image Document the research process for each application because this will prove to be very valuable if problems are encountered during the testing process.

Image Create a lab environment that is as close to the final end state of the upgrade as possible. This reduces the variables that can cause problems at the least opportune time.

Image Test applications for compatibility with both typical end users of the application and application administrators who support, maintain, and manage the application.

Image Leverage virtual server technology to minimize the cost associated with procuring hardware for a test lab.

Image Ensure that applications have been tested for compatibility with a 64-bit operating system, such as Windows Server 2016.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.61.142