What means Serverless?

For those who want to understand Serverless architectures, I recommend reading this post by Mike Roberts. The term Serverless was already used in 2012. Mike defines the following characteristics of serverless architectures:

Mike Roberts - Definition of Serverless

No management of server hosts or server processes

You as a developer don’t have to care about e.g. the number of servers running your software or where where it runs or things like OS upgrades, etc.

Self auto-scale and auto-provision based on load

Costs based on precise usage

Get charged based on usage. Don’t get charged if you don’t use a service. Platform itself should auto-scale or spin up new things and also terminate them according to the current need without having anybody involved.

Performance capabilities defined in terms other than host size/count

Serverless gives you higher level of abstraction which also means that you loose some of the control of lower levels.

Implicit high availability

You don’t have to apply concious thought, you get high availabilty as a side effect of using the serverless product.

Recently Sam Newman, the author of the book “Building Microservices“, gave a good talk on the same topic and here is the video.

Serverless is all about abstracting away things in certain levels. Kelsey Hightower’s tweet makes an interesting point:

I hope you found some interesting links in this article and if you did, post additional material or share this one.

(via GOTO 2017)