You should consider a few more things before you execute your production plan. In this section we present some advice to help you avoid mistakes others have made. Don't Jump the GunThe most important advice we can give is this: Don't try to put your directory service into production until you're ready . The biggest mistake people make is to skip one or more essential design steps. Usually the result is a deficient , hard-to-maintain service. If you do skip a design step, you might need to go back and perform the step you left out and then redeploy your entire service. In the long run, the time you save up front by skipping some of the directory design work will be greatly outweighed by the aggravation you cause yourself and the users of your service. The other major preproduction task that many are tempted to omit is the directory service pilot (described in Chapter 14, Piloting Your Directory Service). A pilot is the best way to prove your directory design and learn what it's like to run a production service. By creating a pilot service and heeding the lessons learned, you greatly increase the chances of success for the production service. Maintain FocusAnother common mistake is to lose focus and forget what you're trying to accomplish. Always keep your production success criteria in mind as you proceed with your deployment. Remind yourself who your most important users are and think about what you need to do to meet their needs. Work diligently to ensure that your most important directory-enabled applications succeed. The success of your service is linked closely to the success of those applications. Adopt an Incremental ApproachOne of the running themes throughout this book is that an incremental approach is more likely to succeed than an all-or-nothing approach. This is especially true when you're rolling out a production directory service. Don't try to add too many dependent applications the first day your service is up and running. Don't tell all of your users at the same time to start using the service or the directory-enabled applications. Don't create unrealistic expectations by overhyping your service. Don't try to roll out all the replicas your design includes in the first few days of service. Adopt a phased approach and make sure that each new part of the service is working before increasing the complexity of the system. Prepare Yourself WellThere is an old story about a passenger train engineer who was faced with a crisis. While traveling with a full complement of passengers at high speed, his train came upon a single empty freight car that someone had mistakenly left on the main track instead of on a nearby siding (see Figure 16.1). Without missing a beat, the engineer immediately increased his engine speed to full throttle . His passenger train struck the empty freight car at nearly full speed, knocking it off the track and out of the way and avoiding derailing his own train. Figure 16.1. A Dangerous Situation
After the incident, when the engineer was asked how he knew to increase his speed rather than try to stop, he had a ready answer: "I knew how far I was from the empty car because many times in the past, as I passed by that same stretch of track, I imagined that same exact situation and thought about what I would do. I knew that if I was too close to stop in time, I should increase my speed because the impulse created by striking the empty car would most likely drive it off the track and safely out of the path of my own train. I didn't have to think about any of this at the time of the crisis because I already knew exactly what to do." The moral of the story is, of course, be prepared for whatever might come your way. This is good advice, and you should apply it to the rollout of your production directory service. Think ahead and prepare yourself as much as possible for anything that might go wrong. Play "what if" games and consider how you will react to any situation that arises, and change your strategy if necessary. If you take time to prepare yourself, you will be able to act as quickly and decisively as the passenger train engineer did. Potential problem areas to consider include the following:
Be realistic about the risks involved in your production plan, and think about how you will detect problems and what you will do if they occur. Make sure that you inform your management and the owners of directory-dependent applications of the risks so that they are not surprised by the problems or your actions. For example, suppose that your design calls for you to roll out five replica servers to provide service to a busy directory-enabled mail delivery service. Consider what you would do during your production rollout if you found a critical bug in your directory service software that prevented you from creating more than three replicas. Clearly, such a bug would reduce the capacity of your service. You must decide whether three replicas would be able to handle the application load long enough to get a patch from your directory server software vendor. If not, you may need to scale back the mail service ”or possibly delay your directory service rollout entirely. Depending on the situation, any of these options might be the best choice. Thinking about the options in advance enables you to act quickly and decisively if problems occur during your rollout. |