Susan Potter

Musings on serverless

Sun August 8, 2020

DRAFT

Over the last twenty years I have worked close to or on the frontlines of system infrastructure delivery from hall server closets to multi-datacenter setups (before what we know as cloud computing was a thing) all the way to a variety of programmable cloud configurations across multiple regions and even providers and deploying multi-region serverless applications in minutes.

Since the mid-1990s availability has become the coveted prize as internet and business systems cater to users and business needs 24/7 across the globe.

As a result, most computing infrastructure at mature organizations have overhead built-in to enable this availability. Over time, this overhead leads such companies to paint themselves into corners through large technology capital investments. Large capital investment leads to organizations becoming beholden to aging technology so that they can exploit the balance sheet benefit of amortizing capital expenditures. Yet this squashes software delivery innovation within the organization and has opportunity costs.

Tech startups, on the other hand, churn through many cutting edge technological changes that don't always work, sometimes at a rate faster than their engineering team can keep pace with. Many of these organizations today are leveraging some forms of serverless today. They have little or no capital investments to ride out and have a small engineering and operations team compared to their enterprise counterparts so they prefer to leverage cloud primitives even at a higher per use cost with the benefit of reducing upfront costs and scaling to their product's usage which corresponds with their revenue.

There are a lot of companies in between these extremes and even teams within larger organizations that are not beholden to enterprise IT.

2007-2014: The rentable programmable "cloud"

The first iteration of cloud computing allowed businesses to focus on their core competencies to deliver products their customers care about faster for the cost of paying more in your operational costs sooner.

However, even after developing more maturity than its humble early beginnings with EC2 instances inside VPCs managed by ASGs that get attached to load balancers or exposed through cloudfront distributions so that your applications can scale up dynamically, scaling down to zero was always a challenge.

Mimicking datacenters via programmable compute and networking primitives had huge potential for reproducible automation, capacity planning and (sometimes) operational cost reduction that only some software companies exploit today. However, it still required a constant overhead such that scaling to zero was rarely feasible to accommodate modern availability expectations today. This iteration of the "cloud" I call the rentable programmable datacenter.

2015+: "serverless"

Serverless is currently allowing those of us at the forefront to launch new products and services to meet business objectives experimentally without huge upfront investments in either capital expenses or engineering time to fully exploit the rentable programmable datacenter iteration of cloud computing we discussed before.

Today the prized asset (rightly or not) is data. I am not going to discuss the ways in which this asset is [[corrupting the soul of democracy]] among other things since this has been well documented.

What's next?