“I don’t know if you know, sort of the metaphor of, you know, pets vs. cattle? Yeah, servers are like pets. You give them a name. If they get ill, you nurture them back to health.
VMs, cloud is like cattle, you know? You number them. If some fall ill, you put them out to pasture and you get a new one. You dont care about that. But in reality, that’s still, if you run in a VM world. In this new world of serverless, there is not even cattle anymore. There is only the herd. Only the kind of things that you want to build — the application you want to build and we’ll take care of the management of all the individual pieces underneath that.” Werner Vogels said at the AWS Summit 2016 about the new generation of services.
Slide from the AWS Summit 2016 (https://youtu.be/b7yqd7z1RBQ?t=1h15m30s)
My friend Soenke Ruempler, a passionate serverless developer himself, analysed for a talk, why it is, that he believes AWS Lambda (a managed Function-as-a-Service implementation by AWS) is the right choice for him in future projects.
If you believe in the mantra, that “anything, that is not core value to your business, you should not do.”, herd services might be the right choice for you to build your digital service upon.
Soenke has created a number of slides, with a comprehensive list of the operational tasks you’d have to take care of, when you were to build an API yourself in the “old world” of hardware servers and from there digs into all the available kind of services (mostly in the AWS ecosystem) and lines out how they dissolve the problem scope you would have needed to take care of initially.
From Soenke Ruempler’s talk “Serverless (Web)Apps with AWS API Gateway and Lambda https://slidr.io/s0enke/serverless-web-apps-with-aws-api-gateway-and-lambda
The idea of “Herd”-services themselves isn’t entirely new, as SQS or S3 have already seen the light of day 10 years ago. It is however really now, 10 years later, that we see more services following the patterns, that made SQS and S3 so successful.
I truly believe, that the way we’ll run digital services is rewritten again from running and building apps for Cloud Computing in a “Cattle”-Style environment, towards building apps for e.g. “Function as a Service” — “Herd”-Style environments. As there is still a certain cost factor involved with running virtual machines, like running and maintaining an operating system or even just making sure the instances running your docker containers are not running out of disk space, it comes with certain cost factors for your business and even more a cost for experimentation.
Most of the “herd”-style services, come with more benefits — out of which, scaling and billing truly on-demand really stand out for me. The latter really lowers your cost of experimentation as the smallest entity you can be billed upon is moving from one (1) instance-hour to one (1) function-call or one (1) GET to your DB, allowing you to make more experiments in shorter times for less costs in this new age of true multi-tenant on-demand managed services.