Serverless architecture promises three things: no servers to manage, scaling that happens without you, and a bill that tracks real usage instead of idle capacity. For the right workload it delivers all three. Teams get into trouble when they read that as permission to build an entire system this way.
Serverless computing architecture has become normal for part of a stack and rare for all of one. The Cloud Native Computing Foundation’s 2024 annual survey found 44% of organisations running serverless in production for a few applications, up six points on the previous year, while only 11% ran it for most or all of their applications, down from 14%. Over the same period, the share of organisations planning not to use serverless in the near term rose to 23%.
The largest hidden cost in a serverless decision is what it takes to leave. Once core logic sits on one provider’s proprietary services, moving it means rebuilding around APIs that have no direct equivalent elsewhere, and that is a rewrite budget nobody planned for.
Redwerk builds both kinds of systems. Our cloud application development services cover the multi-tenant setups, analytics engines, and event processors that serverless handles well, and we know which workloads get the most out of that model and which ones are better served another way. In this article, we’ll walk through how serverless works, where it pays off, where it costs more than it saves, and the five questions we ask before recommending it.
What Is Serverless Architecture, and What It Is Not
Serverless architecture is a cloud model where the provider runs your code in stateless, event-triggered containers and bills you only for execution time. It suits event-driven work, spiky traffic, and early-stage products. It is a poor fit for core logic that needs a complete, immutable audit trail, and it is rarely the right choice for an entire system.
The mechanism behind it is Function-as-a-Service, or FaaS. You upload a function, the provider runs it in a short-lived container when an event triggers it, and the container disappears afterwards. You never pick an instance size, patch an operating system, or set up an autoscaling group. Most real serverless cloud architecture pairs FaaS with Backend-as-a-Service, or BaaS: managed databases, authentication, file storage, and message queues that the provider also operates. A typical stack looks like a function for the logic, a managed NoSQL store for the data, a hosted auth service for identity, and an event bus wiring it together.
The name causes the one misconception worth clearing up. Servers still exist. Somebody still patches them, capacity-plans them, and pages an engineer when they fail. That somebody is the cloud provider rather than your team, which is a change in who carries the operational burden, not a change in physics. Every major cloud provider now sells one of these platforms, including Amazon Web Services with Lambda, Microsoft Azure with Azure Functions, and IBM with Cloud Code Engine, so the model is available wherever your infrastructure already lives.
The Real Advantages of Serverless Architecture
The advantages of serverless architecture are practical, and they land hardest on teams without a dedicated platform or DevOps function. Each one saves you either money or engineering hours. The main benefits of serverless architecture:
- No infrastructure management. No provisioning, no operating system patching, no capacity planning for the underlying compute. Engineering time moves from keeping servers healthy to writing business logic.
- Scaling you do not configure. A function that handles ten requests a minute handles ten thousand without a configuration change. For traffic you genuinely cannot predict, this removes an entire class of incident.
- Pay-per-use pricing. You are billed for execution time, not for capacity sitting idle overnight. A batch job that runs for four minutes a day costs roughly four minutes a day.
- Faster time to market for the workloads it fits. Skipping the infrastructure layer takes real weeks out of an early build, which is worth the most when you have a launch date and no platform team.
Adoption data inside the big three clouds shows how routine this has become. Datadog’s telemetry across cloud customers puts Lambda in use by 65% of AWS customers, Cloud Run by 70% of Google Cloud customers, and App Service by 56% of Azure customers.
The Serverless Trade-Offs Nobody Puts on the Slide
Every one of the advantages above is real. So is everything in this section, and the vendor decks tend to be lighter on this half. These four trade-offs are the ones we see cause actual budget and compliance problems on real projects.
Vendor lock-in. Once a system runs on Lambda for compute, DynamoDB for data, EventBridge for events, and Cognito for identity, leaving AWS is not a migration. Those four services have no drop-in equivalents on Azure or Google Cloud, so the work is a rebuild of the integration layer, the data model, and the auth flow at the same time. Making that choice knowingly is reasonable, but discovering it two years later, when an acquisition or a procurement decision forces a move, gets expensive.
Cold starts, which now cost money as well as milliseconds. If a function has been sitting idle, the provider has to build a fresh environment before your code can run, and whoever made the request waits. That pause is usually a fraction of a second, which nobody notices in a nightly report and everybody notices on a screen they are looking at.
Since 1 August 2025, the wait also shows up on the bill. AWS now charges for the start-up phase of a function, bringing the most common setup in line with how it already billed other configurations. AWS says most customers will see minimal impact, because start-ups happen on a small share of total requests. The teams that do feel it run many rarely-used functions, where start-ups make up a large share of the total. The same trade-off is appearing in AI infrastructure, where AWS Bedrock AgentCore runs agents on a serverless Lambda model that scales to zero when idle and pays for that with start-up delay on anything a person is waiting for.
Observability gets harder. Debugging one request that touched a single well-bounded service is a matter of reading one log stream. Debugging one request that fanned out across nine short-lived functions means correlating nine log streams for containers that no longer exist, which is why distributed tracing stops being optional. It is solvable, and it is work that a monolith simply does not generate.
Audit and compliance are the hardest problem. Where a workload needs a complete, immutable record of every operation touching regulated or sensitive data, the ephemeral and distributed nature of serverless functions makes that record harder to guarantee consistently than a single controlled logging pipeline does.
When Serverless Architecture Is the Right Call
Knowing when to use serverless architecture is mostly a question of where the workload sits relative to your core product. The pattern that works is serverless at the edges of the system, doing work that is naturally event-shaped and tolerant of a little latency. Three cases fit well enough that we recommend it without hesitation.
Event-driven background tasks and auxiliary functions are the strongest fit: image processing after an upload, a nightly report, a webhook handler, a notification fan-out. None of these is the core of the application, all of them are triggered rather than continuous, and a few hundred milliseconds of start-up delay harms nobody.
Spiky or unpredictable traffic is the second. If your load is a flat line, reserved capacity is usually cheaper. If your load is a ticket sale, a tax deadline, or a campaign spike, paying for the peak all year is waste that serverless removes.
Early-stage products are the third. A team that has not hired its first platform engineer gets a production-grade operational layer without having to build one, which buys back the weeks that would otherwise go into infrastructure before the first release.
When We'd Skip Serverless
Skip serverless for core application logic when the workload requires a complete, immutable audit trail. The ephemeral, distributed nature of serverless functions makes that trail harder to guarantee than a single, controlled logging pipeline, and a compliance conversation is a bad place to use the words “harder to guarantee”.
This comes up on real projects. Change & Innovation Agency is a 100% Americans with Disabilities Act (ADA)-compliant e-government SaaS used by welfare divisions across the United States, with compliance expectations that rival healthcare. Every operation touching case data needs to be reconstructible on demand, years later, with no gaps. For a core like that, we chose a controlled, conventional architecture, which is the same reasoning behind the SaaS tech stack we’d actually pick.
The same logic applies well beyond regulated industries. Whenever you have to be able to prove exactly what happened to a given record, an architecture that gives you one auditable path is worth more than one that scales to zero.
Serverless Architecture vs Microservices vs Traditional Architecture
Serverless architecture vs microservices is the comparison that causes the most confusion, because the two words answer different questions. Serverless is about who manages the execution environment. Microservices is about how you decompose the application into deployable pieces. They are independent decisions, and you can have any combination of the two, including a serverless monolith and a containerised microservice fleet.
Most systems worth running end up combining elements of all three columns below, which is also how we approach scalable architecture generally. The same Datadog data supports this: 66% of organisations that use serverless functions also run at least one container orchestration service, so the realistic question is which parts go where.
Who manages the runtime
The cloud provider
Your team, via an orchestrator
Your team, end to end
How it scales
Automatically, per request
Configured rules, per service
Manual or vertical
What you pay for
Execution time only
Reserved or allocated capacity
Provisioned capacity
Cold start latency
A real factor
Minimal once running
None
Portability across clouds
Lowest
High, especially with Kubernetes
Highest
Audit trail effort
Highest
Moderate
Lowest
Best fit
Event-driven, spiky, auxiliary work
Core services at scale
Stable, tightly coupled, regulated cores
Serverless Architecture Best Practices If You Go This Route
The serverless architecture best practices that matter are the ones that keep the trade-offs above from becoming incidents. All four are cheap to adopt at the start of a project and expensive to retrofit into one already in production. We apply them on every serverless component we ship.
- Keep functions small and single-purpose, and keep the deployment package small with them. Start-up time scales with what you load, so a lean package is now both a latency and a billing optimisation.
- Design every function to be idempotent. Event sources retry, and duplicate deliveries are normal rather than exceptional, so running the same event twice has to produce the same result as running it once.
- Centralise logging and distributed tracing from day one. Correlation IDs threaded through every function and a single destination for logs cost an afternoon at the start of a project and weeks after an incident.
- Limit proprietary coupling where portability has business value. Keeping business logic in plain code, with provider services behind a thin interface, preserves the option to move without giving up the model.
How to Decide, a Practical Framework
Five questions settle most serverless decisions, and they are the same five we walk through in an architecture conversation before recommending anything. Answer them for one workload at a time, because the core of your product and the work around it usually come out differently.
- What shape is the traffic? Steady and predictable favours reserved capacity. Spiky, seasonal, or unknown favours serverless.
- What are the audit and compliance requirements? If a complete, immutable trail is mandatory for this workload, keep it off serverless.
- What scale do you expect in two to three years? Per-request pricing that is cheap at a million invocations a month deserves modelling at fifty million.
- What DevOps capacity do you actually have in house? No platform team is a strong argument for serverless. A mature platform team narrows the gap considerably.
- How core is this workload to the product? Auxiliary and event-driven work is a natural fit. The system of record usually is not.
If two or three of those answers are uncertain, that uncertainty is worth resolving before the build. Our functional specification services exist to get a clear-eyed architecture review on paper first.
Most Strong Architectures Are Hybrids
Serverless is not an all-or-nothing commitment, and treating it as one is how teams end up either paying for idle capacity they never needed or explaining a gap in an audit log. The strongest architectures we have shipped across 250+ platforms since 2005 put serverless where it earns its keep, on event-driven and auxiliary work, and keep core, compliance-sensitive logic on traditional or containerised services.
If you are weighing this on a real system, talk to us about your architecture and we will tell you which workloads belong on serverless, which ones do not, and what each path costs, before you commit engineering time to the wrong shape.
FAQ
What are the pros and cons of serverless architecture?
The pros are no infrastructure management, automatic scaling, pay-per-use pricing, and faster delivery for workloads that fit. The cons are vendor lock-in through proprietary services, cold-start latency that AWS has billed since August 2025, harder debugging across distributed functions, and difficulty guaranteeing a complete, immutable audit trail.
When should you not use serverless architecture?
Avoid it for core application logic that requires a complete, immutable audit trail, for steady and predictable traffic where reserved capacity is cheaper, and for latency-critical user-facing paths where cold starts are unacceptable. Portability requirements are another reason to be cautious, since proprietary managed services are the hardest part of any cloud exit.
Is serverless cheaper than running containers?
It depends entirely on traffic shape. Serverless is usually cheaper for spiky, low-duty-cycle workloads because you pay nothing while idle. Containers are usually cheaper at steady, high-volume load, where per-request pricing adds up faster than reserved capacity. Model your own invocation counts at projected scale rather than assuming either direction.
Is serverless architecture the same as microservices?
No. Serverless describes who manages the execution environment, and microservices describes how the application is decomposed into independently deployable pieces. You can run a monolith on serverless functions or microservices on your own servers, and most production systems mix both models.
Does serverless mean there are no servers?
No. Servers still run your code, but the cloud provider provisions, patches, and scales them instead of your team. The change is in who carries the operational burden, not in whether servers exist.
Learn how we helped AWE Learning migrate from on-premises to the cloud, and reach users beyond the USA by implementing a scalable SaaS solution