What are the advantages and disadvantages of serverless computing?

Serverless computing has the following advantages and disadvantages:
Advantages:

  • It is cost-effective.
  • The operations on serverless computing are simplified.
  • Serverless computing helps boost productivity.
  • It offers scaling options.
  • It involves zero server management.

Disadvantages:

  • Serverless code can cause response latency.
  • It is not ideal for high-computing operations because of resource limitations.
  • For serverless computing, the responsibility of security comes under the service company and not the consumer, which might be more vulnerable.
  • Debugging serverless code is a bit more challenging.

Pro: you don’t need to think about servers anymore.

Con: you now need to think about new things that you didn’t need to think about before!

In all seriousness, I am a serverless fan and use them exclusively. But like all things in software architecture, every new abstraction solves lower level problems and introduces a new set of higher level problems. This is a good thing because it moves you in an exponential improvement cycle where you achieve more with less but don’t be fooled into thinking that it is a silver bullet.

With serverless technology, you need to fit everything into an event-based, short-lived execution and stateless mindset. You need to leverage external storage (e.g. DynamoDb) and complement with step functions for more complex, long-lived state-based workloads (if you use AWS). You need to worry about cold-starts and sharing the same lambdas for multiple endpoints to combat this problem.

If you don’t go against the grain, serverless is a great piece of technology, scales very well, won’t break down under high-load and is extremely cheap to use.