Skip to main content

skip to main content

developerWorks  >  Architecture  >

Enterprise architecture essentials, Part 4: Test (and retest) your enterprise architecture

Uncovering weaknesses in your design

developerWorks
Document options

Document options requiring JavaScript are not displayed


Rate this page

Help us improve this content


Level: Intermediate

Michael J. Welsh (writer@roninwriter.com), Senior Writer, Ronin Writer

02 Oct 2007

After successfully building your new IT enterprise architecture, it's time to test it. Testing proves that the hard work you and your team have put in really works. By stressing the new architecture, you'll know where its weaknesses are and how well it will serve the enterprise.

Now that you've built your enterprise architecture, you must test it. New technology, especially technology that's on the bleeding edge, will have some kinks to work out. Testing the information technology (IT) architecture is all-inclusive. Testing should include the hardware, applications, and the people responsible for those systems.

Testing is a great way to break things and get paid for it. While no one ever wants their IT systems to break, odds are that they will. By testing common failures, you can help justify the additional costs of redundancy. Throughout the testing process, communication is essential. Giving test users a heads-up about possible problems and what they should do when those problems occur helps instill confidence in the project and its members.

Preparation

When preparing to test your architecture, you must first decide what to test. Simple changes, such as swapping CRT monitors for flat-panel displays, obviously don't require rigorous testing. But the new fiber-optic backbone should be load tested with new applications and hardware. Meet with the IT team to decide how time should best be spent testing.

Testing has three functions: It allows you to determine how new applications will perform in a production environment, it verifies how well redundancy will work in a failure state, and it helps determine how well your team members react to problems. Testing applications can be a rather straightforward but intense process. Applications can have hundreds of little-used functions that you must test. For example, accounting applications have some tax-related tasks that are performed at the end of the month and other tax-related tasks that are performed only at the end of the year. It is best to have these functions working properly before the tax man comes around.



Back to top


Skills and competencies

Before testing, look over the whole enterprise forward, backwards, and from every angle. Consider its strengths and weaknesses. Through a thorough evaluation of the entire enterprise, you will know which systems need the most comprehensive testing. If at all possible, testing should involve non-production systems. If testing must intersect with production systems, explain to managers the need for the testing and why it affects a live system, and schedule the appropriate downtime. Also, be sure that a good backup exists for any live system to be tested. Verify this by restoring to a virtual server and comparing the data sets with the live unit.

Virtual environments

Simplify the creation of test environments by using virtual systems. Virtual systems are easy to set up, break, and restore. Begin by creating one standard server and cloning it to make the other servers. After any applications are installed, many virtual PC programs allow you to take a snapshot of current settings to facilitate restoration following a failure. The benefit is that you can create a new server in minutes rather then hours.

VMware offers a wide selection of choices for creating a custom virtual environment. You can choose from dedicated virtual machine (VM) software that requires no base operating system, and you can run several servers at once. The biggest advantages to using VMware are its ability to work with multiple operating systems, its easy configuration, and its testing tools.

Several network simulators are also available to help test new configurations and assess failover scenarios. While most are designed for preparing for certification testing, they can offer a great benefit for building a virtual server environment at a reduced cost relative to buying the real hardware.

Checklists and staff preparation

With the new enterprise architecture ready for launch, build a checklist of core systems, and list those backup systems that require testing. Core systems will be apparent from the documentation the team kept. Core systems will be the hardware and software without which the organization cannot exist. Often, such systems consist of the critical servers, the network backbone, and messaging pieces such as e-mail and telephony, as shown in Figure 1.


Figure 1. Core systems
Core systems

This diagram doesn't show the details found in a complete network diagram; rather, it's meant to highlight the pieces of the enterprise that are the most crucial to business operations.

Preparing support personnel and users for those questions and issues most likely to arise with the new system helps reduce help desk calls. Your team members should assemble a list of problems they're already aware of, such as an application hanging, and build a list of known fixes.

Deciding when testing can be done is one of the more difficult chores. Finding a time when everyone is available during the day can be tricky, so after hours may be a good time. However, you may encounter resistance from team members not wanting to spend more time on the job or a boss who doesn't want to pay for overtime. The best balance is deciding on the staff needed to run the test and the best time to do it. Other team members may be designated to an "on-call" function and brought in only if needed.

At this point, you have already selected compliance standards for your new architecture. Some have specific points of failures that must be tested before being launched into a production situation. Items such as firewalls or security application components require verification before supporting live data.

