I sometimes use the “pet->cattle->herd” analogy to briefly describe the evolution of the cloud to someone unfamiliar with the industry. However, I often feel there is a general lack of appreciation for the latter advancement: serverless.

For me, I like to imagine individual servers as guitars. We tune them and play them by hand.

If we wanted to then virtualize those “guitars”, we would probably go about setting up machines that would play the guitars on our behalf. With our guitars “virtualized”, we still have to make a number of decisions. For instance, if we want a new machine to manage a new guitar, we have to specify all the details. Even though we now have the capability to do control our guitars remotely, we still have to tune, maintain, and upgrade them regularly.

With serverless, we go beyond. The “virtual guitars” are automatically provisioned and auto-tuned. A guitar is available anytime I want it to play a song. All we worry about now is making the music.

And in the end, all that matters is the music that we choose.