Pros and Cons of Serverless Architectures

Back to blog

6 min to read

Pros and Cons of Serverless Architectures

A serverless architecture is a way to build and run applications and services without having to manage infrastructure. Let's consider pros and cons for using it.

Nebojsa Radakovic

By Nebojsa Radakovic
March 28, 2019

Being on the marketing side of web development business and keeping up with the trends can be a daunting task on occasion. Especially when your devs let you wait for an explanation (not saying that is the case here at Bejamas of course).

There is nothing harder for a marketer than to understand web dev tech stuff.

At the same time, there is nothing more important than understanding web dev tech stuff.

With that said, you are often left to your own devices and research ability to find a vantage point that would cover certain tech benefits for both web developers and marketers.

There is one hyped keyword that’s floating throughout the current tech industry, and that word is: “serverless.” As of late, the term “serverless” has been utilized to highlight just how vital this type of architecture can be. The simple fact is that this particular architecture enhances any crucial business implementations, in addition being having numerous advantages (not the least of which is pricing), both from a developer’s standpoint and from a business standpoint.

Before I delve any further into the intricacies of serverless architecture, let’s deal with the basics first.

Join BEJAMAS newsletter

Sign up the newsletter today and receive valuable, in-depth JAMstack tips, tricks, and case studies.

What is a serverless architecture?

In the simplest possible terms, serverless architecture is a system of constructing and running applications and services without infrastructure management. To cut a long story short, when someone uses the term ‘serverless architecture’ or ‘serverless computing’ if you will, they are describing applications that rely on a mix of third-party services, custom code (that runs in ephemeral containers). These serverless apps are event-driven and are counting on cloud-hosted remote procedure calls — FaaS (Functions as a Service).

It’s referred to as “serverless computing” for a very simple reason. Anyone who owns the system is not required to pay for servers for the back-end code to run. The application is, of course, still running on servers, albeit any hosts (like Amazon Web Services, Google Cloud Platform, IBM OpenWhisk, etc.) carry out all server management. Therefore, in order to run the application (database or storage), users circumvent certain procedures such as provision and server maintenance.

To put it another way, serverless can also be defined as a cloud computing execution model, which denotes a cloud provider that dynamically manages the allocation and provisioning of servers.

Okay, now the beauty part comes in: you know how I mentioned pricing at the very beginning? Well, when implementing a serverless architecture system, pricing actually looks at the number of executions, the usage, as opposed to pre-paid compute capacity.

In other words, it’s cheaper.

Cloud Vendors

Cloud Vendors

Cloud vendors are a crucial part of Serverless computing. There are three different types of cloud vendors:

  • IaaS (Infrastructure as a Service): This particular service denotes renting different infrastructures such as Virtual Machines, Servers, Storage, Operating Systems, and Networks.
  • PaaS (Platform as a Service): Utilized for software development, in addition to software testing and software maintenance. Unlike IaaS, PaaS denotes extra tools - DBMS, BI services etc. Otherwise, it’s the same as IaaS.
  • SaaS (Software as a Service): This service makes the users connect to the applications through the Internet on a subscription basis.

At present, there are quite a few top-notch cloud vendors out there. Going with this option, you are really off-loading a lot of baggage in terms of development impracticalities. It’s your choice, of course, but you can’t go wrong with any of the following cloud vendors:

  • Google Cloud Functions
  • Adobe
  • Dropbox
  • Amazon Web Service
  • VMWare
  • Microsoft Azure
  • Rackspace
  • Iron Functions
  • Azure Functions
  • IBM OpenWhisk
  • Oracle Fn Project
  • Auth0 Webtask
  • and more

Serverless Frameworks

Let’s look at the things on the pragmatic side. Apart from Cloud vendors, if you’re diving into the waters of a serverless environment, Serverless Frameworks are an important component. Setting up serverless platforms requires infrastructures that allow them to be executed, and a Serverless Framework provides the key to building and deploying serverless cloud apps. Here are a few examples of Serverless Frameworks:

  • Serverless Framework - Javascript, Python, Golang
  • Apex - Javascript
  • Gordon - Javascript
  • ClaudiaJS - Javascript
  • Sparta - Golang

Serverless Architecture Pros / Cons

Pros

Though not a magical wand serverless architecture does offer a couple of amazing advantages.

Pricing. One of the biggest advantages of Serverless computing is, of course, low pricing. You pay only for what is used. On top of that you are reducing operational costs ie years of server-related fees and capacity that has been pre-purchased - basically, all of that is now money saved.

Reduced maintenance. With no backend infrastructure to manage, as it all falls to Cloud vendors, you are free of maintenance problems you’d have if you’re running a server on your own. That includes updates, patches and taking care of potential hacks.

Scalability. Serverless architectures are inherently scalable allowing your application to, for example, scale automatically as the user base grows or usage increases.

Faster delivery. For example, FaaS functions are a lot more straightforward when deploying, as opposed to the deployment of a huge server.

Setting up different environments. Much easier than with the traditional approach.

Security. But only in the sense that you are responsible for your application and code.

Cons

Serverless architecture is not without its faults though.

This is a vendor-operated environment. When developing in a serverless environment, you are essentially forfeiting any system control as you’re implementing APIs and you’ll get system downtime, unwanted API upgrades, and so on with no way to directly influence them.

Limits and cost alterations. They are prone to change based on your previous business scope history with Cloud vendors for example.

Security. With so many components the total surface open to hazardous attacks is significantly larger, and with reduced overall control you can be blindsided when it happens.

Performance. All of the above + few technical bits like increased request latency influence performance and user experience.

In a Nutshell

While Serverless architecture is a neat way of handling major development projects and it can even be quite thrilling, considering its advantages. These advantages, however, are sometimes overshadowed by certain limitations.

Still, this depends much on your overall business and development strategy.

So…what does going serverless mean for JAMstack? Even though most of the features required when building websites with JAMstack nowadays can be done either on the front-end or with APIs, occasionally devs need to write custom back-end functionality. That functionality can be built on a serverless architecture allowing you to utilize all those pros I’ve mentioned to additionally ease up the workflow for a fraction of the price you would typically pay for traditional server usage.

Thinking of moving to your website or PWA to JAMstack? We can help in that regard.

CLICK HERE to schedule 1-on-1 talk and learn more about what we can do for you and your business.

Share

About author

Nebojsa Radakovic

Nebojsa Radakovic

SEO wiz turned JAMstack n00b. A modern-day jack of all trades with 20 years of digital marketing experience.

Readers also enjoyed