ISPadmin
February 2003
Service Provider Book Reviews

In this installment of ISPadmin, I depart from my usual coverage of service provider technical topics. Instead, I review several books that are of special interest to the readers working in the service provider business, and as it turns out, to most ;login: readers as well.

In this era of moral misguidance, I feel obliged to say that I have done some work for Addison Wesley (book proposal) for which I received a small honorarium. In the same open disclosure vein, I would also like to point out that I personally paid for the three books reviewed in this column.

The books reviewed are the following:

The Practice of System and Network Administration
by Thomas A. Limoncelli and Christine Hogan
ISBN 0-201-70271-1
774 pages
Addison Wesley
US$49.99

Designing ISP Architectures
by John V. Nguyen
ISBN 0-13-045496-6
360 pages
Prentice Hall
US$59.95


The Practice of System and Network Administration

If you are a practicing system administrator (SA), then you need this book. I can't think of an Information Technology related book that I even attempted to read cover to cover in my 12-year technical career. This is one of those books that is well worth the time. However, it can easily be used as a reference, to be used when needed. I was very interested to find that the book is already in the second printing after being on the market for less than a year! The second edition is the version I used for this review.

It is *not* a technical reference book per se, but attempts to document the best practices and approaches for solving SA problems. If you ever wondered, "What is the best way to do a project like this", you will probably find it in this volume. Approaches outlined and examples given are a little skewed towards the larger site, but the book still contains a mountain of information and is extremely useful for an administrator working at the smaller site as well.

This book is broken down into four parts:

I    The Principles
II    The Process
III    The Practices
IV    Management

It also includes two excellent appendices, one titled, "The Many Roles of a System Administrator" which should be self-explanatory and "What to Do When..." which does a very nice job of acting as a meta-index.

The typical chapter (there are 31 chapters in the book) is divided into five sections:

1.    Introduction
2.    The Basics
3.    The Icing
4.    Conclusion
5.    Exercises

The first part of the chapter is a relatively short introduction to the topic. The second section is titled "The Basics" which is the core of the chapter, and then a (usually smaller) section named, "The Icing". The "Basics" section covers the piece of the chapter topic the authors feel everyone should be striving to achieve. The "Icing" section covers the extras that are less important or which may not apply to all readers. (I would have rather a title such as "The Extras" rather than "The Icing" be used, but you get the point.)

The conclusion and exercises I don't find to be particularly useful. However, I am not studying the material as part of an academic setting so these sections could be useful for others.

Part I, "The Principles", covers the basics of the system administration process. Material covered in this section includes: managing desktops and servers, services, debugging, namespaces, security, disaster recovery and ethics among other topics. It is the essence of what SA's do every day. While it is very hard to pick my favorite chapter(s), I found chapters two (Servers) and three (Services) to be particularly interesting. The chapter on security (seven) I found a little tedious at 45 pages, but probably because I find the topic of security to be uninteresting in general.

Part II, "The Process" examines the various methods used by SA's to manage their infrastructure, including coverage of: change management, hardware upgrades, routine maintenance, converting services, and centralization/decentralization of services. This part builds upon Part I, and gives excellent treatment of the process piece of being an SA. In this section, chapter 10 (Change Management and Revision Control) is my favorite.

Part III, "The Practices" is a catchall, covering a number of topics not fully covered in the first two parts. These areas include: helpdesks, customer care, data centers, networks, email, print, backup/restore, remote access, software depot (essentially NFS server housing common binaries) and service monitoring. I found chapters 15 (Helpdesks) and 16 (Customer Care) to be of most use in this part of the book.

Part IV, "Management" covers the topic of dealing with (and becoming) management. I can hear the collective groan, but this is an extremely important and overlooked topic. Areas covered here include: organizational structures, perception, happiness, hiring and firing, among others. The essential chapters here are 26 (Perception and Visibility) and 27 (Being Happy). I have not seen these topics (among many others in the book) covered anywhere else.

The case studies, examples and figures do an excellent job of complementing the text. Appendix A, "The Many Roles of a System Administrator" is an excellent addition to the book. It lists the various types of people within an SA organization. After reading this appendix, I have a much better understanding of what drives my coworkers, not to mention myself! Appendix B, "What to Do When..." is an excellent roadmap on handling certain situations, like starting a site from scratch, moving a data center, etc. This chapter acts as a meta index, tying everything from the book together. There is also some new material there as well.

My nits on the book are few and relatively insignificant. I already mentioned one ("The Icing"). I found the 10-page bibliography (2 lines per referenced, single spaced) to be a little too much. It is hard to find something with that many references. Also, the 774 pages in the book makes it a little overwhelming to read (not to mention revise, for future editions!). Perhaps making it a two volume set would have been better.

If you are a beginning or intermediate SA, you want this book to find out how to do everything the right way the first time without learning the many wrong ways to do a task/project. If you are an experienced SA, you want this book to figure out why you have difficulties with certain projects or tasks time and time again. While you would be hard pressed to get an experienced SA to agree on the approach to anything, I would agree with 80% of the methods and advice in this book. It is an outstanding treatment of a topic long neglected. Every person who manages two or more machines needs this book!

Designing ISP Architectures

