A primer on serverless

Published on: Sun Apr 10 2022

Series

Content

Introduction

There is a lot of buzz with everyone talking about serverless, but are they really worth the hype ? or is it just all marketing ?

I believe there is a serious use case for serverless in certain situations and scenarios. Mainly, in organizations or teams where operations (DevOps + Security) expertise is lacking. Adopting serverless can help to fill those gap by shifting that responsibility to the vendor (ie AWS, GCP, Azure).

To find out if serverless if right fit or not, I proposed a simple way to evaluate this by looking at 3 key verticals:

  • Cost
  • Responsibility
  • Flexibility

Using this simple framework, you can evaluate whether or not serverless makes sense for your use case or not. As with anything, it is about what you are willing to trade off.

On the topic of trade offs, with serverless, you are trading reduced flexibility for simplicity. There are only a limited amount configurations you can apply to your solution. So, depending on your use case, this can be a plus or a minus.

Another important part of this whole transition is at organizational and team level. This is related upskilling and training. There is a strong trend in the industry where more and more companies are looking for “Full stack developers”. I believe Serverless has a lot to do with this.

Essentially, the operations of the solution are becoming simpler and less complex as we adopt the cloud. Hence, more and more responsibility are being shifted to the developers. This would require more training for developers to make this transition.

Does this mean we won’t need operations expertise any more ? Of course not. They are needed more than ever. Getting the solution out the door is one part. Upkeep and keeping it going is another.

I think serverless allows folks in operations to delegate these responsibilities. This free them up to focus on higher level, and more important tasks like building out the organization / team platform. That can include things like setting up reusable solutions with guard rails for multiple teams to use.

Why the Cloud ?

AWS being an pioneer in cloud technologies, they reinvented and disrupted the way people in the industry provision and manage computing infrastructure.

Rather than running our own hardware (ie servers), AWS provides us a simple value proposition, which is, tell us what you need in your compute, storage and network requirements and we’ll handle the rest.

This completely changes the way we build and ship products. The ability to configure and spin up machines at an instant has rippple effects to this day.

Tech giants like Netflix, Reddit, Airbnb all rely on AWS to for their core infrastructure. In addition, we have the likes of Spotify, Shopify, Home Depot and Paypal all running their infrastructure on the Google Cloud Platform (GCP).

In today’s fast changing landscape, speed to market is a big differentiator.

aws solution comparison template
Difficulty and complexity of operating compute (“servers”) over time

A clear trend is that it is not getting more difficult to manage infrastructure. Rather, it is getting easier over time. I believe this trend will only continue.

Why Serverless ?

I think this question comes down to how much infrastructure do you want to be managing, and what does the capabilities for operations look like on your team and organization ?

💡 Note: When I refer to “Operations”, I am mainly referring to “DevOps” and security.

Here is a simple template that I created that we can leverage to better understand the differences and trade offs between the solutions:

aws solution comparison template

In my personal opinion, these are good considerations to examine when choosing a solution to go with on the cloud.

Of course, there are many other details to consider but I believe these are the parameters that changes the most between solutions.

Let’s take a look at what each of these mean.

Cost

This is a simple one. This essentially refers to the cost of running these solutions in the cloud.

Responsibility

This refers to how much responsibility you are willing to assume as an operator of these solutions.

With AWS, there is a shared responsibility model. This is where AWS is in charge of the “security of the cloud”, while you are responsible for “security in the cloud”. Meaning, you need to be responsible for every thing beyond what AWS has configured for you.

To expand further, this also relates to the operations expertise of your team and organization. When choosing a solution, it is worth evaluating how much of this responsibility you would like to assume. This ultimately comes down to do you want to handle this “in-house” or delegate responsibilities to a cloud vendor.

Making this shift also has consequence for providing training, and upskilling for existing employees.

Flexibility

This refers how fine grained you’d like to get when configuring your solutions.

Different solutions have different level of configurability, and this really depends on the solutions required for your project.

with the serverless approach, you are trading off reduced flexibility for simplicity.

Mapping out the AWS compute solutions

Since I am most familiar with AWS, here is the comparison of the different copmute solutions on AWS.

aws solution full comparison

Consequence of Serverless in the market

There is a clear impact in the industry due to the popularity of serverless. This trend creates a strong market demand for “Full stack developers”.

This really comes back to the concept of serverless where solutions are becoming easier to operate. We are seeing a clear shift of adding more responsibilities to the developers.

Again, this does not mean operational expertise is not valued rather it has shifted from the customer (company running the cloud) to the vendor (cloud providers - AWS, GCP, Azure).

shift of responsibility
Source: AWS Lambda shared responsibility model
shift of responsibility

Personally, I don’t think this is the right way to look at serverless. Serverless is not a binary thing where you are either serverless or you are not. It is more a spectrum.

There are solutions where you can go with serverless, and there are other ones where serverless does not make sense or is applicable.

aws serverless as a spectrum
Source: “AWS re:Invent 2019: Serverless architectural patterns and best practices”

Nevertheless, this means the demand for “Full stack developers” will continue to stay strong because of this trend. Especially with every company trying to digitize or investing in their digital strategy during the pandemic.

📝 Helpful reference:

Looking forward

I believe this trend will continue and demand will remain strong. Since the pandemic, there is a clear signal of digital adoption and shift of mindset of companies and executives to focus more on their digital strategy.

📝 Helpful reference:

So, what does that mean ? I believe serverless and other “managed solutions” can be a fairly attractive appoach for companies that are ramping up their digital strategy and their investment.

It’s low investment and low maintenance solution for companies to adopt the cloud native approach. That way they can quickly iterate and deliver value to their customers.

This would also mean “Full stack developers” are going to continue to stay in demand. That is until the companies realize that they need a full team (and not just developers) to manage and sustain their digital strategy in the long term — that’s a topic for another day ;) .

Conclusion

That is it, I hope you enjoyed this analysis! Also, I hope it gives you a better understanding serverless, their pro and cons.

I believe developing solutions is all about scaling the solution to the project requirement at hand. So, that means truly understanding and balancing the different constraints in your project.

To evaluate the solutions, I proposed a simple framework for making the decision between the cloud solutions which includes cost, flexibility and responsibility. By no means are these the only criterion to evaluate but these are the verticals that changes the most moving between the solutions.

Finally, there is a clear trend of shifting responsibilities to the developer which in turn translates to more and more demand for “Full stack developers”.

Looking at the market trends and outlook of many company’s long term stratetgies, this will likely continue as companies look to digitize or continue to invest in their digital strategy.

I make a prediction that serverless, and many other managed solutions will be a good gateway approach for many companies to make their transition in their digital strategy. This means leveraging it as a low investment and maintenance solution to build products and services to deliver business values to their customers.

More importantly, that means upskilling and training for professionals will be crucial for all companies trying to make this transition from servers to serverless or even to get on the cloud.

If you are interested in serverless, this is a precusor to my up and coming technical series where we will be diving deep into building a serverless solution on AWS.

So, definitely subscribe to the email list to be notified when it gets published!


Enjoy the content ?

Then consider signing up to get notified when new content arrives!

Jerry Chang 2022. All rights reserved.