Koolaidrain

Production Engineering Reading List

Oct 25th, 2015
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.54 KB | None | 0 0
  1. Reading List
  2.  
  3. Here's some books which can help Production Engineers to catch up, if they need remedial help, or refresh their knowledge.
  4. You can see the full list on Amazon at http://www.amazon.com/gp/registry/wishlist/1OFCEP0EEF33F/ref=topnav_lists_5?reveal=all&itemPerPage=25
  5.  
  6. [Distributed Systems]
  7. *** Production-Ready Microservices. Susan Fowler
  8.  
  9. [The UNIX Programming Environment]
  10. *** "Linux and the UNIX Philosophy". http://www.amazon.com/Linux-Unix-Philosophy-Mike-Gancarz/dp/1555582737. Great book on the underlying principles behind UNIX and the software that runs on it even today.
  11. "The UNIX Programming Environment," by Kernighan and Pike. http://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X. While very old school, still very relevant and a great introduction to the why and how of the UNIX environment.
  12. "Advanced Programming in the UNIX Environment" by W. Richard Stevens (http://www.amazon.com/dp/B00DB3G8KY/ 3rd edition). While the examples are all in C, there's a lot of good stuff here. You can adapt many of the techniques to other languages.
  13. The Art of Unix Programming, by Eric S. Raymond. Available for free online http://www.faqs.org/docs/artu/, also as a book on Amazon. This is a good introduction to the way of thinking behind the original developers of UNIX and the major tools in use on UNIX systems. Some of the examples are a bit dated, but the general principles still hold, and are applied, today.
  14.  
  15. [Linux Systems/Kernel]
  16. Download the kernel source for a kernel we are using and read the files in the Documentation folder. This is probably the best source of current documentation on the Linux kernel that I'm aware of. Learn man proc really well, and spend some time reading our sysctl.conf files in the opsfiles repo.
  17. Systems Performance by Brendan Gregg http://www.amazon.com/dp/B00FLYU9T2/
  18. Spend time on a linux system. Install one from scratch. Run Linux as your primary desktop environment for a while to force yourself to learn how it works, even though servers != desktops.
  19. Arun from kernel@lists says "http://kernelnewbies.org/ has a good collection of pointers" and "LWN.net (http://lwn.net/Kernel/) carries a good collection of articles".
  20. "Linux Kernel Development", by Robert Love. We have a copy floating around. This is a book more targeted at aspiring kernel developers, but it has some good explanations of how various features are implemented -- at the lowest levels -- inside Linux.
  21.  
  22. [TCP/IP Networking]
  23. The Traffic Infrastructure (TI) team has a nice booklist which we cribbed from here (TI/Books).
  24. For protocol knowledge on TCP/IP is W. Richard Stevens' "TCP/IP Illustrated, Volume 1: The Protocols", <- BEST YOU CAN FIND http://www.kohala.com/start/tcpipiv1.html. There is a 2011 new edition which brought it up to date for the modern world.
  25. The TI team recommends "The Illustrated Network: How TCP/IP Works in a Modern Network," http://www.amazon.com/Illustrated-Network-Modern-Kaufmann-Networking/dp/0123745411. We recommend this one because it's more comprehensive than Stevens.
  26.  
  27. [Programming]
  28. There are lots of good language reference books, many of them floating around the office. We'll assume that if you were smart enough to get hired by Facebook, you can teach yourself the basics of any language you need to learn.
  29. "Programming Pearls", http://www.amazon.com/Programming-Pearls-2nd-Jon-Bentley/dp/0201657880. A great book that teaches you how to think like a programmer and an engineer, and demonstrates effective problem-solving techniques for a wide variety or real-world problems.
  30. "The Pragmatic Programmer: From Journeyman to Master", http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X. Joel Spolsky says "This is a great book for programmers who have learned the mechanics of programming, maybe in college, but don't quite feel secure deciding what to do." Of course it's not just for those people, but it is a good book in general, that will make you think about how you apply yourself when writing code.
  31.  
  32. [Other relevant teams' reading lists]
  33. Data science's Recommended statistics reading
  34. Andy Barkett's management reading list
  35. Traffic Infra's reading list
  36.  
  37. [Older suggestions that have been replaced above]
  38. 'Optimizing Linux Performance', by Phillip G. Ezolt. http://www.amazon.com/Optimizing-Linux-Performance-Hands--Guide/dp/0131486829. For experienced UNIX admins, this book will not be very helpful, but it is a great overview of performance troubleshooting tools and techniques on Linux. Recommended originally by Bill Jia of the CEA team.
  39. Replaced by Gregg's Systems Performance
Advertisement
Add Comment
Please, Sign In to add comment