- No management of server hosts or server processes are required
- Auto-scaling and auto-provisioning based on load
- Cost is based on usage
- Performance capabilities are defined in different terms other than host size or count
- Has implicit high availability
Serverless is stateless. When state is not stored in an application, horizontal scaling is very easy and you just spin up more instance. Being stateless also means that room for error is greatly reduced. Being stateless also means that techniques that require state can’t be used in application development; for example, it’s not possible to use HTTP sessions.
A serverless architecture where many components are integrated via the network is distributed by default. Persistence is achieved in Backend as a Service (BaaS), code is run in multiple functions, other services are used for authentications and queues, etc. Being distributed also bring high availability to the architecture.