top of page
Search

The Pure Architect’s Guide to Serverless: S3, React, Lambda, and Managed Services Beat Kubernetes in many cases

  • Writer: Mark Kendall
    Mark Kendall
  • 2 hours ago
  • 5 min read



The Pure Architect’s Guide to Serverless: S3, React, Lambda, and Managed Services Beat

Kubernetes in many cases


For a long time, the answer to almost every serious enterprise architecture discussion sounded the same:


Microservices.

Containers.

Kubernetes.

Independent scaling.

Service mesh.

Observability.

Platform engineering.


And to be clear, that architecture still matters. Kubernetes is not wrong. Microservices are not wrong. Containers are not wrong.


But the mistake many of us made was turning a powerful architecture pattern into a default answer.


Not every business system needs a cluster.

Not every application needs pods, ingress controllers, node pools, sidecars, service meshes, Helm charts, and platform teams.

Not every frontend needs a server.

Not every backend needs a long-running service.


Sometimes the cleanest architecture is not the most impressive one.


Sometimes the cleanest architecture is this:

React frontend

  → S3 / CloudFront


Backend APIs

  → API Gateway / Lambda


Authentication

  → Cognito


Storage

  → DynamoDB / S3 / RDS / OpenSearch


AI / agent layer

  → Bedrock / AgentCore / external model APIs

That is not “toy architecture.”


That is modern cloud architecture.



The Frontend Does Not Need to Scale Like a Server



A React site deployed to S3 is not a server-side application sitting on a machine somewhere waiting for traffic.


It is a compiled static application.


The browser downloads:

index.html

JavaScript bundles

CSS files

images

static assets

Once those files are delivered, the user’s browser runs the application.


There is no frontend server process to scale. There is no Node server that needs more CPU. There are no pods needed just to serve a static page.


With S3 and CloudFront, the frontend is delivered as static content. CloudFront can cache it globally. S3 can serve it reliably. The architecture is simple, cheap, and extremely scalable.


For many sites, the frontend scaling problem is already solved before we even start talking about Kubernetes.



The Backend Scales Where the Business Logic Lives



The backend is different.


That is where the actual system behavior happens:

submit a form

authenticate a user

call an API

run business rules

store data

invoke an AI model

trigger a workflow

generate a report

That logic can be handled by Lambda functions behind API Gateway.


The browser calls an API. The API invokes a Lambda. The Lambda performs the business action and returns a response.


When more users arrive, Lambda scales by running more concurrent executions. You are not scaling a server. You are scaling work.


That is an important mental shift.


The old model said:


Keep services running so they are ready for traffic.


The serverless model says:


Run compute when work needs to be done.


For many business applications, that is exactly the right model.



Kubernetes Is Powerful — But It Is Not Free



Kubernetes gives teams a tremendous amount of control.


It is excellent for long-running services, complex container workloads, high-throughput systems, custom networking, advanced deployment strategies, internal platforms, and large engineering organizations that need standardization across many teams.


But Kubernetes also adds real operational weight:

clusters

nodes

pods

deployments

services

ingress

autoscaling

secrets

IAM mapping

container registries

network policies

observability

patching

upgrades

cost controls

platform ownership

on-call responsibility

That may be justified.


But it should be justified by the problem, not by architectural habit.


If the business need is a training portal, internal dashboard, customer workflow app, AI assistant interface, prototype, lightweight SaaS, or low-to-medium traffic business system, a full Kubernetes platform may be more architecture than the problem deserves.


The goal is not to prove we can operate infrastructure.


The goal is to deliver a business capability.



The Real Architecture Question



The real question is not:


Should we use Kubernetes?


The real question is:


What is the simplest architecture that satisfies the intent of the system?


That is the heart of Intent-Driven Engineering.


Start with intent.


What must the system do?

Who uses it?

How often is it used?

What data does it manage?

What must be secure?

What must scale?

What must be observable?

What must be changed frequently?

What must be cheap?

What must be reliable?


Once those answers are clear, the architecture becomes easier.


If the frontend is static, use static delivery.


If the backend is event-driven or request-driven, use serverless compute.


If the data layer can be managed, use managed storage.


If authentication is standard, use a managed identity service.


If the system grows into something more complex, then introduce containers, services, orchestration, and platform patterns.


But do not start with maximum complexity just because it feels more “enterprise.”



A Better Default for Many Systems



For many modern applications, the better default is:

Static frontend

Serverless backend

Managed authentication

Managed data

Managed AI services

Cloud-native observability

Infrastructure as code

This model gives you:

low cost

fast deployment

less operational burden

automatic scaling

fewer moving parts

clean separation of frontend and backend

strong security boundaries

simple CI/CD

easy experimentation

That is not a compromise.


That is architecture doing its job.



When Kubernetes Still Makes Sense



This is not an anti-Kubernetes argument.


Kubernetes still makes sense when the workload demands it.


Use Kubernetes when you need:

long-running services

custom containers

complex service-to-service communication

highly specialized runtime control

large multi-team platform standardization

stateful workloads that require orchestration

service mesh capabilities

advanced deployment patterns

consistent hybrid or multi-cloud runtime models

But that is not every system.


The mistake is not using Kubernetes.


The mistake is using Kubernetes before the system has earned it.



Architecture Should Reduce Friction



Pure architecture is not about using the most advanced pattern.


Pure architecture is about removing unnecessary friction between business intent and working software.


If a static React frontend on S3 and CloudFront can serve the user experience, that is clean architecture.


If Lambda can handle backend business actions without a running server, that is clean architecture.


If Cognito can handle identity, that is clean architecture.


If DynamoDB, S3, RDS, or OpenSearch can handle the data layer without a custom platform team, that is clean architecture.


Clean architecture is not always the architecture with the most boxes on the diagram.


Sometimes it is the one with the fewest boxes that still satisfies the business intent.



The Architect’s New Rule



Here is the rule I now believe more than ever:


Start serverless and managed. Add infrastructure complexity only when the business problem demands it.


That rule will not apply to every system.


But it applies to far more systems than many architects want to admit.


The future of architecture is not Kubernetes versus serverless.


The future is intent-driven architecture.


Use React and S3 when the frontend is static.

Use Lambda when the backend is request-driven.

Use managed services when the platform does not need to be custom-built.

Use Kubernetes when the workload proves it needs orchestration.


That is not a step backward from pure architecture.


That is pure architecture.


Because the best architecture is not the one that shows how much infrastructure we can manage.


The best architecture is the one that delivers the business outcome with the least unnecessary complexity.

:::


This one fits your site really well because it sounds like a personal evolution, not a generic cloud article. The headline could also be stronger as:


“You Don’t Need Kubernetes Until the System Earns Kubernetes”

 
 
 

Recent Posts

See All

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Post: Blog2_Post

Subscribe Form

Thanks for submitting!

©2020 by LearnTeachMaster DevOps. Proudly created with Wix.com

bottom of page