Book description
The overwhelming majority of a software systemâ??s lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?
In this collection of essays and articles, key members of Googleâ??s Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. Youâ??ll learn the principles and practices that enable Google engineers to make systems more scalable, reliable, and efficientâ??lessons directly applicable to your organization.
This book is divided into four sections:
- Introductionâ??Learn what site reliability engineering is and why it differs from conventional IT industry practices
- Principlesâ??Examine the patterns, behaviors, and areas of concern that influence the work of a site reliability engineer (SRE)
- Practicesâ??Understand the theory and practice of an SREâ??s day-to-day work: building and operating large distributed computing systems
- Managementâ??Explore Google's best practices for training, communication, and meetings that your organization can use
Publisher resources
Table of contents
- Foreword
- Preface
- I. Introduction
- 1. Introduction
- 2. The Production Environment at Google, from the Viewpoint of an SRE
- II. Principles
- 3. Embracing Risk
- 4. Service Level Objectives
- 5. Eliminating Toil
-
6. Monitoring Distributed Systems
- Definitions
- Why Monitor?
- Setting Reasonable Expectations for Monitoring
- Symptoms Versus Causes
- Black-Box Versus White-Box
- The Four Golden Signals
- Worrying About Your Tail (or, Instrumentation and Performance)
- Choosing an Appropriate Resolution for Measurements
- As Simple as Possible, No Simpler
- Tying These Principles Together
- Monitoring for the Long Term
- Conclusion
- 7. The Evolution of Automation at Google
- 8. Release Engineering
- 9. Simplicity
- III. Practices
- 10. Practical Alerting from Time-Series Data
- 11. Being On-Call
- 12. Effective Troubleshooting
- 13. Emergency Response
- 14. Managing Incidents
- 15. Postmortem Culture: Learning from Failure
- 16. Tracking Outages
- 17. Testing for Reliability
- 18. Software Engineering in SRE
- 19. Load Balancing at the Frontend
- 20. Load Balancing in the Datacenter
- 21. Handling Overload
- 22. Addressing Cascading Failures
- 23. Managing Critical State: Distributed Consensus for Reliability
- 24. Distributed Periodic Scheduling with Cron
-
25. Data Processing Pipelines
- Origin of the Pipeline Design Pattern
- Initial Effect of Big Data on the Simple Pipeline Pattern
- Challenges with the Periodic Pipeline Pattern
- Trouble Caused By Uneven Work Distribution
- Drawbacks of Periodic Pipelines in Distributed Environments
- Introduction to Google Workflow
- Stages of Execution in Workflow
- Ensuring Business Continuity
- Summary and Concluding Remarks
- 26. Data Integrity: What You Read Is What You Wrote
- 27. Reliable Product Launches at Scale
- IV. Management
-
28. Accelerating SREs to On-Call and Beyond
- Youâve Hired Your Next SRE(s), Now What?
- Initial Learning Experiences: The Case for Structure Over Chaos
- Creating Stellar Reverse Engineers and Improvisational Thinkers
- Five Practices for Aspiring On-Callers
- On-Call and Beyond: Rites of Passage, and Practicing Continuing Education
- Closing Thoughts
- 29. Dealing with Interrupts
- 30. Embedding an SRE to Recover from Operational Overload
- 31. Communication and Collaboration in SRE
- 32. The Evolving SRE Engagement Model
- V. Conclusions
- 33. Lessons Learned from Other Industries
- 34. Conclusion
- A. Availability Table
- B. A Collection of Best Practices for Production Services
- C. Example Incident State Document
- D. Example Postmortem
- E. Launch Coordination Checklist
- F. Example Production Meeting Minutes
- Bibliography
- Index
Product information
- Title: Site Reliability Engineering
- Author(s):
- Release date: April 2016
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781491929124
You might also like
book
Building Microservices, 2nd Edition
Distributed systems have become more fine-grained as organizations shift from code-heavy monolithic applications to smaller, self-contained …
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Software Engineering at Google
Today, software engineers need to know not only how to program effectively but also how to …
book
Head First Design Patterns, 2nd Edition
You know you don’t want to reinvent the wheel, so you look to design patterns—the lessons …