Saturday, August 24, 2019

What is Serverless Application?

A serverless application is an application implemented using serverless services, and at least five traits are characterised for such application.
  • 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 hostless; there is no server to work with. The good thing is there is less operational load. No server to upgrade; no security patch to apply. On the other hand, different kinds of metrics need to be monitored in an application.
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.