Issues with Serverless Products

‍Serverless technologies have ushered in a new era of scalable and cost-effective cloud computing solutions. While they offer numerous advantages, including cost-effectiveness, easy scalability, and reduced operational burden, they can have issues that make them impossible to use. Especially when it comes to cost management and observability. The following exploration discusses some specific examples that highlight these issues, serving as cautionary tales for early-stage startups.

Example: MongoDB's Problematic Billing Units

MongoDB, a popular NoSQL database service, released a serverless option in 2022. This serverless version bills primarily by Read Processing Units (RPUs), a unit that, in practice, bears little connection to actual database read operations.

In our experience, interpreting the usage of RPUs was challenging, with MongoDB unable to provide any insight into which queries were consuming RPUs. Furthermore, there was no way to preview how RPUs were used.

In tests, a workload that was cost-effective on a $300/month standard instance ballooned to $3,000/month on the serverless option, despite the serverless instance being used only 1% of the time. This cost disparity, with no means to track it or understand its origins, made MongoDB's serverless option practically unusable for our purposes.

In such a case, a more trackable billing unit, such as actual read operations, could have helped better understand and manage the costs.

Example: OpenTok's Complete Lack of Tooling (Experience Composer)

Another case involves OpenTok's Experience Composer, a video composition product under the Vonage umbrella. Despite having a clear billing metric (minutes of usage), the product suffered from insufficient controls to understand how usage was billed.

We found the billing intervals didn't align with our internal controls. In essence, we were confronted with seemingly random charges and lacked the necessary controls to understand the billing from OpenTok's product.

Lessons for Startups

These experiences serve as crucial lessons for startups exploring serverless options:

  1. Understand Your Usage: Before adopting a serverless product, ensure it provides the necessary controls to understand and manage usage.
  2. Decipher the Billing Units: Billing units should be measurable and relatable to your product's usage. Avoid 'made-up' units like MongoDB's RPUs that don't directly tie to discernible operations.

In the early stages of startups, engineering teams often need to work across different domains under considerable uncertainties. When resources are limited, and every penny counts, understanding and controlling costs is crucial. As such, the choice of tools, including serverless products, needs careful consideration of their cost-management and observability features.