If you strip away all of the modern conveniences and features that make up your internet experience today, what you're left with is the client-server model. This distributed network was what the internet was built on in the beginning, and that part hasn't changed. You could say, it is still serving us well.
So, when people talk about serverless, what does it mean? Well, it doesn't mean servers are GONE. Of course not: That "client-server model" is still the backbone of how things are getting done.
Serverless refers to a developer's ability to code, deploy, and create applications without having to know how to do the rest of it, like rack the servers, patch the operating system, and create container images.
Top 3 implications of serverless
- People who might not have been before are becoming developers now. Why? They have to learn less of that kind of stuff and get to do more of the creative stuff.
- Developers don't have the recreate the wheel. Why? They let serverless providers do what they do best: run and maintain the servers, patch the operating systems, and build containers.
- Reality check: Someone on your team still has to think about the big picture, about operations. Why? Because when your server crashes or any decision at all needs to be made about the server-side of your project or product, your phone will ring and someone has to pick up. Preferably someone who knows the gameplan, your strategy for going serverless.
When to serverless and when to not?
So, serverless is great, right? But, the truth is it isn't always the right call. What are the factors that should be considered?
The last one, control, is where things get interesting. Projects like Apache OpenWhisk have developed processes and tools to make it possible for you, as a developer, to operate and control your serverless computing environments.
Why open source serverless?
For more on this, check out conversations with leading serverless thinkers and host Saron Yitbarek in Episode 7 of Command Line Heroes podcast.