Skip to content

Instantly share code, notes, and snippets.

@gemboxteam
Forked from jasonamyers/service-checklist.md
Created May 30, 2023 07:12
Show Gist options
  • Select an option

  • Save gemboxteam/5a6e1e455e447306f989e056a00a3b51 to your computer and use it in GitHub Desktop.

Select an option

Save gemboxteam/5a6e1e455e447306f989e056a00a3b51 to your computer and use it in GitHub Desktop.
Internet Scale Services Checklist

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does our design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?
  • Have we automated everything?

Overall Application Design & Development

  • Can the service survive failure without human administrative interaction?
  • Are failure paths frequently tested?
  • Have you documented all conceivable component failure modes and combinations thereof?
  • Does your design tolerate these failure modes? And if not, have you undertaken a risk assessment to determine the risk is acceptable?
  • Are you targeting commodity hardware? (That is, your design does not require special h/w)
  • Are you hosting all users on a single version of the software?
  • Can you support multi-tenancy without physical isolation?
  • Have you implemented (and automated) a quick service health check?
  • Do you developers work in the full environment? (Requires single server deployment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment