0%

Book Description

Imagine a situation where your service reports as healthy and serving but you receive multiple user reports of poor availability. How are these users accessing your service? Most likely, they’re using a client application, such as a mobile phone. Traditionally, SRE has only supported systems and services running in data centers rather than code running on the client, which has impeded issue detection.

This report examines the challenges of client-side reliability and provides a useful set of SRE concepts and tools you can apply to your own apps. Four site reliability engineers from Google share their experiences developing and supporting first-party native mobile applications. You’ll learn core concepts critical to engineering reliable client apps as well as phenomena unique to mobile applications and key takeaways from issues caused by or related to them, including:

  • Designing mobile apps that are resilient to unexpected inputs
  • Rolling out changes in a controlled, metric-driven way
  • Monitoring apps in production by measuring critical user interactions
  • Releasing changes using feature flags so they can be evaluated and rolled back independently
  • Understanding and preparing for your app’s impact on servers
  • Using practices that avoid feedback patterns between your apps and services

Table of Contents

  1. Engineering Reliable Mobile Applications
    1. How to SRE a Mobile Application
      1. Is My App Available?
      2. Real-Time Monitoring
      3. Performance and Efficiency
      4. Change Management
      5. Support Horizons
      6. Server-Side Impact
    2. Case Studies
      1. SLIs and SLOs: Learning to Monitor the (Very, Very) Long Tail
      2. Doodle Causes Mobile Search App Errors
      3. Always Have Multiple Ways out of Trouble
      4. Thundering Herd Problems
    3. SRE: Hope Is Not a Mobile Strategy
18.222.22.244