DEV Community

Sameer Khanal
Sameer Khanal

Posted on

Serverless Computing: From Basics to Advanced Concepts

Why Serverless Matters

I honestly thought "serverless" was just another buzzword when I first heard it. How can a serverless thing be if there are clearly servers? However, after digging into AWS, I came to understand that it's not about the tech; it's a new way of doing things that changes the whole app-building paradigm.
Here's the thing that confused me the most: I thought serverless meant "no servers at all" (which is incorrect), and that everything should be serverless (which is also incorrect). This blog is all about the journey of my understanding — from being puzzled to getting it.

What Serverless Actually Means
'Serverless' means that you don't bother with the servers and continue with writing code.
To explain it, one can compare it to Uber vs. car ownership:
When you have a car, you take care of maintenance, insurance, and parking.

With Uber, you simply state your destination.

Serverless is similar to Uber, but for computing. Instead of asking whether there are servers, you focus on what your function needs to do. You handle the logic layer, not the hardware layer.

AWS Lambda: The Heart of Serverless
Lambda runs your code on an event without requiring server setup.
How it works:
You write a function (Python, Node.js, Java, etc.)

An event triggers it (API call, file upload, timer)

Lambda executes in milliseconds

You pay only for execution time

The first time I ran Lambda, I couldn’t believe it — no EC2, no load balancers. Just code → event → execution.
Lambda changed the way I work: instead of building big systems, I write small functions that “listen” to events.
The pay-as-you-go model is great, especially the 1M free requests per month.

Core Serverless Services

  1. API Gateway
    Creates HTTP APIs that trigger Lambda.
    Flow:
    User → API Gateway → Lambda → Response

  2. DynamoDB
    AWS's fully managed NoSQL database.
    Fast (single-digit ms), scalable, and a perfect partner for Lambda.

  3. S3 + CloudFront
    Great for storing and delivering content at scale.
    I once built a system where:
    Uploading an image to S3 triggered a Lambda

Lambda resized the image
No servers involved at all.

  1. SNS, SQS, EventBridge These services enable communication between systems. SNS → Pub/Sub

SQS → Reliable queueing

EventBridge → Event routing and filtering

They help build event-driven, fault-tolerant systems.

  1. Step Functions Connect multiple Lambdas for workflows needing retries, error handling, or branching logic.

Common Architecture Patterns

  1. Simple API
    User → API Gateway → Lambda → DynamoDB
    I built this in a day, and it scaled automatically.

  2. Event Processing
    S3 Upload → Lambda → Processing
    No polling, fully automated.

  3. Async Workflows
    API → SQS → Lambda
    Allows background processing while returning immediate responses.

My Key Learnings

Challenge 1: Traditional Thinking Didn’t Work
I tried building traditional architectures using serverless.
Breakthrough: Serverless = small, event-driven tasks.

Challenge 2: Cold Starts Confused Me
Response fluctuated from 50ms to 3 seconds.
Breakthrough: Cold starts happen during initialization. After that, performance stabilizes.

Challenge 3: Debugging Felt Blind
No servers to SSH into.
Breakthrough: CloudWatch logs everything automatically.

What Helped Me the Most

Actually building things.
Deploy functions, break them on purpose, connect services.
Hands-on experience makes everything clearer.

Best Practices

Limit Lambda package size

One function = one responsibility

Think in terms of events

Secure IAM roles (least privilege)

Use CloudWatch & X-Ray from day one

Prepare for failure with retries, DLQs, and timeouts

Advanced Concepts

Step Functions
Great for multi-step processes, parallel branches, and complex orchestration.

Cold Start Optimization
Keep the package small

Use Provisioned Concurrency

Choose faster runtimes
Most apps don't need serious optimization.

When Not to Use Serverless
Long-running processes

Persistent high-concurrency connections

Workloads needing special hardware

Constant heavy traffic where servers are cheaper

How Serverless Changed My Thinking

Serverless shifted my mindset:
Focus on business logic

Think in events, not servers

Plan for automatic scaling

Prefer small, separate components

Yes, I struggled with debugging, IAM, and cold starts — but each taught me something crucial.

Final Thoughts

My advice: just build something.
Deploy an API.
Create an S3 trigger.
Break things and learn from them.
AWS Free Tier is generous, the docs are solid, and the community helps a lot.
At the end of the day, servers still exist — but you don’t have to care about them anymore. That's the whole point.
The Serverless journey you faced is intriguing. Share your experiences to find solutions together.

Top comments (0)