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!