Since October 2011 (nope, not a typo), I have been "working" on a textbook for my class on System Administration. On this page you can find some additional information about my work in progress on this long project. If you are interested in helping me review the book, please contact me!
Other information about the book:
The book is intended to be a graduate level course book to accompany a general class on System Administration. It is modeled after the class Aspects of System Administration, which I have been teaching at Stevens Institute of Technology since 2005. The class was developed to give students a broad overview of the profession and expose them to the many different practical aspects, but not to teach specific individual technologies that would soon be obsolete or replaced by the next generation. The breadth of the topic required that the class focused on fundamental underlying principles rather than implementation details.
Most existing books on relating to System Administration, thorough and useful as they are, have a practical "howto" approach or are targeted towards people already in the profession. They provide detailed instructions for various specific problems or discuss different implementations of a given software service across different operating systems.
This book is different. It focuses on concepts and the understanding of the given topics on a fundamental level, so as to facilitate the learning of how to build scalable solutions that are flexible enough to adapt to different system requirements.
You can find out more about how I compare my work in progress to existing books I've used in the past in this class in this blog entry.
When I initially submitted the book proposal to Wiley, the working title of the book was "An Introduction to Design for Professional System Administration" - quite a mouthful. I prefer "Principles of System Administration", so that's what I'll use for the time being.
The current table of contents in brief looks something like this:
Preface to the preface Preface PART I INTRODUCTION AND GENERAL CONCEPTS 1 An Introduction to System Administration 2 Unix 3 Documentation Techniques PART II FUNDAMENTAL TECHNOLOGIES AND CONCEPTS 4 Of File Systems and Storage Models 5 Software Installation and Package Management 6 Of Users and Groups 7 Configuration Management 8 Automation 9 Building Scalable Tools 10 Networking 11 Security Part III MANAGING COMPLEX SERVICES 12 Managing System Services 13 Backup, Failover, and Disaster Recovery 14 Monitoring and Visibility PART VI META MATTER 15 Everything We Haven't Covered 16 Ethics and Legal Issues 17 Future Direction of System Administration Glossary Image Attributions Index Name Index
In the process of writing the book, I've at times written related entries on my blog. These include partial excerpts from the chapters as well as musings or commentary on the process itself. They are:
I'm writing all content in LaTeX, using Vim for all the text editing and make for document building.
I have created a number of illustrations using OmniGraffle, Gimp, and Graphviz, which are then converted to encapsulated postscript using ImageMagick.
I write on my laptop, but religiously store all files in a private git repository on my Panix hosted VPS, with additional backup copies on Dropbox and my local NAS device. Published content is also pushed to GitHub.
Progress on this book is very slow. Most people I know who write books do this as a full-time job or, if in academia, during a sabbatical. I don't have that luxury; in addition to my family, a full-time job, and my part-time teaching obligations, I've found numerous ways to keep myself from focusing on this work.
Current status: As of 2018-02-06, I have completed the following:
I'm always looking for productive feedback on the very idea of the book, my class, my approach to the class or the book, or, if you have a lot of time on your hands yourself, feedback on the actual chapter drafts I have completed so far. If you are interested in helping me out or have any comment for me, please don't hesitate to email me!