Book Image

Real-World SRE

By : Nat Welch
Book Image

Real-World SRE

By: Nat Welch

Overview of this book

Real-World SRE is the go-to survival guide for the software developer in the middle of catastrophic website failure. Site Reliability Engineering (SRE) has emerged on the frontline as businesses strive to maximize uptime. This book is a step-by-step framework to follow when your website is down and the countdown is on to fix it. Nat Welch has battle-hardened experience in reliability engineering at some of the biggest outage-sensitive companies on the internet. Arm yourself with his tried-and-tested methods for monitoring modern web services, setting up alerts, and evaluating your incident response. Real-World SRE goes beyond just reacting to disaster—uncover the tools and strategies needed to safely test and release software, plan for long-term growth, and foresee future bottlenecks. Real-World SRE gives you the capability to set up your own robust plan of action to see you through a company-wide website crisis. The final chapter of Real-World SRE is dedicated to acing SRE interviews, either in getting a first job or a valued promotion.
Table of Contents (13 chapters)


Automating releasing and testing is a common task. Both tend to have a lot of steps, so creating a consistent place and way to run tests and releases can improve overall reliability. Without this, a build or test could happen on a differently configured machine each time and introduce unknown variables. Incomplete configuration, steps done out of order, or incorrectly typed commands have caused many an outage, so automating this process is incredibly valuable.

Automation of testing and releasing usually requires automating three things:

  • Building: The actual creation of an artifact from source code
  • Testing: Validating the created artifact
  • Distributing: Sending the artifact to the user

Automation exists because people are forgetful. All three of these things can be automated using similar tools. Almost all of these tools are essentially job runners that run on an event queue. That queue can be filled by actions, such as code committed to a version control repository or a button click...