Build specific checklists of what should be tested and how to conduct that testing. Additional checklist content may include:

  • Screen captures of what the data should look like before and after testing.
  • Separate listings of specific tasks.
  • Checklists divided by the groups that perform the tasks. Server hardware build may be a different group from the people who load and configure the applications.


Back to top


Document procedures

Testing builds documentation. It applies the struggle of daily life to the new IT architecture.

At a minimum, you should have three types of documentation: historical, procedures, and disaster recovery. The first type, historical documentation, should include the details of how everything in the architecture is built. This document should contain diagrams of work flows and notes on how the pieces are connected. As the architecture evolves, minor details can be forgotten—for example, a document explaining that the payroll software connects to the warehouse database, because order pickers get bonuses for accuracy (see Figure 2). Because this setup is transparent to the warehouse database, the warehouse database administrator (DBA) must be aware of the connection before making changes.


Figure 2. Warehouse wireless diagram
Warehouse wireless diagram

Procedural documentation consists of be checklists of daily, weekly, or monthly tasks. Examples include daily tape backup change procedures, checking logs, or reporting problems. Some systems may require routine maintenance to continue running efficiently. Daily procedures are generally given to specific people or groups responsible for those areas. Having detailed steps of the tasks helps ensure that the tasks are done correctly and on time but also helps those staff members filling in for other people. Procedures should include common errors and how to correct them as well as standard setup procedures for introducing new hardware and applications to the enterprise. As this task will pass through several groups, you must have documentation specific to each group. A document flowchart such as the one shown in Figure 3 helps list prerequisites and what each group is responsible for.


Figure 3. Server setup documentation flow
Server setup documentation flow

For uncommon errors, you must have disaster recovery documentation. This specialized documentation is a combination of historical documentation and daily procedures. While you cannot plan for every disaster, many of the recovery procedures overlap. Documentation procedures for simple tasks, such as starting a server, can seem trivial at first but can be a source of confidence when testing a disaster scenario. When the unexpected happens, it's not uncommon for panic to set in quickly among the support staff. Tensions rise at the help desk as calls come flooding in about a server-based application that has stopped responding. Good documentation, including common sense details, help, because people working to resolve the issue may forget that a server restart will affect other systems.

Documentation procedures for disasters should also include whom should be informed when a disaster begins and when it's resolved. Such staff members may include shift managers, department heads, and even the big chief of the company.

A lot has been written on disaster recovery preparation. See Resources for links to more information.



Back to top


Auditing

Documentation is a living and evolving entity of any enterprise. As your IT structure grows and changes, so must your documentation and testing procedures. When your documentation changes, you must test it to make sure that it remains accurate.

Say that a year from now, your company upgrades its e-mail software. This new software has a slightly different method for restoring mailboxes than the previous version. If the changes aren't updated in the disaster recovery documentation, it will slow down the engineer performing the recovery. Not only will this make for an unhappy engineer, but people waiting for the e-mail server may get upset at the length of time it takes to restore functionality.

By scheduling regular testing of the architecture components throughout the year, you can update and polish the documents that you have already created. These periodic tests also build confidence in the support staff. So, even if an incident doesn't go by the book (and most don't), team members will have the experience from testing to make better decisions under pressure.

Auditing your testing results can have a large impact on the confidence of the business as a whole. Most testing results are only viewed by senior managers, who are probably the same people who control the money. Often, they are not technical people, so explanations of the tests and the results are useful.

The use of change-management software, such as IBM® Rational® software, to track changes in applications manages application testing. Help desk applications, such as Numara Track-It, can generate reports to assess where new problems are emerging. This information is used to create tests that are more accurate to the needs to the enterprise. You can create tests to verify that fixes to problems are permanent and that the same problems don't recur.

Don't worry about tests that produce negative results. Failure is a good thing when testing, because the failure happened in a controlled environment and not during production. Use failures as learning opportunities. Why did the system fail? Could the failure have been avoided? Is there a way to prevent it from happing in production? Also, don't try to hide failures in audit reports. Use them to highlight the success that came from it. Point out how the problem was not foreseen in development or how well the team reacted when the problem surfaced.

Compliance

Testing and its results may be required to meet compliance obligations with certain standards, such as the Sarbanes-Oxley (SOX) Act, Payment Card Industry (PCI), or the Health Insurance Portability and Accountability Act (HIPAA). Some of these standards have a set amount of time that you must retain test results. Depending on your organization's relationship with its customers, some of these testing results may be shared.

