This week I’ve been preparing for some speaking events: a KeyNote at CapitalOne’s SECON and a talk at serverlessconf .
In preparing these talks, I’ve been trying to articulate exactly why I think that serverless cloud computing technologies (like AWS Lambda) are a big deal. The next big deal in cloud computing, in fact.
A recent conversation with a member of the AWS Lambda team at Amazon helped me see an interesting corollary, which I think really highlights what is happening here:
Lambda is doing to compute, what S3 did to storage.
S3 deals in objects for storage. You provide an object and S3 stores it. You don’t know how, you don’t know where. You don’t care.
There are no drives to concern yourself with. There’s no such thing as disk space. Not enough space… too much unused space… These concepts don’t exist. All of this is abstracted away.
YOU CANNOT OVER-PROVISION OR UNDER-PROVISION STORAGE CAPACITY IN S3. It just is.
S3 stores and charges you for exactly what you give it, nothing more, nothing less.
Now let’s look at lambda.
Lambda deals in functions for execution. You provide function code and lambda executes it on demand. You don’t know how, you don’t know where. You don’t care.
There are no virtual machines to concern yourself with. There’s no such thing as server farm capacity. Too many idling servers… not enough servers to meet demand…. scaling groups… These concepts don’t exist. All of this is abstracted away.
YOU CANNOT OVER PROVISION, OR UNDER PROVISION EXECUTION CAPACITY IN LAMBDA. It just is.
Lambda executes and charges you for exactly for what you execute, nothing more, nothing less.
Serverless compute is the next layer of abstraction in cloud compute.
Look at the history of public cloud offerings. Each new paradigm that has arisen has moved the unit of scale, and abstracted away a set of responsibilities from the customer to the vendor.
When we started using data centres, the hardware was the unit of scale and the physical hosting environment was abstracted away.
With IAAS the operating system was the unit of scale, and the physical hardware was abstracted away.
With PAAS the application was the unit of scale, and the OS was abstracted away.
With serverless technologies the function is the unit of scale and the language runtime is abstracted away.
The vendor is now taking care of the vast majority of the stack for us, and we can focus almost entirely on our code.