Why aren't we all serverless yet?

Cost and Performance

  • Many argue serverless (especially AWS Lambda-style FaaS) is significantly more expensive than containers or VMs for sustained workloads.
  • Pricing is seen as a “billing model” layered on the same underlying compute, with each abstraction step (Lambda → Fargate → EC2) adding cost.
  • Several comments describe large cost savings from leaving serverless for monoliths/containers, while others report specific bursty workloads where switching to Lambda cut costs dramatically.
  • Serverless can be slower: cold starts, extra orchestration overhead, and time limits (e.g., ~15 minutes) hurt high‑compute or long‑running tasks like video transcoding.

Developer Experience and Complexity

  • Many find DevEx poor: YAML/IAM sprawl, CDK code exceeding app code, harder integration testing, weak local dev, painful debugging and observability.
  • Some like the “zero sysadmin” aspect and rapid deploys for small services, but others say the supposed simplicity disappears at scale.
  • Tooling like CDK, Amplify, SST, and cross-cloud abstractions are mentioned as partial mitigations, with mixed reviews.

Architecture Choices: Monolith vs Serverless

  • Strong sentiment that simple monoliths (often with established frameworks like Rails) are easier to reason about, debug, and cost-estimate.
  • Serverless architectures can devolve into “function explosion”: hundreds of Lambdas, many queues/topics, effectively a distributed monolith with high cognitive load.
  • Several argue you can design modular/microservice-like boundaries inside a monolith and avoid network-induced complexity.

Vendor Lock-In and Portability

  • Lack of standardized APIs and deep integration with cloud‑specific features creates lock‑in and migration pain.
  • Local reproduction of the production environment is often hard or impossible, pushing people to develop directly against the cloud.
  • Some mention emerging cross-provider frameworks, but they are niche.

Where Serverless Works Well

  • Commonly cited good fits:
    • Very low-traffic endpoints or cron-like jobs.
    • Highly bursty, short-lived CPU tasks where scaling to zero matters.
    • Background automations, glue code, notifications, or one-off bots.
  • Several say it’s reasonable for “toy” projects or side utilities, but fiscally unwise as the backbone of a high-scale product.

Terminology and Conceptual Debates

  • Extended debate over what “serverless” really means:
    • One camp: “someone else’s server / responsibility.”
    • Another: return to a CGI-like model where the app isn’t itself a long-lived server.
  • Many find the term misleading marketing; some see it as historically defensible but still confusing.