You may wonder, why bother with compliance at this stage? When you test, you're testing the compliance standards. The goals of compliance should not be to reach the minimum requirements but to exceed them.

Compliance testing and auditing by a third party may be more beneficial than performing them in-house. Third parties will produce a less-biased perspective on how audits and compliance are viewed. Audits may be performed either externally or internally. External tests are generally the easiest, as most firms can test from their location, and there is little setup. Internal compliance audits that test certain features or events can be rather invasive. A third party will need to learn the IT landscape and will need to know which components must be tested.

Using a respected auditing firm is going to have more standing when sharing results. Companies such as Solutionary or Ambiron Trustwave specialize in specific industry and compliance auditing and testing. They are an excellent source for finding which standards and testing you need for you specific industry.



Back to top


Tools and techniques

Because no two architectures are built alike, neither can the testing techniques be the same. Building testing metrics for key components takes some time, so consult with your team. An excellent place to start is with the IT architecture guidelines published by The Open Group. Similarly, Tetworks has an open source tool kit that can test applications.

Some tests may need to have special considerations. If power fails, the uninterruptible power supply (UPS) will take over. But how do you develop an accurate test? Often, the answer is with the manufacturer's instructions. In this case, many UPSs have a self-test feature that will not jeopardize equipment plugged into them.

Some testing may not be as simple as looking at individual components. How would you verify shifting production traffic to a backup datacenter without actually disrupting work? Through careful planning and clear communication, you can achieve such testing, although it will probably be done after hours.

Another consideration is the amount of time testing will take. How much time it will take to run each test? Will this be on a live system or from a data restore on a virtual system? If this is a live system, plan time to repair any damage a test may cause, such as a failed router or hard disk. Several tools are available to help with your testing. See Resources for more information.



Back to top


Milestones

Use the following milestones to set objectives and keep your IT enterprise project moving along:

  • Set the objectives: List what needs to be tested and how frequently. Set deadlines for documentation to be completed; otherwise, it may not get done. Especially make certain that documentation is updated after testing finds errors within the procedures.
  • Management: Manage testing throughout the process. Make sure that it's done to the established standards, and review the results with team members.
  • Communications: Communicate with the team and with managers about why testing is important. Testing often gets a low priority because of other projects or often gets rushed to get something into production.
  • Maintaining resources: Assess the skill sets team members possess and have them test their areas of expertise. It's also a good idea to cross-train other personnel within testing as well as normal operation. Doing so gives team members an opportunity to react to a failure state in a controlled situation. Be sure to add testing into your budget. This may mean simulator software, test equipment, and overtime if you need to test production equipment after hours. Budget costs may also include professional training for staff members if they need a jump-start on operating systems or applications with which they're unfamiliar.
  • Determine whether outside services will be needed: It may make sense to have an external group perform the audit. Professional auditing groups can do a thorough job of finding all resources and asking the right questions. Outside services can be especially helpful if you don't currently have the proper tools to perform a detailed assessment.
  • Assign roles: Now the rubber meets the road. Hand out tasks that best suit individual team members, and set them loose.
  • Maintain documentation: If you haven't begun creating documentation prior to starting this step, it's time to start. Collect operating procedures, code changes, and help desk procedures. It may be a good time to have team members document what they really do instead of what they were hired to do.


Back to top


Summary

Make testing a critical function within your new architecture's procedures. Good testing fundamentals bring together the function of your new systems and the redundancy behind them. Testing your new enterprise architecture illustrates the hard work and dedication that you and your IT enterprise team members have spent building it.

Remember, failures that result from testing are good. Learn from them to sharpen your team's skills, and create new tests to determine whether the error can occur again. Testing is a battle drill for the enterprise team. Throughout the testing stage, communication is important. Keep members outside your group informed about when testing will take place. Not all testing will be done during normal work hours, so plan and budget ahead for testing time and even dedicated testing equipment. Keep close records of changes to the architecture, and build test procedures to keep track of those changes.



Resources

Learn

Get products and technologies

Discuss


About the author

Michael Welsh is a 15-year IT professional specializing in IT security, disaster recovery, and networks. He is also knowledgeable in operating systems, hardware, and many server-side applications such as Microsoft Exchange Server. Michael writes technical articles and documentation for Web sites and businesses.




Rate this page


Please take a moment to complete this form to help us better serve you.



 


 


Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top


Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.