I’ve been reading the UNIX and Linux System Administration Handbook. It’s a real tome, with about 1500 pages. It’s got five authors and some great cartoons, and covers everything from shell scripts to disk to email to system management daemons (check out the table of contents). No one should ever read this book cover to cover. That would be just silly.
I’ve been really enjoying picking and choosing chapters to read, however. The sheer breadth of this book means that anyone with an interest in modern software development can find something useful in it.
Given my interest in AWS, I read all the sections about cloud computing. These were high level and not super interesting to me, but I think they’d be great if you were a novice about cloud computing, and they did have a great survey of the major public cloud providers and when it made sense to use each of them.
Then I moved on to the networking sections. I honestly can say that I didn’t understand fundamental routing protocols before I read that section. This is obviously closer to the heart of system administration, and the authors did a great job with concepts and hands on knowledge of networking.
After that I moved on to containers. Did you know that Docker is the new hotness? I had heard of it, but didn’t understand why. Now I do. It’s hot for much the same reason as the ‘fat jar’ deployment is preferred in java land. Having one single artifact that rolls up code and dependencies is a way to simplify deployments of production code, including rollbacks. The authors focus on the fundamentals of containers, primarily Docker, but they also cover various orchestration layers like Mesos and Kubernetes.
I’m now in the middle of a chapter about continuous integration and continuous deployment, where they are discussing the concepts as well as Jenkins, one of the key technologies (see, I told you everyone could find something in this book). After that, I look forward to reading about configuration management.
If you work in software at all and are involved in production systems, you’ll be able to find something in the UNIX and Linux System Administration Handbook (and if you aren’t, I’d be interested in knowing who owns that responsibility).