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
- 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
video
Site Reliability Engineering Fundamentals
Over the past five years, the ideas behind site reliability engineering (SRE) have caught fire because …
book
The Site Reliability Workbook
In 2016, Googleâ??s Site Reliability Engineering book ignited an industry discussion on what it means to …
book
Observability Engineering
Observability is critical for building, changing, and understanding the software that powers complex modern systems. Teams …
book
The Staff Engineer's Path
For years, companies have rewarded their most effective engineers with management positions. But treating management as …