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.
Serverless is all about abstracting away things in certain levels. Kelsey Hightower’s tweet makes an interesting point:
I now understand what all the Serverless fuss is about. When you have a great idea the last thing you want to do is setup infrastructure.
— Kelsey Hightower (@kelseyhightower) April 23, 2017
I hope you found some interesting links in this article and if you did, post additional material or share this one.
(via GOTO 2017)