What is Serverless?

What is serverless and why should you care?

⭐️ 👀 2023 WEB DEVELOPMENT BOOTCAMP starting in days! Join the waiting list to reserve your spot in my 10-weeks cohort course and learn the fundamentals, HTML, CSS, JS, Tailwind, React, Next.js and much much more! 👀 ⭐️

Serverless is a term that identifies a particular way to run programs, that does not involve managing your own server.

You create a function, place it somewhere in a cloud server, and all you have is a URL to call.

When you call that URL, the function is executed.

Someone else manages the server, the scaling, the security. There’s no need to worry about kernel updates or moving to the next LTS release of your Linux distribution.

Serverless is very convenient from the pricing model too. Traditionally you might rent a VPS (Virtual Private Server) monthly, and pay for the monthly price regardless of your actual usage.

If you have a spike of users because someone shared your website in a popular place, the server might not be able to serve all requests unless you upgrade to a bigger server.

With serverless, you pay for requests rather than paying for the server. If no one is using your service, you pay nothing. If 100.000 people jump on your site all together, your functions scale because the company that manages the functions for you has all the elements in place for handling the traffic and automatically put more resources into your functions. You pay for the resource used rather than for some resource you might use in the future.

When done right, it also proves to be very liberating from a mental perspective for developers working on projects on their own. You are not in charge for the server that powers your application, so you are not on call 24/7 to fix any problem that might happen to it. You don’t have to be a system administrator or devops expert to run your app.

Sounds like a dream world, where is the catch?

First, serverless is still at its very early stages. All players have a different implementation of it, and the tooling around it varies in quality.

Pricing wise, it might not make sense for you, if you have a predictable traffic and you can purchase your servers for cheaper, for example by reserving instances on AWS.

You also don’t control the server, which means you have to rely on the available infrastructure for logging, monitoring and debugging, and it’s difficult to reproduce your setup locally.

What are the major players in the market?

AWS Lambda is the most famous and used one probably, and currently allows you to create serverless functions in Java, Go, PowerShell, Node.js, C#, Python, and Ruby.

AWS Lambda is the underlying service used by products that aim to simplify the serverless offer for developers:

They have an awesome FAQ on https://aws.amazon.com/lambda/faqs/ which I recommend to read.

One more thing! ⚠️ ✋

At the end of January I will organize the Web Development Bootcamp.

It's a 10-weeks long cohort online course where I will guide you to becoming a Web Developer.

It's not "just a course". It's a big event I organize once a year.

We'll start from zero, learn the fundamentals of Web Development, HTML CSS, JavaScript, Tailwind, Git, using the command line, VS Code, GitHub, Node.js, we'll then learn React, JSX, how to use PostgreSQL, Astro, Next.js, Prisma, deploying on Netlify/DigitalOcean/Fly/Vercel and much more! 

At the end of the first 10 weeks you'll know how to create web sites and web applications and I'll unlock you the 2nd phase of the Bootcamp: you will get access to a large number of projects exclusive to the Bootcamp graduates, so you can follow my instructions to build things like private areas with authentication, clones of popular sites like Twitter YouTube Reddit, create e-commerce sites, and much much more.

Because once you got the fundamentals, you only learn by working on real, exciting projects.

To find out more, visit bootcamp.dev