What It Means to Be a ‘Serverless Native’

Stackery sponsored this post.

We’ve all heard of digital natives: those born in the 1990s or later who don’t remember a time before the internet, streaming music and movies, online shopping and generally having all of the world’s information at their fingertips.
I’ll try to avoid dating myself, but I am not a true digital native. I remember newspaper deliveries and TV news, and I was there when AOL told me that I had mail for the first time. My first webpage was built before JavaScript and CSS were a thing — and had more scrolling marquees and flashing gifs than the Space Jam site (depending on when you came of age, you may know what I’m talking about).
However, I didn’t *really* learn to code until 2018, and while I experimented with containers in code school, my first apps were launched using serverless architecture.
I’m lucky in that my first real developer role is at a company that was built on and has embraced serverless architecture. Serverless is the only way I know to build a backend now.
In other words: I am a serverless native. But what does that mean?
Natively Efficient
Serverless natives never have to learn to build their own hardware, provision IP addresses for it and have a whole service go down because the power went out in their office. Serverless natives don’t need to learn to anticipate capacity when choosing cloud resources or have a site crash on them due to being overloaded.
Serverless natives take the time they would have spent learning virtual machines or containers and use it to learn to write better code. New developers are perhaps the ones who see the greatest benefits from being serverless native: they can build our their front-ends and use a combination of cloud services to create their backend, from storage to databases to user authentication.
Oh, and serverless natives don’t pay for unnecessary compute resources.
Functions Make the Full Stack
A serverless native writes stateless functions that communicate through APIs with other components of an app or service.
Traditional development is based on writing either client-side or server-side code. A serverless-native developer can still write client-side code, such as a website’s front-end or a mobile app interface — but rather than just having backend code sitting on a server indefinitely, the architecture is event-driven.
This means that today, a serverless native front-end developer just needs to be able to write Lambda functions in order to be a full-stack developer.
Serverless for Enterprise
Being serverless native scales to enterprises as well. A company that has been around for years or decades will have tons of technical debt. It will likely to be thinking of how to break up a legacy monolith into microservices before even considering adding serverless architecture.
A serverless-native company, however, would have structured its application in a serverless way from the start. It may have to consider which cloud providers to use or how their resources will communicate through APIs, but the organization gets to save the engineering time others will spend on moving their backends to the cloud.
DevOps, Natively
Serverless as a concept has existed since around 2012. Real serverless computing has been accessible since the launch of AWS Lambda in late 2014. Anyone learning to code today can be a #serverlessnative — which means thinking about cloud architecture from the very start.
Feature image via Pixabay.