"This book is model for designing architectures for ISPs of any size." is the first line of the back cover of this book. I feel that the scope is a little bit larger than simply ISPs' but I will cover that later in this review. It is part of the "Sun Blueprints" series, so there is a major bias towards Sun products. For the most part this is fine, but there are several instances in the book where this is a problem. The text covers building an ISP architecture from the ground up. It starts at requirements analysis, moving through architectural models, moving to creating a physical design, selecting components and implementing a solution. The chapters are laid out like this (number of pages is in parentheses):

1.    Introduction (10)
2.    Formulating Design Requirements (32)
3.    Establishing an Architectural Model (22)
4.    Creating a Logical Design (58)
5.    Creating a Physical Design (70)
6.    Selecting Components (40)
7.    Implementing a Solution (10)

Also, the following appendices are included:

A.    Questions for Obtaining Design Requirements
B.    Sample Network Configurations
C.    Sample DNS Configurations
D.    DHCP Server Configuration
E.    NTP Server Configuration
F.    DNS Benchmark Data for Sun Enterprise Servers
G.    Network Capacity
H.    HTTP Throughput
I.    Port and Protocol List

The book uses an imaginary ISP, FijiNet as a basis for the design and implementation.

The first two chapters do an acceptable job of introducing the topic and deriving design basis for the system. Some details are buried (such as what services the ISP will offer) and take some digging, but the information is there. It is unclear to me if dialup services are supposed to be offered at FijiNet, as it is not expressly stated. However, broadband services are expressly not part of the service offering.

Chapter three goes on to define the architecture for the service. I find most of the diagrams in this chapter to be of limited use, as I don't believe they add much to the discussion. Also, I can't figure out why DHCP is covered. In a dialup service provider, RADIUS will be used. I have only seen DHCP used in broadband applications (such as cable modem service) but its use there is limited as well. For example, most DSL implementations utilize RADIUS for authenticating subscribers, rather than DHCP. Another criticism would be the lack of coverage regarding maintenance going forward. For example, utilizing some sort of mass update mechanism (rsynch, rdist, cfengine, etc.) in a provider scaling to 100,000 subscribers is essential!

Chapter four covers the creating of a logical design for the ISP. Once again, I find some of the figures of limited use (figures 4-2 through 4-5) in this chapter, though there are many that are useful in this chapter. Coverage of the material here is acceptable.

Chapter 5 continues on, to create a physical design. Once again, the figures are of limited use, though this time because some (5-1, 5-2) are simply too busy. The Planning Capacity section (beginning on page 132) is where things become very interesting. While I haven't done a formal survey, I have seen few books giving specific capacity planning formulas for sizing systems and applications. Yes, some books cover an aspect of it (for example, the very capable Sun Performance Tuning by Adrian Cockroft comes to mind), but never from the application point of view. These formulas in this chapter are the reason to have this book. Of course, I have not had an opportunity to actually field test the formulas given in this book, but these are a great start. These formulas would be useful for non-service providers who run ISP applications as well.

Chapter 6 covers the selection process used for hardware and software for the imaginary ISP, FijiNet. The tables in this section are not terribly useful, for no other reason than they don't attempt to be complete. Covering "Application Servers" and "Database Servers" is not very useful.  According to FijiNet's plan, application servers will be a sideline business (not to mention that there are thousands of such applications). And the database server software selection will be 99% dependant upon the billing software chosen. It would be more useful to cover the criteria for selection of components, rather than the choices available.

With regards to the other software selection, the criteria seems to be whether or not the component ships with Solaris 8. If part of the rationale in using software is that it is open source, then use the open source version! This makes security updates, software upgrades, etc. available in a timely fashion rather than waiting for Sun to release patches. As with any vendor related book, the coverage is focused on Solaris 8. Many service providers utilize one of the many BSD and/or GNU/Linux variants for some or all of their server operations. It would have been nice for an O/S besides Solaris 8 to be covered. Of course, this is wishful thinking with it being part of the "Sun Blueprints" series.

Chapter 7 is pretty much a throwaway chapter. It should have been covered as part of the chapter 6 or in an appendix (replacing some of the not-so-useful stuff there). Most of the material in this chapter is common sense such as, "We recommend that you develop and implement a prototype of your design *before* implementing the full-scale design."

The appendices are of varied usefulness. Appendix A (design requirement questions) is quite useful, appendix B (network configuration) is of limited usefulness (what if you are using different network hardware?) but is illustrating to some degree. Appendices C (DNS configuration ) and D (DHCP configuration) would be better eliminated, and the reader using a good DNS and DHCP references instead. Appendix E (NTP configuration) should be eliminated. Appendix F (benchmark data for BIND) is somewhat useful, but only if you are using Sun hardware. Appendix G (network capacity definitions) is readily available elsewhere, though pertinent to the text. Appendix H (HTTP throughput) is probably available elsewhere, though again useful to the text (and in the equations). The final appendix (I) should have been eliminated as it serves no useful purpose. The bibliography is relatively short, and hits on most of the "must have" texts if you are implementing an ISP.

In the final analysis, the book is worthwhile simply for the capacity planning equations it contains. As for a "How to Set Up Your Own ISP" guide, it didn't meet my expectations.

As always, I look forward to your questions and comments!