While watching the Building Complex Serverless Applications talk from re:Invent 2016 I discovered The Serverless Compute Manifesto. I couldn't find it reproduced in an easy to use format, so here it is for future reference - yours and mine:
- Function are the unit of deployment and scaling.
- No machines, VMs, or containers visible in the programming model.
- Permanent storage lives elsewhere.
- Scales per request; Users cannot over- or under-provision capacity.
- Never pay for idle (no cold servers/containers or their costs).
- Implicitly fault-tolerant because functions can run anywhere.
- BYOC - Bring Your Own Code.
- Metrics and logging are a universal right.
I'm not sure who came up with it originally, but that talk was by David Potes and Ajay Nair from AWS.